ML.TF_IDF 函数
词频-逆向文档频率 (TF-IDF) 反映了一个字词对于集合或语料库中的文档的重要性。使用 ML.TF_IDF
函数计算文档中字词的 TF-IDF,前提是在机器学习模型创建过程中使用预计算的逆向文档频率。您可以在 TRANSFORM 子句中使用 ML.TF_IDF
。
此函数使用 TF-IDF 算法来计算一组经过词法单元化处理的文档中的字词的相关性。TF-IDF 会将以下两个指标相乘:一个字词在文档中出现的次数(词频),以及一个字词在一系列文档中出现的的逆向文档频率(逆向文档频率)。
TF-IDF:
term frequency * inverse document frequency
词频:
(count of term in document) / (document size)
逆向文档频率:
log(1 + num_documents / (1 + token_document_count))
如果字词满足 top_k
和 frequency_threshold
的条件,则会被添加到字词字典中,否则这些字词会被视为未知字词。未知字词始终是字典中的第一个字词,以 0
表示。字典的其余部分将按字母顺序排序。
语法
ML.TF_IDF( tokenized_document [, top_k] [, frequency_threshold] ) OVER()
参数
ML.TF_IDF
接受以下参数:
tokenized_document
:表示经过词法单元化处理的文档的ARRAY<STRING>
值。经过词法单元化处理的文档是一组用于文本分析的字词(词元)。top_k
:可选参数。接受一个INT64
值,该值表示字典的大小,不包括未知字词。最多数量的文档中显示的top_k
字词都会被添加到字典中,直到达到此阈值。例如,如果此值为20
,则最多数量的文档中出现的前 20 个独特字词会被添加到字典中,然后不添加任何其他字词。frequency_threshold
:可选参数。接受一个INT64
值,该值表示字词必须至少出现在几个文档中,才能被添加到字典中的文档数量下限。例如,如果此值为3
,则字词必须至少出现在三个文档中,才能被添加到字典中。
输出
ML.TF_IDF
返回输入表以及以下两列:
ARRAY<STRUCT<index INT64, value FLOAT64>>
定义:
index
:添加到字典中的字词的索引。未知字词的索引为 0。value
:字词的 TF-IDF 计算。
配额
请参阅 Cloud AI 服务函数配额和限制。
示例
以下示例会创建一个 ExampleTable
表并应用 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;
输出类似于以下内容:
+----+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 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"}] | +----+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
后续步骤
- 详细了解机器学习之外的 TF-IDF。