Xapian实现Simple BM25F

SimpleBM25F是BM25F的基础拓展版本,主要用于多个域的拓展,感兴趣的可以看《Simple BM25 Extension to Multiple Weighted Fields》。

主要观点:按照权重将不同域重复相应次数,拼成无结构的混合文本桶,然后只计算一次BM25得分。

而之前很多人采用的各个域先计算不同的BM25,再线性组合的做法,则破坏了词项独立性而效果很差。

传统:bm25.cpp

结果,由于doc1的content多一个“男篮”,所以比doc2得分高,doc1排第一。

再看Simple BM25F,注意权重使用函数的第2个参数wdf就行了:

再看结果,由于title重复了两次,所以doc2多含了一个tf的“男篮”,因此doc2排1:

One thought on “Xapian实现Simple BM25F

Leave a Reply

Your email address will not be published.