La funzione ML.TF_IDF
Il termine TF-IDF (frequenza inversa dei documenti) riflette l'importanza di una parola per un documento in una raccolta o in un corpus. Usa la funzione ML.TF_IDF
per calcolare il valore TF-IDF dei termini in un documento, data la frequenza precalcolata del documento inverso per l'utilizzo nella creazione di modelli di machine learning. Puoi utilizzare ML.TF_IDF
all'interno della clausola TRASFORMA.
Questa funzione utilizza un algoritmo TF-IDF per calcolare la pertinenza dei termini in un insieme di documenti tokenizzati. TF-IDF moltiplica due metriche: quante volte un termine viene visualizzato in un documento (frequenza dei termini) e la frequenza inversa dei documenti del termine in una raccolta di documenti (frequenza inversa del documento).
TF-IDF:
term frequency * inverse document frequency
Frequenza termine:
(count of term in document) / (document size)
Frequenza inversa del documento:
log(1 + num_documents / (1 + token_document_count))
I termini vengono aggiunti a un dizionario se soddisfano i criteri di top_k
e frequency_threshold
, altrimenti vengono considerati come termine sconosciuto. Il termine sconosciuto è sempre il primo termine del dizionario ed è rappresentato come 0
. Il resto del dizionario è in ordine alfabetico.
Sintassi
ML.TF_IDF( tokenized_document [, top_k] [, frequency_threshold] ) OVER()
Argomenti
ML.TF_IDF
accetta i seguenti argomenti:
tokenized_document
: valoreARRAY<STRING>
che rappresenta un documento che è stato tokenizzato. Un documento tokenizzato è una raccolta di termini (token) utilizzati per l'analisi del testo.top_k
: argomento facoltativo. Prende un valoreINT64
, che rappresenta la dimensione del dizionario, escluso il termine sconosciuto. I terminitop_k
visualizzati nella maggior parte dei documenti vengono aggiunti al dizionario fino al raggiungimento di questa soglia. Ad esempio, se questo valore è20
, vengono aggiunti i primi 20 termini univoci presenti nella maggior parte dei documenti senza aggiungere altri termini.frequency_threshold
: argomento facoltativo. Utilizza un valoreINT64
che rappresenta il numero minimo di documenti in cui un termine deve apparire per essere incluso nel dizionario. Ad esempio, se questo valore è3
, un termine deve essere presente in almeno tre documenti per poter essere aggiunto al dizionario.
Output
ML.TF_IDF
restituisce la tabella di input e le due colonne seguenti:
ARRAY<STRUCT<index INT64, value FLOAT64>>
Definizioni:
index
: l'indice del termine aggiunto al dizionario. I termini sconosciuti hanno un indice pari a 0.value
: il calcolo di TF-IDF per il termine.
Quote
Consulta Quote e limiti delle funzioni di servizio IA di Cloud.
Esempio
L'esempio seguente crea una tabella ExampleTable
e applica la funzione ML.TF_IDF
:
WITH
ExampleTable AS (
SELECT 1 AS id, ['I', 'like', 'pie', 'pie', 'pie', NULL] AS f
UNION ALL
SELECT 2 AS id, ['yum', 'yum', 'pie', NULL] AS f
UNION ALL
SELECT 3 AS id, ['I', 'yum', 'pie', NULL] AS f
UNION ALL
SELECT 4 AS id, ['you', 'like', 'pie', NULL] AS f
)
SELECT id, ML.TF_IDF(f, 3, 1) OVER () AS results
FROM ExampleTable
ORDER BY id;
L'output è simile al seguente:
+----+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | id | results | +----+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 1 | [{"index":"0","value":"0.12679902142647365"},{"index":"1","value":"0.1412163100645339"},{"index":"2","value":"0.1412163100645339"},{"index":"3","value":"0.29389333245105953"}] | | 2 | [{"index":"0","value":"0.5705955964191315"},{"index":"3","value":"0.14694666622552977"}] | | 3 | [{"index":"0","value":"0.380397064279421"},{"index":"1","value":"0.21182446509680086"},{"index":"3","value":"0.14694666622552977"}] | | 4 | [{"index":"0","value":"0.380397064279421"},{"index":"2","value":"0.21182446509680086"},{"index":"3","value":"0.14694666622552977"}] | +----+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
Passaggi successivi
- Scopri di più su TF-IDF al di fuori del machine learning.