设置levenshtein距离的成本?

2024-04-24 10:54:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个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()函数中给出这些代价时,它不知何故错误地计算了替换的代价。如何计算成本


Tags: 代码in距离forlendefnprange