通过转置测量字符串相似度

Measure the strings similarities by transposition

如果我有三个字符串,第一个是string1 = Laptop,第二个是string2 = Latpop,第三个是string3 = Lavmop,那么levenshtein距离算法将return对于string1string2的相似度以及string1string3的相似度的相同距离。这是因为 levenshtein 算法只计算插入、删除和替换操作,不包括转置操作,例如我们可以交换 Latpop 字符串的第三个和第四个字符,得到 Laptop .

很明显,LatpopLaptopLavmop更相似,将它们归为同一相似度是不正确的。

是否有考虑转置运算的算法?

我在Damerau–Levenshtein distance and Jaro–Winkler distance

中找到了答案