elasticsearch的TF/IDF打分公式总结

elasticsearch的TF/IDF打分公式


NLP中的TF/IDF

  • TF
    TF(term frequency)这个数字是对词数(term count)的归一化,以防止它偏向长的文件。

  • IDF
    逆向文件频率(inverse document frequency,IDF)是一个词语普遍重要性的度量。某一特定词语的IDF,可以由总文件数目除以包含该词语之文件的数目,再将得到的商取对数得到:
    elasticsearch的TF/IDF打分公式总结_第1张图片
    elasticsearch的TF/IDF打分公式总结_第2张图片

es是基于lucene的,所以它的评分机制也是基于lucene的,评分就是我们搜索的短语和doclist中的每篇文档的相关度进行打分。

lucene的评分公式TF/IDF

Lucene的评分叫做TF/IDF算法,基本意思就是词频算法。

  • TF:TF代表分词项在某个点文档中出现的次数(term frequency)

  • IDF:IDF代表代表分词项在多少个文档中出现(inverse document frequency)

这个评分公式有6个部分组成

  • coord(q,d) 评分因子,基于文档中出现查询项的个数。越多的查询项在一个文档中,说明文档的匹配程度越高。
  • queryNorm(q)查询的标准查询
  • tf(t in d) 指项t在文档d中出现的次数frequency。具体值为次数的开根号。
  • idf(t) 反转文档频率, 出现项t的文档数docFreq
  • t.getBoost 查询时候查询项加权
  • norm(t,d) 长度相关的加权因子
    elasticsearch的TF/IDF打分公式总结_第3张图片
    elasticsearch的TF/IDF打分公式总结_第4张图片
    elasticsearch的TF/IDF打分公式总结_第5张图片
    elasticsearch的TF/IDF打分公式总结_第6张图片
    image.png-83.7kB

Lucene评分公式的理解

elasticsearch的TF/IDF打分公式总结_第7张图片
Lucene中使用空间向量模型,其基于余弦定理,对于搜索中的每一个词term看做向量中的一维,每一维度的值由Lucene中的tf-idf打分公式给出,最后使用余弦定理获得搜索结果的最终得分。

TF越高,表示该文档中某term词语出现的频率更高
IDF:IDF与当前文档没有关系,只是一个权重,IDF越高,表示该词语越罕见,重要性越高。(像“的”,“地”不罕见,很多文档中都会包含,因此IDF较低,表示重要程度不高)

PageRank

功能:最初Google用于对网页进行排名

PageRank把所有的网页看成一个社交网络,是一种由搜索引擎根据网页之间相互的超链接计算的技术,体现网页的相关性和重要性。

PageRank基于两个原理:
(1)链接分析原理

一个网页被多次引用,则它可能是很重要的;如果被重要的网页引用,说明自身也是重要的,网页的重要性在网页之间可以传递。

(2) 随机冲浪模型
随机冲浪模型用来计算用户访问某个页面的概率。
Lawrence Page 和 Sergey Brin 提出了用户行为的随机冲浪模型,他们把用户点击链接的行为,视为一种不关心内容的随机行为。 而用户点击页面内的链接的概率,完全由页面上链接数量的多少决定的,一个页面通过随机冲浪到达的概率就是链入它的别的页面上 的链接的被点击概率的和。另外用户不可能无限的点击链接,常常因劳累而随机跳入另一个页面。

Lucene和PageRank区别

  • 两者具体的使用场景不一样:
    lucene是一个搜索工具包,有丰富的API,es基于lucene做站内搜索,关注文档的全文内容搜索
    pagerank是一种网页排名算法,不关心网页的内容,只关注这个网页本身是否重要
  • 二者原理不一样
    lucene打分机制为TF/IDF算法
    pagerank使用链接分析法+随机冲浪模型

参考链接

https://blog.csdn.net/asdfsadfasdfsa/article/details/77977276
https://blog.csdn.net/Gamer_gyt/article/details/48811033
https://www.jianshu.com/p/c6554e73aa85

你可能感兴趣的:(Elasticsearch)