TF-IDF基本原理简释

TF-IDF基本原理简释

原理概述

tf-idf是自然语言处理中的一个简单的模型。tf代表term frequency,也就是词频,而idf代表着inverse document frequency,叫做逆文档频率,这两个属性都是属于单词的属性。概括来说,tf-idf模型是用来给文档中的每个词根据重要程度计算一个得分,这个得分就是tf-idf。

首先,考虑文档中的所有的词语,一个直观的想法就是,哪个词语出现的频次高,就说明哪个词语更重要。这个原则有一定的道理,但是如果仅仅统计这个频次,也就是上面提到的词频,tf,会发现出现最多的是一些连词,介词,语气词,助词等等此类的虚词,这个通常我们称之为停用词,stopword ,顾名思义,就是在做语言处理的过程中应当停用的一些词语。当然我们可以一开始就去掉这些停用词,但是如果希望在此基础上,即在我们计算好了词频tf的基础上,想要自动去掉这些停用词的话,可以这样操作:即对每个出现的词语计算一个权重,常见的无太大分类意义或者特征意义的词语权重小;少见的,专用的,特殊的,有实际含义的词语权重大;当然最好停用词的权重可以等于0,也就是“停用”。

可以这样想,比如拿过一本词典,其实里面的每个词在实际应用中都有不同的权重,在计算出词频后,还要拿过词典来,给每个词找到对应的权重乘上,这样以来就可以避免停用词的问题,从而得分高的是这样一些词语:即,它们既在某篇文章中出现频次较高,同时这个词又不那么常见,也就是比较有代表性,这样,这个问题就可以很好的解决了。

公式定义

词频的定义很简单:

TermFrequency=nki/Ni

其中nki表示第k个词在第i篇文章中出现的次数,Ni表示第i篇文章的总单词数。有的时候也用max_k{nki}代替Ni,即除以文章中出现最多的词的数目,这样就是一个相对的词频。

那么根据词的出现的代表性或说广泛程度计算的权重就是idf,逆文档频率,之所以叫做逆,可能因为它对应的不是文档中词的数目,而是某个词对应的文档数目,idf的定义如下:

InverseDocumentFrequency=log(Mdocmk,doc+1)

其中,Mdoc表示文档总数,就是一共有几篇文章;mk,doc 表示含有单词k的文档数。加入这个单词k不是在文档中找的,而是从外部引入的一个词,比如我们做查询,搜索等,可能这个词不存在与所有文档中,所以mk,doc可以为0,为了避免除0,给下面加了1。可以看出,一个词如果所有文档中都出现,说明它不具备表达某篇文章的功能,所以idf约为0,而如果一个词仅在少数文档出现,那么这个值就会很大。

对于IDF的一个信息论意义的解释是,这个值表示的是(不考虑+1):【 在Mdoc篇文档中任取一篇,结果这篇含有term k 】这个事件的信息量。考虑到概率和信息量关系,这个含义显然。也就是说,idf可以衡量term k的出现带给我们的信息,像“的”,“了”,“和” 等小词的出现没有带给我们太多关于这篇文章的信息,而一个专业术语可能携带的信息量很大。

所以最终的公式:

TFIDF=TermFrequencyInverseDocumentFrequency

常规应用

首先,可以计算文档中的每个词的得分,从而选分数高的作为关键词,这就是关键词自动提取。

另外,给定一系列关键词,可以通过找到每篇文章中含有关键词的比例,再乘上关键词本身的代表性也就是idf,可以进行搜索,也就是像搜索引擎常见的把网页上的相关文档排序的做法。

还有,如果我们找到两篇文章,可以找到两篇文章的关键词集合并计算出词频向量,从而计算文本相似度。

2018年03月08日16:32:52

如果你想要空谈,问男人;如果你想要成事,问女人。 —— 政治家,玛格丽特 撒切尔

posted @ 2018-03-08 16:35  毛利小九郎  阅读(386)  评论(0编辑  收藏  举报