TF-IDF算法(一种衡量关键词权重的算法) 学习笔记

TF(Term frequency)-词频,IDF(Inverse document frequency)-逆文本频率

TF-IDF是一种度量关键词权重的方法。主要的应用场景:(1)搜索(2)关键词提取(可用于文本分类)

刚开始的时候利用的是词频来确定关键词的权重,即 词语在语料库中出现的频率。

记作                                                                 \frac{word}{corpus}

关键词w出现的次数除以语料库中单词总个数。

但是这种方法有一个问题,就是像“的”这种词,出现的频率特别高,但是对于最终关键词提取并没有什么作用,这类属于停用词(stop word)要去掉;还有一些词语,比如在对新闻分类的时候,“报道”这种词出现的频率也很高,每一篇文章中,并不能用这种词作为文章的关键词。

解决方案:某个词语只出现在小部分的文章中,那么它的权重应该大,作为分类关键词或者搜索关键词,是很有帮助的。这种计算权重的方法就是逆文本频率。

公式为:                                                                          log{\frac {D}{D_w}}   

D为文章个数,D_w为出现词w的文章个数。

在《数学之美》这本书中,作者给出的解释是“IDF的概念就是一个特定条件下关键词的概率分布的交叉熵”。

可以这么理解这句话,因为交叉熵是用来衡量P(目标概率分布)与Q(训练概率分布)的,公式如下:

                                                               H(P,Q)=-\sum P(c)logQ(c)

若Q能够很好地表示P,那么H(P,Q)应该尽可能的小。那么在log{\frac {D}{D_w}},如果一个关键词能够很好地表示这个文本的话,那么这个概率应该尽可能的大。({\frac {D}{D_w}}>1),即某个词语如果只在少数文章中出现那么它的概率应该大。

最终关键词的权重利用的是词频*逆文本频率得到,TF*IDF。

TF-IDF的信息论依据

一个文章中,每个关键词的权重应该能够反应可以为最终结果提供多少的信息量,即可以利用信息熵来表示。

                                                                  I(w)=-P(w)logP(w)

                                                                  I(w)= \frac{TF(w)}{N} log\frac{N}{TF(w)}

N为语料库的大小,可以省略,故

                                                                I(w)={TF(w)} log\frac{N}{TF(w)}                                           (1)

两个词出现的频率相同,一个是一篇文章中反复出现,一个是多篇文章中出现一两次,那么第一种情况应该权重更大,因此应该更改上式。

假设:(1)每篇文章大小(共D篇)相同,均有M 个词,即M=\frac{N}{D}=\frac{\sum_w TF(w)}{D}  

(2)一个词在一篇文章中无论出现多少次,它对于文章贡献相同,即c(w)=\frac{IF(w)}{D(w)},c(w)<M

故 由(1)得,

                                   TF(w)log\frac{N}{TF(w)}=TF(w)log\frac{ M D}{c(w)D(w)}=TF(w)log(\frac{D}{D(w)} \frac{M}{c(w)})                         (2)

所以由(1)(2)得:

                                             TF-IDF(w)=I(w)-TF(w)log\frac{M}{c(w)}

一个词的信息量越多,那么I(w)越多,由于c(w)<M,所以一个词在文献中出现的平均次数越多,那么第二项越小,整体越大。

 

从《数学之美》-第11章整体出。

发布了56 篇原创文章 · 获赞 29 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/foneone/article/details/103110183