0

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

  1. 看成绩
  2. 向下滚动列表,直到您看到“显着”的分数损失。

例如顶级文档的分数是这样的:4.2, 3.9, 3.9, 3.85, ..., 3.7, 0.3 , 0.3, 0.25, ... 通常我们可以说直到 3.7 分数之前的所有文档都是相关的,其余的(从 0.3 开始)都不相关。鉴于这个分数列表,这甚至是显而易见的,幸运的是,在我们的用例中它运行良好。

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

以下事实:

  • 热门文档总是相关的
  • 有一点与任何(或几乎没有)文件相关
  • 这一点可以通过分数的第一个差距来识别
4

1 回答 1

0

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

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

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

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

于 2015-01-20T11:47:51.653 回答