用Levenshtein计算编辑距离

时间:2016-10-27 00:27:40

标签: algorithm levenshtein-distance

问题:
我编写了一个Levenshtein字符串编辑程序,该程序似乎对我有效,但显然会产生错误的答案。我想我误解了如何计算编辑距离。

比较
对于字符串 superca antigravitational ,这里是最后两行的比较

矿:

    a n t i g r a v i t  a  t  i  o  n  a  l
c 6 6 6 6 6 6 6 6 7 8 9  10 11 12 13 14 15 16
a 7 6 7 7 7 7 7 6 7 8 9  9  10 11 12 13 13 14

其他:

    a n t i g r a v i t  a  t  i  o  n  a  l
c 6 6 6 6 6 6 6 6 7 8 9  10 11 12 13 14 15 16
a 7 6 7 7 7 7 7 6 7 8 9  9  10 11 12 13 14 15

在我的计算中,你可以看到,因为最后一个" a"在 antigravitational 中匹配" a"在 superca 中,所以我给它的值为13,因为直接在左边的数字是13.因此,成本是0。

在其他计算中,似乎人们仍然在这些情况下增加成本。正如你在另一个例子中看到的那样,他们放置了一个14,我放置了13,导致最终的编辑距离为15(而不是我的14)。

我是对的,其他人都错了(不太可能),或者我错过了一步?

1 个答案:

答案 0 :(得分:0)

我在几部YouTube视频后找到了自己的答案。

我的错误
我的指示说“如果您要比较的字母匹配,请将成本设置为0并复制最小值(左侧,对角线,上方)。如果它们不匹配,请添加1.

更正
因此说明略有不准确。在字母匹配的情况下,无论左边的值和上面的值是什么,都应该始终复制对角线,无论成本是多少。