首页 > 学术研究, 搜索引擎开发学习 > TF-IDF来源及理论推导

TF-IDF来源及理论推导

2012年8月16日 发表评论 阅读评论
文章作者:Yx.Ac   文章来源:勇幸|Thinking (http://www.ahathinking.com)   转载请注明,谢谢合作。

---

了解文本挖掘的都知道TF-IDF这个概念,以前也做过一个文本分类的项目,用到TF-IDF,当时也就是照现成的公式用,也没想过它的公式为什么那么定义,只是有一个感观上的理解。

了解信息论的都知道“熵”这个概念,这是个了不得的成就,信息是个很抽象的概念,但信息熵的提出很好地解决了信息的量化问题。

信息熵的用处很多,一个典型的例子就是它在决策树算法中的应用了,我最初接触信息熵和决策树时整理了一点资料(入门看),在这里备份,方便以后查找。

  1. 20090701-Yx.Ac-信息熵
  2. 20090714-Yx.Ac-决策树ID3
  3. 20090714-ID3条件熵的选择推导证明

郁闷的是我现在才知道TF-IDF的定义原来是由信息熵推导而来的,信息熵真是不错,要知道TF-IDF的各种形式常被搜索引擎所应用,它已经深深影响并改变着人们的生活。TF-IDF用在向量空间模型中为文档向量进行权重赋值,那么使用TF-IDF计算的权重有何物理意义呢

经典的TF-IDF定义及含义:

TF(词频):

定义,词项出现次数除以该文档的长度(总词数)。

含义,表示词项在文档中的重要程度

其中,cik表示词项k在文档Di中的出现次数

IDF(反文档频率):

定义,文档总数与出现该词的文档数商的对数值

含义,表示词项在文档集合中的重要程度,词项出现的文档数越多,该词区分度越差,重要性就越低

其中,N表示文档集合中文档数,nk表示出现词项k的文档数

TF-IDF一般是二者的乘积,权重计算意义:表示词项重要性随着它在文档中出现次数增多而增加,但同时随着它在集合中出现次数增多而下降。那么TF-IDF的这个定义是怎么来的呢?

TF-IDF推导如下:

在了解信息量(某个概率事件最小编码长度)和信息熵(平均信息量)相关概念后,我们知道信息熵的公式如下

===由于blog没装公式编辑插件,下面直接从word草稿中截图了===

我们可以看出,在这个平均编码长度中,文档中每个词项都做出了不同的贡献(编码长度即为所含有的信息量),那么对于该文档,每个词项在文档中的重要性都量化为对平均编码长度(文档信息熵)的贡献。

对于每个词Ti来说,它对平均编码长度所作出的贡献为(其实也可以直接理解为该词的信息熵或者该词所含有的信息)

其中,前面一项是文档中该词项的词频(TF),后者为词项的文档频率的倒数的对数,显然,词项出现次数越多(词频高)且罕见的词汇(文档频率低)对平均编码长度大小的贡献越大,这便是经典的TF-IDF,显然,它能够衡量出互联网上传输一个文档时,每个词项对该文档所需的平均编码长度(文档信息)的大小所做的贡献(或者重要程度),所以用TF-IDF来为文档向量中的关键词进行权重计算是合理的,具有意义的

(全文完)

参考资料:《走进搜索引擎》第一版

 

  • luckworld

    根据推导出来的关系,为什么在设计的TF-IDF的时候,IDF = log(N/ni)=log(所有文档数/含有第i个词汇的文档数) 而不是IDF = log (所有文档中的词汇数目/第i个词汇出现的次数)

    • Yx.Ac

      这里对TF-IDF的设计并不是“臆断”的,而是根据信息熵来推导的,具体见本文后面的推导 :-)

  • http://weibo.com/executiveofficer maxiao

    为什么编码长度是log(X)捏

    • Yx.Ac

      @maxiao 这里指计算机使用的0-1编码,所以需要的编码长度就是概率的对数logX

  • http://www.cnblogs.com/weidagang2046 Todd

    关于TF-IDF,我有一些不同的见解:《TF-IDF模型的概率解释》 http://www.cnblogs.com/weidagang2046/archive/2012/10/22/tf-idf-from-probabilistic-view.html

    • Yx.Ac

      :-) 学习了,欢迎多交流,嘿

  • http://www.jvdian.com/ 笑话据点

    多更新,要不然还以为您老人家去保卫钓鱼岛了呢