《从Lucene到Elasticsearch:全文检索实战》学习笔记五

时间:2022-12-08 08:04:26

今天我给大家讲讲tf-idf权重计算

tf-idf权重计算:

       tf-idf(中文词频-逆文档概率)是表示计算词项对于一个文档集或语料库中的一份文件的重要程度。词项的重要性随着它在文档中出现的次数成正比,会随着它在文档集中出现的频率成反比。如果一个词项在一遍文档中出现的频率非常高,说明其比较重要,如果这个词项在其他文档中出现的频率也高,那么说明这个词有可能是比较通用的。

      tf代表词项频率,如果要计算指定词项的词频,统计该词在整篇文档中出现的次数就可以了。如果一篇3000字的文档中词语“足球”出现了3次,我很难判定这片文章和足球相关,但是一篇100字但微博中通用出现三次“足球”。基本可以断定微博内容和足球有关,为了削弱文档长度但影响,需要将词频标准化,计算公式如下    

《从Lucene到Elasticsearch:全文检索实战》学习笔记五

     另外,词频标准化的方法不止一种,Lucene中采用了另外一种词频标准化方法:

《从Lucene到Elasticsearch:全文检索实战》学习笔记五  

 

     文档频率df表示包含指定词的所有文档数目。df通常比较大,把它映射到一个较小的取值范围,用逆文档频率(idf)来表示‘:

     《从Lucene到Elasticsearch:全文检索实战》学习笔记五

从上面公式中可以看出分母越大,说明该词越常见,逆文档频率越小。分母中文档数加1是进行平滑处理,防止所有文档都不包括某个词时分母为0的情况发生。词项的权重用TF-IDF来表示,计算公式如下:

《从Lucene到Elasticsearch:全文检索实战》学习笔记五   

通过tf-idf可以把文档表示成n维的词项权重向量

       《从Lucene到Elasticsearch:全文检索实战》学习笔记五