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