请告诉我任何人如何在BM25中计算文档(dl)长度和平均文档长度(avdl)。例如,我们有以下4个文件:
new york times east // Doc1
los angeles times west //Doc2
washington post district columbia //Doc3
wall street journal north //Doc4
答案 0 :(得分:0)
第一步是删除停用词并执行词干,以便我们可以将文档d视为一组具有相应术语频率的组成词{tf(t,d):t \ in d}。
现在,文档长度的概念在向量空间和概率模型中略有不同,例如BM25,语言模型等。在前者中,文档长度是指向量的范数,在后者中它通常是指文档中的术语总数。 尽管如此,文档的向量范数概念原则上也可以应用于概率模型,因为术语频率值仍然在0和1之间保持归一化。但是,归一化的术语频率值将不再总和为1。 p>
用你的例子来说明:在向量空间模型的情况下,长度被定义为向量的范数,这是doc1的情况,是norm(doc1)=平方和的平方根doc1 = sqrt(1 ^ 2 + 1 ^ 2 + 1 ^ 2 + 1 ^ 2)= sqrt(4)= 2中每个唯一项的术语频率值。
对于概率模型,长度将被定义为分量项的项频率的总和= 1 + 1 + 1 + 1 = 4.项t的归一化项频率值将为P(t,d)= tf(t,d)/ dl(d)使得\ sum {P(t,d)t \ in d} = 1,例如1/4 + 1/4 + 1/4 + 1/4 = 1。
Lucene的BM25Similarity实现使用向量规范作为文档长度,而Terrier使用组成术语的tfs之和作为文档长度。