带评分的Lucene模糊短语搜索方法
我的要求是在模糊短语搜索中生成匹配分数。 范例 1) 输入数据-你好,山姆,你好吗?谢谢,史密斯带评分的Lucene模糊短语搜索方法,lucene,levenshtein-distance,fuzzy-search,Lucene,Levenshtein Distance,Fuzzy Search,我的要求是在模糊短语搜索中生成匹配分数。 范例 1) 输入数据-你好,山姆,你好吗?谢谢,史密斯 索引文档-Sam Smith(文档始终为个人/组织名称,输入数据为自由文本数据) 在上面的例子中,Sam和Smith都在我的输入数据中找到,但在上下文中他们都是不同的人。如果我的输入数据是“Hello Sam Smith”,那么我应该得到更高分数的相关命中率(同时我希望“Hello Sam John Smith”的分数为OK,以此类推) 我在这里使用Lucene进行初级过滤,稍后将使用输入数据对
- 索引文档-Sam Smith(文档始终为个人/组织名称,输入数据为自由文本数据)
想从专家那里得到关于这种方法的反馈,或者一些更好的建议,谢谢。我正在使用标记化序列在Lucene中进行类似的模糊短语匹配。使用Levenshtein或JaroWinkler计算标记距离,然后使用Smith Waterman找到最佳序列比对。如果我将这种方法应用到您的案例中,问题在于对齐得分无法(直接)支持代币交换(替换代币)。我能做的唯一一件事就是为源代码中出现的令牌插入的成本要比没有出现的令牌插入的成本低
所以我喜欢n-gram方法来获得对非局部重新排序不太敏感的评分。我建议查看BLEU、METORE和ROUGE,它们是句子相似性的标准n-gram度量,使用各种方法处理顺序敏感性。它们可以与您的建议中的字符级别n-gram一起使用,也可以与我正在做的标记级别n-gram一起使用。关于bleu、meteor和rouge的好提示,我会检查并返回。