[英]Set cost for levenshtein distance?
我有一個成功運行的 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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.