我有一个大城市的数据库,它是从许多不同的来源编译的。我试图找到一种轻松找到基于城市名称的重复的方法。天真的答案是使用levenshtein距离。然而,随着城市的问题在于,他们往往有前缀和后缀是共同的国家,他们是在前缀/后缀替代Levenshtein距离
例如:
布勒维尔与Boscherville
这几乎肯定是不同的城市。然而,因为它们都以“ville”结尾(并且都以“Bo”开始),所以它们具有相当小的Levenstein距离。
* 我正在寻找一种字符串距离算法,该算法考虑到字符的位置,以便通过在字中间加权字母比单词末尾的字母更高来最小化前缀和后缀的影响。 *
我可以自己写一些东西,但我很难相信没有人发布过适合的算法。
我几乎将它作为http://stackoverflow.com/questions/10425238/modifying-levenshtein-distance-for-positional-bias的副本关闭,但那个人有一个艰难的答案来工作...... – Wrikken