BM25算法

Posted by horizon-z40 on October 1, 2018

BM25是基于TF-IDF并做了改进的算法。

BM25中的TF

传统的TF值理论上是可以无限大的。而BM25与之不同,它在TF计算方法中增加了一个常量k,用来限制TF值的增长极限

传统 TF Score : $\sqrt{tf}$ BM25的 TF Score: $((k + 1) * tf) / (k + tf)$

BM25如何对待文档长度

​ BM25还引入了平均文档长度的概念,单个文档长度对相关性的影响力与它和平均长度的比值有关系。BM25的TF公式里,除了k外,引入另外两个参数:L和b。L是文档长度与平均长度的比值。如果文档长度是平均长度的2倍,则L=2。b是一个常数,它的作用是规定L对评分的影响有多大。加了L和b的公式变为:

TF Score = ((k + 1) * tf) / (k * (1.0 - b + b * L) + tf)

BM25在传统TF-IDF的基础上增加了几个可调节的参数,使得它在应用上更佳灵活和强大,具有较高的实用性。