文本相似度-bm25算法原理及实现
发布日期:2021-10-10 05:31:22 浏览次数:62 分类:技术文章

本文共 982 字,大约阅读时间需要 3 分钟。

文本相似度-bm25算法原理及实现

文章目录

原理

BM25算法:

用途:搜索相关性分数的计算;

算法描述:

  1. 对Query进行语素解析,生成语素 q i q_i qi
  2. 然后,对于每个搜索结果D,计算每个语素 q i q_i qi与D的相关性得分,
  3. 最后,将qi相对于D的相关性得分进行加权求和,从而得到Query与D的相关性得分。

BM25算法的一般性公式如下:

S c o r e ( Q , d ) = ∑ 1 n W i R ( q i , d ) Score(Q, d) = \sum_{1}^{n}W_iR(q_i, d) Score(Q,d)=1nWiR(qi,d)

名词解释:

  • Q表示Query;
  • q i q_i qi表示Q解析之后的一个语素(对中文而言,我们可以把对Query的分词作为语素分析,每个词看成语素 q i q_i qi);
  • d表示一个搜索结果文档;
  • W i W_i Wi表示语素 q i q_i qi的权重; R ( q i , d ) R(q_i,d) R(qid)表示语素 q i q_i qi与文档d的相关性得分;

下面我们来看如何定义Wi。

​ 判断一个词与一个文档的相关性的权重,方法有多种,较常用的是IDF。

我们再来看语素qi与文档d的相关性得分R(qi,d)。

首先来看BM25中相关性得分的一般形式:

  • k1,k2,b为调节因子,通常根据经验设置,一般k1=2,b=0.75;

  • fi为qi在d中的出现频率

  • qfi为qi在Query中的出现频率。

  • dl为文档d的长度

  • avgdl为所有文档的平均长度。由于绝大部分情况下,qi在Query中只会出现一次,即qfi=1,因此公式可以简化为:

从K的定义中可以看到,参数b的作用是调整文档长度对相关性影响的大小。b越大,文档长度的对相关性得分的影响越大,反之越小。而文档的相对长度越长,K值将越大,则相关性得分会越小。这可以理解为,当文档较长时,包含qi的机会越大,因此,同等fi的情况下,长文档与qi的相关性应该比短文档与qi的相关性弱。

综上,BM25算法的相关性得分公式可总结为:

从BM25的公式可以看到,通过使用不同的语素分析方法、语素权重判定方法,以及语素与文档的相关性判定方法,我们可以衍生出不同的搜索相关性得分计算方法,这就为我们设计算法提供了较大的灵活性。

转载地址:https://blog.csdn.net/qq_22054285/article/details/86704671 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:查看进程的启动时间
下一篇:大数据面试题

发表评论

最新留言

不错!
[***.144.177.141]2024年03月22日 18时01分12秒