美文网首页
最小编辑距离

最小编辑距离

作者: 早上起来闹钟又丢了 | 来源:发表于2019-06-22 15:53 被阅读0次

定义:两个字串之间,由一个转成另一个所需的最少编辑操作次数,如果它们的距离越大,说明它们越是不同。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。

作用:比较两个字符串的相似度

算法步骤:
1.str1或str2的长度为0返回另一个字符串的长度。
2.初始化(n+1) * (m+1)的矩阵d,并让第一行和列的值从0开始增长。扫描两字符串(n * m级的),如果:str1[i] == str2[j],用temp记录它,为0。否则temp记为1。然后在矩阵d[i,j]赋于d[i-1,j]+1 、d[i,j-1]+1、d[i-1,j-1]+temp三者的最小值。
3.扫描完后,返回矩阵的最后一个值d[n][m]即是它们的距离。

举例:str1和str2分别为“ivan1”和“ivan2”
1、第一行和第一列的值从0开始增长



2、举证元素的产生 Matrix[i - 1, j] + 1 ; Matrix[i, j - 1] + 1 ; Matrix[i - 1, j - 1] + t 三者当中的最小值



3、依次类推直到矩阵全部生成

python实现:

def EditDistance(str1, str2):
    len1 = len(str1)
    len2 = len(str2)

    if len1 == 0:
        return len2
    elif len2 == 0:
        return len1

    # 矩阵初始化
    array = [[0 for _ in range(len1+1)] for _ in range(len2+1)]
    for i in range(len1+1):
        array[0][i] = i
    for i in range(len2+1):
        array[i][0] = i

    for i in range(1, len2+1):
        for j in range(1, len1+1):
            if str1[i-1] == str2[j-1]:
                temp = 0
            else:
                temp = 1
            array[i][j] = min(array[i-1][j]+1, array[i][j-1]+1, array[i-1][j-1]+temp)

    return array[len2][len1]

相关文章

  • 最小编辑距离

    编辑距离,又称为Levenshtein距离,由俄罗斯的数学家Vladimir Levenshtein在1965年提...

  • 最小编辑距离

    题目 给定一个源串S和目标串T,能够对源串进行如下操作:1.在给定位置上插入一个字符2.替换任意字符3.删除任意字...

  • 最小编辑距离

    定义:两个字串之间,由一个转成另一个所需的最少编辑操作次数,如果它们的距离越大,说明它们越是不同。许可的编辑操作包...

  • 最小编辑距离

    1.定义 假设只有三种编辑方式:插入,删除,替换。每种编辑方式对应一次操作。按规定的编辑方式,将原始字符串变换到目...

  • 最小编辑距离

    求两个字符串最小编辑距离,word1->word2转换 word1的前i个字符串要想转换为word2的前j个字符串...

  • 最小编辑距离

    最小编辑距离 编辑距离有两种: Levenshtein距离: 允许插入,删除和替换一个字符, 最常见 Damera...

  • NLP-2012斯坦福课程第3课 基本问题

    一、最小编辑距离编辑距离(Minimum Edit Distance,MED),又称Levenshtein距离,是...

  • 72、最小编辑距离

    我太小看面试难度了,本来以为这样的题目不会遇到,但是小米面试的时候遇到了,好在没做出来也过了,所以一定要搞懂啊。 ...

  • 最小编辑距离_Python

    最小编辑距离或莱文斯坦距离(Levenshtein),指由字符串A转化为字符串B的最小编辑次数。允许的编辑操作有:...

  • 最小编辑距离算法

    https://github.com/youngwind/blog/issues/106

网友评论

      本文标题:最小编辑距离

      本文链接:https://www.haomeiwen.com/subject/eyhvqctx.html