BM25
2023-01-12

 

符号定义

  1. Q=[q1,q2,,qn]

    • Q:输入的查询语句(query)
    • qi:对Q分词后得到的第i个单词
    • n:对Q分词后得到单词的个数
  2. D=[d1,d2,,dm]

    • D:文档集合
    • dj:第j个文档
    • m:文档的个数

 

BM25算法

TF-IDF

首先回顾TF-IDF的公式:

(1)TF-IDF(Q,dj)=i=1nTF-IDF(qi,dj)=i=1nTF(qi,dj)IDF(qi)=i=1nqidj+1djlogmqi+1

简言之,用户query与某个文档的相似度,等于该query中每个词与该文档TF-IDF的和。

 

BM25

BM25算法是TF-IDF算法的优化版本,算法整体逻辑与之类似,计算公式如下:

(2)Score(Q,dj)=i=1nW(qi)R(qi,d)W(qi)=logmdfi+0.5dfi+0.5R(qi,d)=fi(k1+1)fi+Kqfi(k2+1)qfi+k2K=k1(1b+bdlavg_dl)dfiDqik1k2bk1=2k2=1b=0.75fiqidjqfiqiQdldjavg_dlQ

代码

BM25 Code

 

参考文档

  1. 《这就是搜索引擎》 - 张俊林