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 campo Cluster Sample.

  • nlp cluster('Cluster Sample') processa cada Cluster 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 campo Summary.

A imagem a seguir mostra os resultados do link retornados:


clusterização semântica do logs syslog do Linux para erros de kernel

  • 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:


clusterização semântica dos logs syslog do Linux para erros de kernel após a redução do número de clusters com base na similaridade

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'

clusterização semântica dos logs do banco de dados para o ID de cluster 1188814328


clusterização semântica dos logs do banco de dados para o ID de cluster selecionado e o resumo adjacente das palavras-chave