搜索系统 基础教程

搜索 query 分析

搜索系统 索引教程

搜索系统 高级教程

搜索系统 排序层

搜索系统 笔记

tf idf 是什么

搜索系统 笔记 搜索系统 笔记


tf idf 英文全称 term frequency-inverse document frequency,中文名叫词频-逆文档频率,它用以计算词项(term)对于一个文档集或语料库中的一个文档的重要程度。

计算公式

tf(term frequency)即词频,指一个字词(term)在一个文档中出现的次数(频率);在实际操作中,这个词频做了词数归一化,以防止它偏向于长文档(同一个词语在长文档里可能会比短文档有更高的词数,而不管该词语重要与否)。

idf(inverse document frequency)即逆文档频率,主要是表达一个词语的普遍重要性(在整个文档集语料库中)的度量;在实际操作中,所有文档数除以指定一个词语出现的文档数,并将得到的商通过以 10 为底数取对数。

公式如下:

tf-idf = tf * idf

tf = 指定词语在该文档中出现次数/指定文档中的所有词语数

idf = log10(所有文档数/指定词语所出现的文档数)

如上公式,总结起来就是,词语的重要性随着它在文档中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降

示例

假如一篇文档的总词语数是 100 个,其中“玻尿酸”这个词出现了 6 次,那“玻尿酸”一词在该文档中的词频(TF)就是 6/100 = 0.06。而计算文档频率(IDF)的方法是以文档集的文档总数,除以出现“玻尿酸”一词的文档数。所以,如果“玻尿酸”一词在 100 份文件出现过,而文件总数是 1000000 份的话,其逆文档频率(IDF)就是 log10(1000000/100) = 4。最后 tf-idf 的分数为 0.06 * 4 = 0.24。