【发布时间】:2016-09-19 19:15:32
【问题描述】:
这段代码返回 2 个术语的 Levenshtein 编辑距离。 我怎样才能做到这一点,以便插入和删除只花费 0.5 而不是 1 ?替换应该仍然花费 1。
def substCost(x,y):
if x == y:
return 0
else:
return 1
def levenshtein(target, source):
i = len(target); j = len(source)
if i == 0:
return j
elif j == 0:
return i
return(min(levenshtein(target[:i-1],source)+1,
levenshtein(target, source[:j-1])+1,
levenshtein(target[:i-1], source[:j-1])+substCost(source[j-1],target[i-1])))
【问题讨论】:
-
请修正您的问题的缩进,目前无法阅读。即便如此,将所有内容放在一条线上也不是惯用的 Python,而且很难回答。
-
到目前为止你尝试过什么?在请人为您解决此问题之前,您应该发布一个尝试
-
用另一个元音替换一个元音也需要0.5,还是只是插入和删除比正常便宜?用元音替换非元音怎么样?反之亦然?
-
不要破坏自己的问题。这是不允许的。
标签: python levenshtein-distance