我有一个从许多不同来源编译的大城市数据库。我正在尝试找到一种根据城市名称轻松发现重复项的方法。天真的答案是使用 levenshtein 距离。但是,城市的问题在于它们通常具有所在国家/地区通用的前缀和后缀。
例如:
布勒维尔与博舍维尔
这些几乎可以肯定是不同的城市。但是,因为它们都以“ville”结尾(并且都以“Bo”开头),所以它们的列文斯坦距离相当小。
*我正在寻找一种字符串距离算法,该算法考虑到字符的位置,通过将单词中间的字母权重于单词末尾的字母来最小化前缀和后缀的影响。*
我自己可能会写一些东西,但我很难相信还没有人发布过合适的算法。