仅插入和删除查找距离的变化?

时间:2019-03-30 20:54:53

标签: python levenshtein-distance edit-distance

我只需要递归地使用插入和删除操作,即可找到一个单词及其排序单词(例如apple和aelpp)之间的编辑距离。

我发现一些使用插入,删除和替换的资源,但是我不确定如何仅使用插入和删除。

这是我发现的代码:

def ld(s, t):
    if not s: return len(t)
    if not t: return len(s)
    if s[0] == t[0]: return ld(s[1:], t[1:])
    l1 = ld(s, t[1:])
    l2 = ld(s[1:], t)
    l3 = ld(s[1:], t[1:])
    return 1 + min(l1, l2, l3)

仅查找插入和删除的数量需要进行哪些编辑?

1 个答案:

答案 0 :(得分:1)

删除l3,它像这样计算替换值

def ld2(s, t):
    if not s: return len(t)
    if not t: return len(s)
    if s[0] == t[0]: return ld2(s[1:], t[1:])
    l1 = ld2(s, t[1:])
    l2 = ld2(s[1:], t)
    return 1 + min(l1, l2)

您可以看到ld('apple', 'applx')等于1,而具有相同参数的ld2等于2。