所以我写了一个小工具(给定一个查询)列出按查询得分排序的前1000个结果文档。显然,并非所有这些都是相关的。作为用户,我和其他人经常做以下事情:
对于示例,顶级文档的分数如下:4.2,3.9,3.9,3.85,..., 3.7,0.3 ,0.3,0.25,...... 通常我们可以说直到3.7分的所有文件都是相关的,剩下的所有文件(从0.3开始)都不相关。鉴于这个分数列表,这甚至是显而易见的,幸运的是在我们的用例中它只是工作正常。
是否有任何最先进的算法可以在数字列表中找到这样的“缺口”/“损失”(这里是分数)?
以下事实:
答案 0 :(得分:0)
你给定序列的天真解决方案是在3.7
之后进行切割,但你的算法在边缘情况下会失败。
得分的问题在于它始终是相对的,并且其数值表达式的使用非常有限。实际上,如果语料库发生了变化,同一个查询中的同一文档甚至不能保证相同。
此外,没有什么可以假设得分4.2
的第一个命中是“重要的”。如果查询返回所有非常重要的命中怎么办?
我只是担心这个问题没有很好的解决办法,主要是因为很多人认为这根本不是一个大问题。没有人关心Google是否提供了199或200页的搜索结果(实际上没有人会这么做),所以对我来说,分页 是解决这个问题的答案。您不会列出所有搜索结果,是吗?