簡體   English   中英

設置編輯距離的成本?

[英]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() 函數中給出這些成本時,它以某種方式錯誤地計算了替代成本。 如何計算成本?

在您的代碼中沒有任何地方比較firstsecond的內容。 看看這個偽代碼實現: https : //en.wikipedia.org/wiki/Levenshtein_distance#Iterative_with_full_matrix

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM