python 中 衡量字符串编辑距离的Levenshtein函数

来源:互联网 发布:直接在淘宝联盟购物车 编辑:程序博客网 时间:2024/05/16 13:45
def levenshtein(lst1,lst2,i,j):    if min(i,j) == 0:        return max(i,j)+1    return min(        levenshtein(lst1,lst2,i-1,j)+1,        levenshtein(lst1,lst2,i,j-1)+1,        levenshtein(lst1,lst2,i-1,j-1)+(1 if lst1[i] != lst2[j] else 0)    )

相应的lambda 版本:

Y = lambda f:(lambda g:f(lambda x:g(g)(x)))(lambda g:f(lambda x:g(g)(x)))lev = lambda f:lambda lst1:lambda lst2:lambda i:lambda j:max(i,j)+1 if min(i,j)==0 else\min(    f(lst1)(lst2)(i-1)(j)+1,    f(lst1)(lst2)(i)(j-1)+1,    f(lst1)(lst2)(i-1)(j-1)+(1 if lst1[i] != lst2[j] else 0))levenshtein = Y(lev)



0 0
原创粉丝点击