ML.TF_IDF-Funktion

Der Begriff für die Häufigkeit des umgekehrten Dokuments (TF-IDF) gibt an, wie wichtig ein Wort für ein Dokument in einer Sammlung oder einem Korpus ist. Verwenden Sie die Funktion ML.TF_IDF, um die TF-IDF von Begriffen in einem Dokument zu berechnen, wenn die vorausberechnete umgekehrte Dokumenthäufigkeit für die Erstellung des Modells für maschinelles Lernen verwendet wird. Sie können ML.TF_IDF in der TRANSFORM-Klausel verwenden.

Diese Funktion verwendet einen TF-IDF-Algorithmus, um die Relevanz von Begriffen in einer Reihe von tokenisierten Dokumenten zu berechnen. Bei TF-IDF werden zwei Messwerte multipliziert: die Häufigkeit, mit der ein Begriff in einem Dokument auftaucht (Begriffshäufigkeit), und die umgekehrte Dokumenthäufigkeit des Begriffs in einer Sammlung von Dokumenten (umgekehrte Dokumenthäufigkeit).

  • TF-IDF:

    term frequency * inverse document frequency
    
  • Laufzeithäufigkeit:

    (count of term in document) / (document size)
    
  • Umgekehrte Dokumenthäufigkeit:

    log(1 + num_documents / (1 + token_document_count))
    

Begriffe werden einem Wörterbuch der Begriffe hinzugefügt, wenn sie die Kriterien für top_k und frequency_threshold erfüllen. Andernfalls werden sie als unbekannter Begriff betrachtet. Der unbekannte Begriff ist immer der erste Begriff im Wörterbuch und wird als 0 dargestellt. Der Rest des Wörterbuchs ist alphabetisch sortiert.

Syntax

ML.TF_IDF(
  tokenized_document
  [, top_k]
  [, frequency_threshold]
)
OVER()

Argumente

ML.TF_IDF verwendet die folgenden Argumente:

  • tokenized_document: ARRAY<STRING>-Wert, der ein Dokument darstellt, das tokenisiert wurde. Ein tokenisiertes Dokument ist eine Sammlung von Begriffen (Tokens), die für die Textanalyse verwendet werden.
  • top_k: Optionales Argument. Verwendet den Wert INT64, der die Größe des Wörterbuchs ohne den unbekannten Begriff darstellt. Die in den meisten Dokumenten verwendeten top_k-Begriffe werden dem Wörterbuch hinzugefügt, bis dieser Schwellenwert erreicht ist. Wenn dieser Wert beispielsweise 20 ist, werden die 20 besten eindeutigen Begriffe in den meisten Dokumenten hinzugefügt und dann werden keine zusätzlichen Begriffe hinzugefügt.
  • frequency_threshold: Optionales Argument. Verwenden Sie einen INT64-Wert, der die Mindestanzahl von Dokumenten darstellt, in denen ein Begriff in das Wörterbuch enthalten sein muss. Wenn dieser Wert beispielsweise 3 ist, muss ein Begriff in mindestens drei Dokumenten enthalten sein, die dem Wörterbuch hinzugefügt werden sollen.

Ausgabe

ML.TF_IDF gibt die Eingabetabelle sowie die folgenden beiden Spalten zurück:

ARRAY<STRUCT<index INT64, value FLOAT64>>

Definitionen:

  • index: der Index des Begriffs, der dem Wörterbuch hinzugefügt wurde. Unbekannte Begriffe haben einen Index von 0.

  • value: Die TF-IDF-Berechnung für den Begriff.

Kontingente

Siehe Kontingente und Limits für Cloud AI-Dienstfunktionen.

Beispiel

Im folgenden Beispiel wird die Tabelle ExampleTable erstellt und die Funktion ML.TF_IDF angewendet:

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;

Die Ausgabe sieht in etwa so aus:

+----+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| 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"}] |
+----+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

Nächste Schritte

  • Weitere Informationen zu TF-IDF außerhalb des maschinellen Lernens.