怎么计算BM25?
1. BM25是什么?
- 一种用来评价搜索词和文档之间相关性的算法
- 一种基于概率检索模型提出的算法
- 先对搜索词进行切分,得到单词集合,然后求每个单词的分数,最后求和
每个单词的得分计算公式如下,由3部分组成:
1.查询词在文档中的权重,使用的BIM模型得分,在一定的情况下该部分等价于逆文档频率$IDF$($r_i$和$R$都为$0$);$ $
2.查询词和文档之间的相关性,$f_i$ 是查询词$i$ 在文档中的频率,$k1$和$K$是经验参数;
3.查询词和用户查询之间的相关性,$qf_i$ 是查询词$i$ 在用户查询中的频率,但一般用户查询都比较短,$qf_i$ 一般是$1$,$k2$是经验参数;
ps: 在第二部分中$K$代表了文档长度的考虑,$dl$是文档的长度,$avdl$是文档的平均长度,$k1$和$b$是调整参数,$b$为$0$时即不考虑文档长度的影响,经验表明$b=0.75$左右效果比较好。但是也要根据相应的场景进行调整。$b$越大对文档长度的惩罚越大,$k1$因子用于调整词频,极限情况下$k1=0$,则第二部分退化成$1$,及词频特征失效,可以证明$k1$越大词频的作用越大。
2. BIM模型
相关文档 | 不相关文档 | 总文档 | |
---|---|---|---|
包含$i$的文档 | $r_i$+0.5 |
$n_i-r_i$+0.5 |
$n_i$+1 |
不包含$i$的文档 | $R-r_i$+0.5 |
$(N-R)-(n_i-r_i)$+0.5 |
$N-n_i$+1 |
总文档 | $R$+1 |
$N-R$+1 |
$N$+2 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 yelin!