You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于BM25算法IDF计算与差异图匹配的技术疑问

BM25与TF-IDF的IDF计算绘图疑问

我在研究BM25算法时,对IDF的计算存在图形相关疑问。我看到一张展示BM25与TF-IDF的IDF差异图。以下是TF-IDF和BM25的IDF计算公式:

IDF = Math.log(N / df) // TF-IDF

IDF = Math.log(1 + (N - df + 0.5) / (df + 0.5)) // BM25

但使用BM25的IDF计算公式似乎无法生成上述图形。我用Python尝试绘图验证,代码如下:

import matplotlib.pyplot as plt
import math

N = 100
plot_data = []
for df in range(1,17):
    idf = math.log(1+(N-df+0.5)/(df+0.5))
    plot_data.append(idf)
    
plt.plot(plot_data, label='BM25_IDF')
plt.legend()

plot_data = []
for df in range(1, 17):
    idf = math.log(N/(df+1))
    plot_data.append(idf)
plt.plot(plot_data, label='idf')
# plt.plot(idf_list_bias, label='idf')
plt.legend()

绘图结果仍与看到的差异图不匹配,想知道是否遗漏了什么?


内容的提问来源于stack exchange,提问作者SAXYCOW

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 10:33:14