我使用Levenshtein距离算法将作为用户输入提供的公司名称与已知公司名称的数据库进行比较,以找到最接近的匹配。算法本身可以正常工作,但是我希望构建一个偏置,以便在字符串的初始部分匹配时将编辑距离视为较低。
例如,如果搜索条件是“ABCD”,那么两个“ABCD Co.”和“XYX ABCD”具有相同的编辑距离。但是,我想补充第一个字符串的初始部分比第二个字符串更接近匹配搜索条件的事实。
这样做的一种方法可能是将插入/删除/替换成本修改为在字符串的开头处更高并且更低到最后。有没有人有成功实施的例子?使用Levenshtein距离仍然是我想要实现的最佳方式吗?我对这种方法的假设是否准确?
更新:出于我的直接目的,我决定放弃上述内容,而是使用Jaro Winkler编辑距离,这似乎可以解决问题。但是,我会将其留待进一步投入。
答案 0 :(得分:0)
您正在寻找的是 Smith-Waterman 本地对齐:http://en.wikipedia.org/wiki/Smith%E2%80%93Waterman_algorithm