我正在使用 Levenshtein 距离算法将作为用户输入提供的公司名称与已知公司名称的数据库进行比较,以找到最接近的匹配项。就其本身而言,该算法可以正常工作,但我想构建一个偏差,以便在字符串的初始部分匹配时认为编辑距离较低。
例如,如果搜索条件是“ABCD”,那么两者都是“ABCD Co.”。和“XYX ABCD”具有相同的编辑距离。但是,我想增加第一个字符串的初始部分比第二个字符串更接近搜索条件这一事实的权重。
这样做的一种方法可能是将插入/删除/替换成本修改为在字符串的开头更高而在结尾处降低。有没有人有一个成功实施的例子?使用 Levenshtein 距离仍然是完成我想要实现的目标的最佳方式吗?我对方法的假设是否准确?
更新:为了我的直接目的,我决定放弃上述内容,而是使用似乎可以解决问题的 Jaro Winkler 编辑距离。但是,我将保持开放状态以供进一步输入。