TF/IDF/DF算法

TF-IDF

TF-IDF(term frequency - inverse document frequency) 是一种用于信息检索与文本挖掘的常用加权技术。TF-IDF是一种统计方法,用以评估一个字词对于一个文件集合或一个语料库中的其中一份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比,但同事会随着它在语料库中出现的频率成反比。TF-IDF加权的各种形式常被搜索引擎应用,作为文件与用户查询之间相关程度的度量或评级。除了TF-IDF以为,互联网上的搜索引擎还会使用基于链接分析的评级方法,以确定文件在搜索结果中出现的位置。


目录

  • 1. 原理
  • 2. 例子
  • 3. 在向量空间模型里的应用
  • 4. 参考资料
  • 5. 外部链接

原理

在一份给定的文件里,词频(term frequency, TF)是指某一个给定的词语在该文件中出现的次数。这个数字通常会被正规化,以防止它偏向长的文件。(同一个词语在长文件里可能会比短文件有更高的词频,而不管该词语是否重要。)对于在某一特定文件里的词语ti来说,它的重要性可表示为: 

 \mathrm{tf_{i,j}} = \frac{n_{i,j}}{\sum_k n_{k,j}}

以上式子中,ni,j是该词在文件dj中的出现次数,而分母则是在该文件dj中所有字词的出现次数之和。


逆向文件频率(inverse document frequency, IDF)是一个词语普遍重要性的度量。某一特定词语的IDF,可以由总文件数目除以包含该词语的文件的数目,再将得到的商取对数得到:

\mathrm{idf_i} =  \log \frac{|D|}{|\{d: d \ni t_{i}\}|}

其中:

  • |D|:语料库中的文件总数
  •  :包含词语ti的文件数目(即ni!=0 的文件数目)

然后:

\mathrm{tf{}idf_{i,j}} = \mathrm{tf_{i,j}} \cdot  \mathrm{idf_{i}}

某一特定文件内的高词语频率,以及该词语在整个文件集合中的低文件频率,可以产生出高权重的TF-IDF。因此,TF-IDF倾向于过滤掉常见的词语,保留重要的词语。


例子

有很多不同的数学公式可以用来计算TF-IDF。这边的例子以上述的数学公式来计算。词频(TF)是一词语出现的次数除以该文件的总词语数。

假如一篇文章的总词语数是100个,而词语“奶牛”出现了3次,那么“奶牛”一词在该文件中的词频就是0.03(3/100)。一个计算文件频率(DF)的方法是测定有多少份文件出现过“母牛”一词,然后除以文件集里包含的文件总数。所以,“奶牛”在1000份文件出现过,而文件总数是10000000份的话,其IDF就是9.21 (log(10000000/1000))。最后TF-IDF的分数为0.28(0.03*9.21)。


在向量空间模型里的应用


TF-IDF权重计算方法经常会和余弦相似度(cosine similarity)一同使用于向量空间模型中,用以判断两份文件之间的相似性。


你可能感兴趣的:(TF/IDF/DF算法)