Fonction ML.TF_IDF
Le TF-IDF (term frequency-inverse document frequency) indique l'importance d'un mot dans un document d'une collection ou d'un corpus. Utilisez la fonction ML.TF_IDF
pour calculer le TF-IDF des termes d'un document, en fonction de la fréquence inverse des documents précalculée à utiliser dans la création de modèles de machine learning. Vous pouvez utiliser ML.TF_IDF
dans la clause TRANSFORM.
Cette fonction utilise un algorithme TF-IDF pour calculer la pertinence des termes dans un ensemble de documents tokenisés. Le TF-IDF multiplie deux métriques : le nombre de fois qu'un terme apparaît dans un document (fréquence de terme) et la fréquence inverse des documents du terme dans un ensemble de documents (fréquence inverse des documents).
TF-IDF :
term frequency * inverse document frequency
Fréquence du terme :
(count of term in document) / (document size)
Fréquence inverse des documents :
log(1 + num_documents / (1 + token_document_count))
Les termes sont ajoutés à un dictionnaire de termes s'ils répondent aux critères de top_k
et frequency_threshold
. Sinon, ils sont considérés comme le terme inconnu. Le terme inconnu est toujours le premier terme du dictionnaire et est représenté par 0
. Le reste du dictionnaire est classé par ordre alphabétique.
Syntaxe
ML.TF_IDF( tokenized_document [, top_k] [, frequency_threshold] ) OVER()
Arguments
ML.TF_IDF
utilise les arguments suivants :
tokenized_document
: valeurARRAY<STRING>
représentant un document qui a été tokenisé. Un document segmenté est un ensemble de termes (jetons) utilisés pour l'analyse de texte.top_k
: argument facultatif. Utilise une valeurINT64
, qui représente la taille du dictionnaire, à l'exclusion du terme inconnu. Les termestop_k
qui apparaissent dans la plupart des documents sont ajoutés au dictionnaire jusqu'à ce que ce seuil soit atteint. Par exemple, si cette valeur est20
, les 20 termes uniques qui apparaissent dans la plupart des documents sont ajoutés, puis aucun terme supplémentaire n'est ajouté.frequency_threshold
: argument facultatif. Prenez une valeurINT64
qui représente le nombre minimal de documents dans lesquels un terme doit apparaître pour être inclus dans le dictionnaire. Par exemple, si cette valeur est3
, un terme doit apparaître dans au moins trois documents pour être ajouté au dictionnaire.
Sortie
ML.TF_IDF
renvoie la table d'entrée et les deux colonnes suivantes :
ARRAY<STRUCT<index INT64, value FLOAT64>>
Définitions :
index
: index du terme ajouté au dictionnaire Les termes inconnus ont un index de 0.value
: calcul du TF-IDF pour le terme.
Quotas
Consultez la page Quotas et limites des fonctions du service Cloud AI.
Exemple
L'exemple suivant crée une table ExampleTable
et applique la fonction 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;
Le résultat ressemble à ce qui suit :
+----+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 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"}] | +----+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
Étapes suivantes
- Apprenez-en plus sur le TF-IDF en dehors du machine learning.