TF-IDF算法

转载 2013年12月02日 09:47:15

转自:http://www.cnblogs.com/eyeszjwang/articles/2330094.html

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

原理

  在一份给定的文件里,词频(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|}{|\{j: t_{i} \in d_{j}\}|}

其中

  • |D|:语料库中的文件总数
  • |\{ j: t_{i} \in d_{j}\}|:包含词语ti的文件数目(即n_{i,j} \neq 0的文件数目)如果该词语不在语料库中,就会导致被除数为零,因此一般情况下使用1 + |\{j : t_{i} \in d_{j}\}|

然后

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

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

在向量空间模型里的应用

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

TF-IDF的理论依据及不足

  TF-IDF算法是建立在这样一个假设之上的:对区别文档最有意义的词语应该是那些在文档中出现频率高,而在整个文档集合的其他文档中出现频率少的词 语,所以如果特征空间坐标系取TF词频作为测度,就可以体现同类文本的特点。另外考虑到单词区别不同类别的能力,TF-IDF法认为一个单词出现的文本频数 越小,它区别不同类别文本的能力就越大。因此引入了逆文本频度IDF的概念,以TF和IDF的乘积作为特征空间坐标系的取值测度,并用它完成对权值TF的 调整,调整权值的目的在于突出重要单词,抑制次要单词。但是在本质上IDF是一种试图抑制噪音的加权 ,并且单纯地认为文本频数小的单词就越重要,文本频数大的单词就越无用,显然这并不是完全正确的。IDF的简单结构并不能有效地反映单词的重要程度和特征 词的分布情况,使其无法很好地完成对权值调整的功能,所以TF-IDF法的精度并不是很高。

  此外,在TF-IDF算法中并没有体现出单词的位置信息,对于Web文档而言,权重的计算方法应该体现出HTML的结构特征。特征词在不同的标记符中 对文章内容的反映程度不同,其权重的计算方法也应不同。因此应该对于处于网页不同位置的特征词分别赋予不同的系数,然后乘以特征词的词频,以提高文本表示 的效果。


TF-IDF 算法改进

概念 : TF-IDF(term frequency–inverse document frequency)是一种用于资讯检索与资讯探勘的常用加权技术。TF-IDF是一种统计方法,用以评估一字词对于一...
  • kl28978113
  • kl28978113
  • 2016年10月24日 15:34
  • 1188

TF-IDF算法简介

TF-IDF算法简介
  • noter16
  • noter16
  • 2016年10月26日 09:16
  • 1757

自然语言处理系列之TF-IDF算法

TF-IDF算法TF-IDF(词频-逆文档频率)算法是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在...
  • lionel_fengj
  • lionel_fengj
  • 2016年12月16日 23:55
  • 4317

TF-IDF算法总结

TF-IDF算法的全称叫 Term Frequency-Inverse Document Frequency 词频-逆文档频率算法TF-IDF主要用来文章关键词抽取当需要抽取一篇文章的关键词时候,往...
  • silence2015
  • silence2015
  • 2017年03月12日 20:28
  • 936

TF-IDF算法的java实现

转载地址:http://xwrwc.blog.163.com/blog/static/46320003201010634132451/ 一、算法简介         TF-IDF(term f...
  • jbfsdzpp
  • jbfsdzpp
  • 2015年03月05日 10:51
  • 2276

数据挖掘:基于TF-IDF算法的数据集选取优化

TF-IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。TF-ID...
  • u013761665
  • u013761665
  • 2015年11月17日 13:51
  • 3181

tf-idf算法

原理 TFIDF的主要思想是:如果某个词或短语在一篇文章中出现的频率TF高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。TFIDF实际上是:TF * IDF,T...
  • gaoxin1076
  • gaoxin1076
  • 2012年09月14日 13:09
  • 4839

tf-idf及核心代码c++实现

还是先记个标题,有空再整理。 1、简介TF-IDF 2、实战:用于二类文本分类 3、核心代码c++...
  • u011409995
  • u011409995
  • 2013年12月11日 11:11
  • 1023

关键词提取之TextRank算法

最近工作内容牵涉到文本关键词提取,因此学习了两种比较流行的关键词提取算法tf-idf和TextRank,本文就TextRank算法的学习做一些笔记。原始论文:Rada&Paul, TextRank: ...
  • Debbie1993
  • Debbie1993
  • 2016年07月01日 19:01
  • 1585

TF-IDF Implementation with C++

TF-IDF Implementation with C++TF-IDF weight is widely used in text mining. It measures the importanc...
  • taozhaojie
  • taozhaojie
  • 2016年09月18日 22:02
  • 353
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:TF-IDF算法
举报原因:
原因补充:

(最多只允许输入30个字)