我有一个python代码,可以成功地计算levenshtein距离,但现在我想计算插入、替换和删除的成本
我的代码片段是
def levenshtein_distance(first, second):
matrix = np.zeros((len(first)+1,len(second)+1), dtype=np.int)
for i in range(len(first)+1):
for j in range(len(second)+1):
if i == 0:
matrix[i][j] = j
elif j == 0:
matrix[i][j] = i
else:
matrix[i][j] = min(matrix[i][j-1] + 2,
matrix[i-1][j] + 1,
matrix[i-1][j-1] + 3)
return matrix[len(first)][len(second)]
我的费用是
插入:2 删除:1 替换:3
在min()函数中给出这些代价时,它不知何故错误地计算了替换的代价。如何计算成本
您的代码中没有任何地方比较
first
或second
的内容。看看这个伪代码实现:https://en.wikipedia.org/wiki/Levenshtein_distance#Iterative_with_full_matrix相关问题 更多 >
编程相关推荐