Exemplos de Clusterização Semântica
O comando nlp
pode ser usado para extrair palavras-chave de um campo de string ou para agrupar registros com base nessas palavras-chave extraídas. A extração de palavra-chave pode ser controlada usando um dicionário NLP personalizado. Se nenhum dicionário for fornecido, o dicionário padrão definido pela Oracle será usado.
Tópicos:
Para obter mais informações sobre clusterização semântica, consulte Clusterização Semântica.
Agrupar Erros de Kernel nos Logs Syslog do Linux
A seguinte consulta agrupa mensagens de Kernel nos Logs Syslog do Linux:
'Log Source' = 'Linux Syslog Logs' and kernel
| link cluster()
| where 'Potential Issue' = '1'
| nlp table = 'iSCSI Errors' cluster('Cluster Sample') as 'Cluster ID',
keywords('Cluster Sample') as Summary
| sort 'Cluster ID'
Na consulta anterior:
-
link cluster()
executa o cluster tradicional e retorna um campoCluster Sample
. -
nlp cluster('Cluster Sample')
processa cadaCluster Sample
e designa um ID de Cluster. As mensagens com significado semelhante obteriam o mesmo ID de Cluster. -
keywords('Cluster Sample')
extrai as palavras-chave usadas na clusterização. Isso é retornado no campoSummary
.
A imagem a seguir mostra os resultados do link retornados:

-
A primeira e a segunda linhas não são semelhantes; portanto, obtêm IDs de cluster distintos.
-
A terceira e a quarta linhas têm similaridade na Amostra de Cluster. Isso pode ser visto na sobreposição de palavras-chave extraídas no campo
Summary
. -
Por padrão, uma sobreposição de 70% é necessária para formar um cluster. Isso pode ser substituído usando o parâmetro
similarity
para cluster. -
O ID do Cluster gerado é determinístico. Assim, o ID do Cluster pode ser usado como atalho da lista de palavras-chave mostradas na coluna Resumo.
Use similarity
para Controlar o Número de Clusters
A execução do cluster usando o dicionário padrão e um limite de similaridade mais baixo produziria menos clusters:
'Log Source' = 'Linux Syslog Logs' and kernel
| link cluster()
| where 'Potential Issue' = '1'
| nlp similarity=0.2 cluster('Cluster Sample') as 'Cluster ID',
keywords('Cluster Sample') as Summary
| sort 'Cluster ID'
Isso mesclou algumas das linhas nos clusters existentes, bem como reduziu o número de clusters:

Agrupar os Logs de Alerta do Banco de Dados
A seguinte consulta mostra um exemplo de clusterização semântica de Logs de Alerta do Banco de Dados:
'Log Source' = 'Database Alert Logs'
| link cluster()
| nlp cluster('Cluster Sample') as 'Cluster ID',
keywords('Cluster Sample') as Summary
| where Summary != null
| classify 'Start Time', Summary, 'Cluster ID' as 'Database Messages'

