Lucene ScoreDoc:发现得分显着下降

时间:2015-01-20 10:43:12

标签: lucene loss

所以我写了一个小工具(给定一个查询)列出按查询得分排序的前1000个结果文档。显然,并非所有这些都是相关的。作为用户,我和其他人经常做以下事情:

  1. 看分数
  2. 向下滚动列表,直到您看到“显着”的分数损失。
  3. 对于示例,顶级文档的分数如下:4.2,3.9,3.9,3.85,..., 3.7,0.3 ,0.3,0.25,...... 通常我们可以说直到3.7分的所有文件都是相关的,剩下的所有文件(从0.3开始)都不相关。鉴于这个分数列表,这甚至是显而易见的,幸运的是在我们的用例中它只是工作正常。

    是否有任何最先进的算法可以在数字列表中找到这样的“缺口”/“损失”(这里是分数)?

    以下事实:

    • 热门文档始终相关
    • 有一点,没有(或几乎没有)文件是相关的
    • 这一点可以通过分数中的第一个差距来识别

1 个答案:

答案 0 :(得分:0)

你给定序列的天真解决方案是在3.7之后进行切割,但你的算法在边缘情况下会失败。

得分的问题在于它始终是相对的,并且其数值表达式的使用非常有限。实际上,如果语料库发生了变化,同一个查询中的同一文档甚至不能保证相同。

此外,没有什么可以假设得分4.2的第一个命中是“重要的”。如果查询返回所有非常重要的命中怎么办?

我只是担心这个问题没有很好的解决办法,主要是因为很多人认为这根本不是一个大问题。没有人关心Google是否提供了199或200页的搜索结果(实际上没有人会这么做),所以对我来说,分页 是解决这个问题的答案。您不会列出所有搜索结果,是吗?