首先引用百度百科的话:

"TF-IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。"

"TF-IDF实际上是:TF * IDF,TF词频(Term Frequency),IDF逆向文件频率(Inverse Document Frequency)。"

"TF表示词条在文档中出现的频率。"

 

好了,从百度百科里抽出几句话就大致了解了TF-IDF值的含义

但是,等等!貌似、、、IDF你还没讲啊?

恩对。为了理解IDF值,需要先看看DF文件频率(Document Frequency)值是什么:

文件频率,就是对于一个特征词w,它出现在了多少个类别c的文本中,DF值表示了w对于c的相关度。

显然,对于每一个特征词w,如果直接用其在类别c中出现的文件数来表示相关度是非常不适合的,我们可以试着换一个方法,用w在c中文件的出现频率之和来表示相关度,似乎更加适合,这只是DF值的一个改进措施。

 

好了,DF值讲完了,轮到IDF值了:

百度百科:"IDF的主要思想是:如果包含词条t的文档越少,也就是n越小,IDF越大,则说明词条t具有很好的类别区分能力。"

就是说同一个特征词w对于同一类文章c来说呢。。。DF(w, c)值越大,IDF(w, c)值就越小

现在趁机先可以想象一下TF-IDF值的计算结果:如果一个对于高频词和低频词,我们需要最终算出来的TF-IDF值都会变得非常大,才能达到了过滤常用词的效果。

于是设计IDF(w, c)的计算方法为:类别c中总文件数目除以包含该特征词w的文件数目,再将得到的商取对数。(取对数什么的为什么不要问我。。。)

 

于是OIer和ACMer们发现,这不是水水的模拟嘛。。。什么hash_table啦,map啦(包括直接暴力sort)都可以处理理TF和IDF值了。

IF-IDF值就为之后的语义消歧算法打下了基础。

posted on 2014-12-04 14:39  Xs酱~  阅读(6614)  评论(0编辑  收藏  举报