哈尔滨工程大学-537
自然语言处理-BM25相关度打分
(注:文中大写Query、Document等代表集合,小写query、document等代表集合中的个体)
一、优缺点
适用于:在文档包含查询词的情况下,或者说查询词精确命中文档的前提下,如何计算相似度,如何对内容进行排序。
不适用于:基于传统检索模型的方法会存在一个固有缺陷,就是检索模型只能处理 Query 与 Document 有重合词的情况,传统检索模型无法处理词语的语义相关性。
白话举例:提出一个query:当下最火的女网红是谁?
在Document集合中document1的内容为:[当下最火的男明星为鹿晗];
document2的内容为:[女网红能火的只是一小部分]。
显然document1和document2中都包含[火]、[当下]、[网红]等词语。但是document3的内容可能是:[如今最众所周知的网络女主播是周二柯]。很显然与当前Query能最好匹配的应该是document3,可是document3中却没有一个词是与query中的词相同的(即上文所说的没有“精确命中”),此时就无法应用BM25检索模型。
二、算法核心
BM25算法是一种常见用来做相关度打分的公式,思路比较简单,主要就是计算一个query里面所有词 q1,q2...qn q 1 , q 2 . . . q n 和文档的相关度,然后再把分数做累加操作。公式如下:
其中 R(qi,d) R ( q i , d ) 是查询语句query中每个词 qi q i 和文档d的相关度值, Wi W i 是该词的权重,最后将所有词的 Wi∗R(qi,d) W i ∗ R ( q i , d ) 相加。
Wi W i 一般情况下为 IDF(InverseDocumentFrequency) I D F ( I n v e r s e D o c u m e n t F r e q u e n c y ) 值,即逆向文档频率,公式如下: