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。