适合寻找最相似城镇的最佳算法

时间:2018-04-05 09:09:05

标签: string-matching similarity ranking levenshtein-distance fuzzy-search

我有一个充满城镇及其地理数据和一些输入数据的数据集。这个输入数据几乎总是一个城镇。但是,如果城镇被互联网刮掉,它们可能会有点拼写错误或拼写不同。例如圣彼得堡< - >圣彼得堡

在我的研究过程中,我遇到了几个算法并尝试了两个算法。首先我尝试了 Sørensen–Dice coefficient。这给了我一些有希望的结果,直到我尝试将短字符串与较长的字符串匹配。当所有字符串的大小大致相同时,算法非常好,但是当它们的大小差别很大时,您会得到混合的结果。例如将Saint与该集匹配时,它会将Sail作为最佳匹配,而我需要Saint-Petersburg。 我试过的第二个算法是Levenshtein distance,但出于同样的原因,它的表现并不好。

我遇到了其他一些算法,例如余弦相似度,最长公共子序列等等,但这看起来有点复杂,我想保持计算成本降低。

是否有任何算法优先匹配匹配百分比的匹配长度?

任何人都有匹配奇怪拼写城镇名称的经验吗?请让我知道!

编辑:

我认为SO question可能是重复的,但事实证明它描述的是Sorenson-Dice。

0 个答案:

没有答案