Función ML.TF_IDF
El término frecuencia de un documento con frecuencia inversa (TF-IDF) refleja la importancia de una palabra para un documento de una colección o un corpus. Usa la función ML.TF_IDF
a fin de calcular el TF-IDF de términos en un documento, dada la frecuencia inversa del documento procesado previamente para su uso en la creación del modelo de aprendizaje automático. Puedes usar ML.TF_IDF
dentro de la cláusula TRANSFORM.
Esta función usa un algoritmo de TF-IDF para calcular la relevancia de los términos en un conjunto de documentos con asignación de token. TF-IDF multiplica dos métricas: cuántas veces aparece un término en un documento (frecuencia de término) y la frecuencia de documento inversa del término en una colección de documentos (frecuencia de documento inversa).
TF-IDF:
term frequency * inverse document frequency
Frecuencia de términos:
(count of term in document) / (document size)
Frecuencia inversa del documento:
log(1 + num_documents / (1 + token_document_count))
Los términos se agregan a un diccionario de términos si cumplen con los criterios para top_k
y frequency_threshold
; de lo contrario, se consideran el término desconocido. El término desconocido siempre es el primer término del diccionario y se representa como 0
. El resto del diccionario está en orden alfabético.
Sintaxis
ML.TF_IDF( tokenized_document [, top_k] [, frequency_threshold] ) OVER()
Argumentos
ML.TF_IDF
toma los siguientes argumentos:
tokenized_document
: el valorARRAY<STRING>
que representa un documento al que se le asignó un token. Un documento con asignación de token es una colección de términos (tokens), que se usan para el análisis de texto.top_k
: Argumento opcional. Toma un valorINT64
, que representa el tamaño del diccionario, sin incluir el término desconocido. Los términostop_k
que aparecen en la mayoría de los documentos se agregan al diccionario hasta que se cumple este límite. Por ejemplo, si este valor es20
, los 20 términos únicos principales que aparecen en la mayoría de los documentos se agregan y, luego, no se agregan términos adicionales.frequency_threshold
: Argumento opcional. Toma un valorINT64
que represente la cantidad mínima de documentos en los que un término debe aparecer para incluirse en el diccionario. Por ejemplo, si este valor es3
, un término debe aparecer en al menos tres documentos para agregarlo al diccionario.
Salida
ML.TF_IDF
muestra la tabla de entrada más las siguientes columnas:
ARRAY<STRUCT<index INT64, value FLOAT64>>
Definiciones:
index
: el índice del término que se agregó al diccionario. Los términos desconocidos tienen un índice de 0.value
: El cálculo de TF-IDF del término.
Cuotas
Consulta Cuotas y límites de las funciones del servicio de Cloud AI.
Ejemplo
En el siguiente ejemplo, se crea una tabla ExampleTable
y se aplica la función 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;
El resultado es similar al siguiente:
+----+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 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"}] | +----+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
¿Qué sigue?
- Obtén más información sobre TF-IDF fuera del aprendizaje automático.