Edit distance 使用交换编辑距离

Edit distance 使用交换编辑距离,edit-distance,Edit Distance,编辑距离查找一个字符串到另一个字符串所需的插入、删除或替换次数。我还想在这个算法中包括交换。例如,“apple”和“appel”的编辑距离应为1。请参见此处的算法 您可以为交换、添加和删除提供不同的成本 m[i,j] = min(m[i-1,j-1] + if s1[i]=s2[j] then 0 else cost_swap fi, m[i-1, j] + cost_insert, m[i, j-1] + cost_delete ),

编辑距离查找一个字符串到另一个字符串所需的插入、删除或替换次数。我还想在这个算法中包括交换。例如,“apple”和“appel”的编辑距离应为1。

请参见此处的算法

您可以为交换、添加和删除提供不同的成本

m[i,j] = min(m[i-1,j-1]
         + if s1[i]=s2[j] then 0 else cost_swap fi,
         m[i-1, j] + cost_insert,
         m[i, j-1] + cost_delete ),  i=1..|s1|, j=1..|s2|

您定义的编辑距离称为Damerau–Levenshtein距离。您可以在上找到可能的实现。

您回答的是替代而不是交换。在我上面的例子中,第二个字符串交换“el”得到“le”,从而匹配第一个字符串