了解TF-IDF分数

时间:2018-03-14 15:57:37

标签: python-3.x scikit-learn feature-extraction tf-idf tfidfvectorizer

我想了解当我们对文本文档TfidfVectorizer进行矢量化时如何计算tf和idf分数。

我理解tf-idf如何以两种方式排名,我在下面写。

  1. tf =根据在本文档中重复的频率对单个单词进行排名,并且idf =对在内置数据库中重复的次数进行排名相同的单词' scikit中的集合可以了解几乎所有可能收集的单词。在这里,我假设这个内置数据库是语料库。
  2. tf =对单个作品进行排名的频率在文档中的行中重复的次数是tfidfvectorize当前正在读取的,而idf =排名是基于在向量化的整个文档中重复的次数。
  3. 有人可以解释一下我的理解是否正确?如果没有,请纠正我理解中的错误。

1 个答案:

答案 0 :(得分:1)

确切答案在sklearn documentation

  

... 术语频率,术语在给定文档中出现的次数,乘以 idf 组件,计算为

     

idf(t) = log[(1 + n_d) / (1+df(d,t))] + 1

     

其中n_d是文档总数,df(d,t)是包含术语t的文档数。

所以关于 tf 的第一项是正确的,但是这两项都错过了 idf 是反文档频率的点,所以它& #39; s 文档数量的比率(所有文档与包含该术语的文档至少一次)。该公式采用比率的对数来使比率函数更加平坦",并且可以通过类参数进行调整。