TF-IDF算法
概念
TF-IDF(term frequency – inverse document frequency)是一种用于资讯检索与资讯探勘的常用加权技术。TF-IDF是一种统计方法,用以评估某一词语对于一个文档集(或一个语料库中的某一文档)的重要程度。该词语的重要性随着它在文档中出现频率的增大而增大(成正比),但同时会随着它在语料库(文档集)中出现频率的增大而减小(成反比)。TF-IDF加权的各种形式常被搜索引擎应用,作为文件与用户查询之间相关程度的度量或评级。除了TF-IDF以外,因特网上的搜索引擎还会使用基于连结分析的评级方法,以确定文件在搜索结果中出现的顺序。
原理
  词频(term frequency,TF)是指某一词语在某一文档中出现的频率。其值是对词数(term count,该词语的出现次数)的归一化,以防止它偏向长文档(同一词语在长文档中可能会有比短文档中更大的出现次数,而不代表该词语在长文档中重要性更大)。
但是,需要注意,一些通用的词语对于主题并没有太大的作用,反倒是一些出现频率较少的词才能够表达文档的主题,所以单纯使用是TF不合适的。权重的设计必须满足:一个词预测主题的能力越强,权重越大,反之,权重越小。所有统计的文档中,一些词只是在其中很少几个文档中出现,那么这样的词对文档的主题的作用很大,这些词的权重应该设计的较大。IDF就是在完成这样的工作。
逆文档频率(inverse document frequency,IDF)是某一词语普遍重要性的度量。总的文档数目除以包含该词语的文档数目,再将所得的商取对数,从而得到该词语的IDF。
一个词语,在某一文档中的词频越大,以及在整个文档集(含多个文档)中的出现频率越小,可以产生高权重的TF-IDF。因此,TF-IDF倾向于过滤掉常见的词语,保留重要的词语。
TF-IDF的主要思想:如果某一词语在某一文档中的出现频率大,并且在其他文档中很少出现,则认为该词语具有很好的类别区分能力,适合用来分类。TF-IDF实际上是:TF * IDF,词频(Term Frequency,TF),逆文档频率(Inverse Document Frequency,IDF)。
IDF的主要思想:如果包含某一词语的文档越少,也就是n越小,IDF值越大(见后续公式),则说明该词语具有很好的类别区分能力。如果某一类文档C中包含该词语的文档数为m,而其它类包含t的文档总数为k,显然所有包含t的文档数n=m+k,当m大的时候,n也大,按照IDF公式得到的IDF的值会小,就说明该词条t类别区分能力不强。(另一说:逆文档频率(Inverse Document Frequency,IDF)是指果包含某一词语的文档越少,该词语的IDF越大,则说明该词语具有很好的类别区分能力。)但是实际上,有时候,如果一个词条在一个类的文档中频繁出现,则说明该词条能够很好代表这个类的文本的特征,这样的词条应该给它们赋予较高的权重,并选来作为该类文本的特征词以区别与其它类文档。这就是IDF的不足之处。
公式
  对于在某一文档 中的词语
中的词语  来说,它的词频可表示为:
 来说,它的词频可表示为:

  以上式子中  是该词
 是该词 在文档
 在文档 中的出现次数,而分母则是在文档
中的出现次数,而分母则是在文档 中所有字词的出现次数之和。
中所有字词的出现次数之和。
总的文档数目除以包含某一词语的文档数目,得到的商取对数,得到该词语的逆文档频率:

其中:
- |D|:语料库中的文件总数
![|\{ j: t_{i} \in d_{j}\}|]() :包含词语 :包含词语![t_{i}]() 的文件数目(即 的文件数目(即![n_{i,j} \neq 0]() 的文件数目)如果该词语不在语料库中,就会导致被除数为零,因此一般情况下使用 的文件数目)如果该词语不在语料库中,就会导致被除数为零,因此一般情况下使用![1 + |\{j : t_{i} \in d_{j}\}|]() 
然后:
  
一个词语,在某一文档中的词频越大,以及在整个文档集(含多个文档)中的出现频率越小,可以产生高权重的TF-IDF。因此,TF-IDF倾向于过滤掉常见的词语,保留重要的词语。
该词语最后的TF-IDF值代表:相对于整个文档集,该词语对于其中的某一文档的重要度(贡献度)的大小。
 
                    
                


 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号