0

我有一个包含500万个条目的Lucene索引。我用索引文件的“扭曲”片段查询这个索引。然后,我得到前1个文件及其得分。从这些数据中,我需要判断返回的文档是否正确。我的第一种方法是使用返回文档的ID和分数来训练一个随机森林(也就是说,对于每个搜索的片段,我将一个训练实例插入包含返回数据的随机森林中)。然而,虽然它对一些文件来说相当有效,但对其他文件的表现却很差。分类Lucene的结果更好的精度

对于每一个文件,对Lucene索引查询已经能够找到正确的文档一些片段,但不是为别人(这让我有100%的召回,但低精度)。

如何设置告诉其结果是正确有效的启发?

回答

0

如果我正确地得到你的问题,你要检索其扭曲的形式是当前查询该文档。这种情况类似于通常用字级n-gram(称为带状疱疹)解决的近似重复检测问题。 Jaccard coeff。的一组带状疱疹是确定这种情况的有效方法。欲了解更多详情,请参阅近复制文档检测安德烈·布罗德的paper ..

+0

感谢Debasis。查询只是一个扭曲的片段,而不是文件本身。事实上,我没有索引原始内容,而是删除了停用词,创建了2克剩余条款并生成了索引。片段从流源收集,并且类似地移除停用词并产生2克。它在召回方面表现相当出色(对于每个流式文档,我至少能够正确检测一个代码段)。我的问题是精确。我需要能够很好地分辨出top1文档对于给定的片段是否正确。 – 2014-12-03 13:45:41