关于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
相关产品推荐
相关产品推荐

