TF-IDF的推导过程,因为很少找到比较详细的通俗易懂的, 所以这里做了一下梳理:
熵:

为什么做了这个铺垫?因为信息熵的提出,解决了信息的量化的问题。
下面对TF-IDF做详细介绍:
TF:词频,某个词,出现在词所在文档的次数,这里简单理解为词出现的次数越多,越重要,当然排除停用词,就是“的”,“了”,这一类型的修饰词。
IDF:逆文档频率,log(文档总数/出现某个词的文档总数),出现的次数越多,分母就越大,取对数的值就越小,说明这个词在所有文章中的重要程度就越小
说明:词的重要性,随着在文档中出现的次数增多变大,随着在所有文档中的出现次数增加而变小
推导过程:
(1)

(2)

(3)

(4)

(5)

(6)

实际上
上面这个公式能不能看懂主要取决于对信息论的掌握程度:
首先需要说明的是上述的这个6个公式是来自于《数学之美》这本书中。
场景的介绍:
一个查询(Query)中每一个关键词(Key word)w的权重应该反映这个词对查询来讲提供了多少信息。一个简单的办法就是用每个词的信息量来作为它的权重。
对这句话进行拆解,拆解出公式中会用到的元素。
w:在这句话中的说明是指,关键词
权重:w对query来说提供了多少信息,就是w在这个查询中的信息量
N:整个语料库的大小
信息量:信息量的概念来源于信息论,一个随机事件的自信息量定义为其出现概率对数的负值
这种情况下,这个词相对于query的权重就是公式(1)中的I(x),要注意的是,这里用的是信息熵的概念,而不是自信息量的概念。信息熵表征的是信息的平均不确定程度。
公式(2)对于公式(1)来说, 只是消去了N,原因是N,在这里指的是整个语料库的大小,是个可以省略的常数,我们知道,常数在概率的运算中,可以直接忽略掉,对事件发生概率的分布没有影响。
公式(3)是对这个场景进行的理想假设:
a.每个文献大小基本相同,均为M个词,那么M=N/D,其中N是这个语料库的大小,那么D在这里就是指文献的数量TF(w)的求和,就是整个语料中所有词的词频的总和,简单来说就是D个文档中,每个文档有M个词,总共有D*M个词,也就是这里的N,N就是D个文档中所有的词,那么TF(w)求和,就是w个词,每个词的词频是TF(w),同样是所有的词的总数
b.第二个假设在《数学之美》中是这么描述的:一个关键词在文献一旦出现,不论次数出现多少,贡献都等同,这样一个词要么在一个文献中出现c(w)=TF(w)/D(w)次,要么是零。注意c(w)<M,那么从公式(2)就能得到公式(4)
对于b假设理解起来,可能稍微有点绕,但是实际上简单的说就是,假设在每个文档中某个词的词频是相等的,要么是c,要么是0,c(w)是文档中出现的词频,TF(w)是整个语料库中w的词频,D(w)是出现w词的文档数,实际上这个假设,就是为了简单计算,词在单个文献和所有文献中的出现频率,将复杂的计算过程简化了而已。横向比较进行了一定程度的简化。小于M的条件是也比较容易解释,因为在某一个文档中某个词的词频,必须要小于a假设中的每个文献均为M个词的假设。
在公式(5)的换算中,注意到TF(w)log(D/D(w))的转换,转换为了TF-IDF(w),这其中又用到了一个概念。就是Karen Sparck Jones提出的:IDF=log(D/Dw)
经过换算后得到公式(6)就得到了TF-IDF的最终结论:
一个词的信息量I(w)越多,TF-IDF的值越大,同时w命中的文献中w平均出现的次数越多,第二项就越小,TF-IDF也越大
这就是对TF-IDF最浅显的解释了,另外还有一些TF-IDF的相关的改进算法,持续更新
网友评论