Esempi di clustering semantico
Il comando nlp
può essere utilizzato per estrarre le parole chiave da un campo stringa o per raggruppare i record in base a queste parole chiave estratte. L'estrazione delle parole chiave può essere controllata utilizzando un dizionario NLP personalizzato. Se non viene fornito alcun dizionario, viene utilizzato il dizionario predefinito definito da Oracle.
argomenti:
Per ulteriori informazioni sul clustering semantico, vedere Clustering semantico.
Errori del kernel del cluster nei log di syslog Linux
Messaggi Kernel dei cluster di query riportati di seguito nei log Syslog di 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'
Nella query precedente:
-
link cluster()
esegue il cluster tradizionale e restituisce un campoCluster Sample
. -
nlp cluster('Cluster Sample')
elabora ogniCluster Sample
e assegna un ID cluster. I messaggi con un significato simile otterrebbero lo stesso ID cluster. -
keywords('Cluster Sample')
estrae le parole chiave utilizzate nel clustering. Viene restituito nel campoSummary
.
L'immagine seguente mostra i risultati del collegamento restituiti:

-
La prima e la seconda riga non sono simili e quindi ottengono ID cluster diversi.
-
La terza e la quarta riga sono simili nel campione cluster. Ciò si può vedere nella sovrapposizione di parole chiave estratte nel campo
Summary
. -
Per impostazione predefinita, è necessaria una sovrapposizione del 70% per formare un cluster. È possibile eseguire l'override utilizzando il parametro
similarity
nel cluster. -
L'ID cluster generato è deterministico. Pertanto, l'ID cluster può essere utilizzato come collegamento per l'elenco delle parole chiave visualizzate nella colonna Riepilogo.
Utilizzare similarity
per controllare il numero di cluster
L'esecuzione del cluster utilizzando il dizionario predefinito e una soglia di somiglianza inferiore produrrebbe meno cluster:
'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'
Questa operazione ha unito alcune righe nei cluster esistenti, nonché ridotto il numero di cluster:

Clusterare i log degli avvisi del database
La query seguente mostra un esempio di clustering semantico dei log degli avvisi del database:
'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'

