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 : valeur ARRAY<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 valeur INT64, qui représente la taille du dictionnaire, à l'exclusion du terme inconnu. Les termes top_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 est 20, 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 valeur INT64 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 est 3, 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.