Lucene评分函数 - 偏向于较短的文档

3
我希望Lucene评分函数不会因文档长度而产生偏见。这实际上是对仅基于Lucene中词项更多的文档计算得分的后续问题。
我想知道Field.setOmitNorms(true)如何工作?我看到有两个因素使较短的文档获得高分:
1. 使用doc.getBoost()来“提升”较短长度的帖子 2. 在norm(t,d)的定义中的“lengthNorm” 这里是文档
我想知道-如果我不想有对较短文档的偏见,Field.setOmitNorms(true)就足够了吗?

请查看自定义相似度实现(派生自DefaultSimilarity并覆盖用于得分计算的LengthNorm、Tf、Idf和其他函数),这可能有助于您进一步了解该过程。 - sisve
我们使用了相同的效果,并且通过设置Field.setOmitNorms(true)参数,配合searcher.setSimilarity(new DefaultSimilarity() { ... });这种方式,成功地将相似度计算中的词语频率和文档长度考虑因素关闭了。 - fricke
2个回答

1

0

短文档在使用TF-IDF评分时更具相关性。

您可以在Lucene中使用自定义评分函数。定制评分算法非常容易。子类化DefaultSimilarity并覆盖要自定义的方法即可。

这里有一个代码示例here,可以帮助您实现它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接