1.定义理解

edit distance——指两个字符串之间,一个转为另一个的最小编辑次数(方式有:插入/删除/替换)

若edit distance越小,则字符串之间的相似度越高。

例1:

输入: word1 = "horse", word2 = "ros"

输出: 3

解释:

horse -> rorse (将 'h' 替换为 'r')

rorse -> rose (删除 'r')

rose -> ros (删除 'e')

例2:

输入: word1 = "intention", word2 = "execution"

输出: 5

解释:

intention -> inention (删除 't')

inention -> enention (将 'i' 替换为 'e')

enention -> exention (将 'n' 替换为 'x')

exention -> exection (将 'n' 替换为 'c')

exection -> execution (插入 'u')

2. python实现

# -*- coding: utf8 -*-

def ld(str1, str2):

m, n = len(str1) + 1, len(str2) + 1

# 初始化矩阵

matrix = [[0] * n for i in range(m)]

matrix[0][0] = 0

for i in range(1, m):

matrix[i][0] = matrix[i - 1][0] + 1

for j in range(1, n):

matrix[0][j] = matrix[0][j - 1] + 1

# 动态规划计算ld值

for i in range(1, m):

for j in range(1, n):

if str1[i - 1] == str2[j - 1]:

matrix[i][j] = matrix[i - 1][j - 1]

else:

matrix[i][j] = min(matrix[i - 1][j - 1], matrix[i - 1][j], matrix[i][j - 1]) + 1

return matrix[m - 1][j - 1]

str1 = 'GAATTCAGTTA'

str2 = 'GGATCGA'

print(ld(str1, str2))

python 编辑距离_python实现编辑距离edit distance相关推荐

  1. 编辑距离(Edit Distance) 一文读懂(Python实现)

    在NLP任务中经常会碰到比较两个字符串的相似度,比如拼写纠错和指代判断.用户很可能在搜索时输入错别字,比如"微信"输成了"为信",但是搜索引擎返回的结果纠正为& ...

  2. Edit Distance编辑距离(NM tag)- sam/bam格式解读进阶

    sam格式很精炼,几乎包含了比对的所有信息,我们平常用到的信息很少,但特殊情况下,我们会用到一些较为生僻的信息,关于这些信息sam官方文档的介绍比较精简,直接看估计很难看懂. 今天要介绍的是如何通过b ...

  3. 编辑距离算法(Edit Distance)

    目录 一.概念 二.算法过程 三.举例说明 四.Python实现 1. 递归方式 2. 动态规划 3. Jupyter Notebook 步骤分解 一.概念 编辑距离的作用主要是用来比较两个字符串的相 ...

  4. 字符串编辑距离(Edit Distance)

    一.问题描述 定义 字符串编辑距离(Edit Distance),是俄罗斯科学家 Vladimir Levenshtein 在 1965 年提出的概念,又称 Levenshtein 距离,是指两个字符 ...

  5. 详解编辑距离(Edit Distance)及其代码实现

    概述 编辑距离(Minimum Edit Distance,MED),由俄罗斯科学家 Vladimir Levenshtein 在1965年提出,也因此而得名 Levenshtein Distance ...

  6. mysql 编辑距离 搜索_最小编辑距离(Minimum Edit Distance)

    最小编辑距离 1)定义 编辑距离(Minimum Edit Distance,MED),又称Levenshtein距离,是指两个字符串之间,由一个转成另一个所需要的最少编辑操作次数.允许的编辑操作包括 ...

  7. stanford NLP学习笔记3:最小编辑距离(Minimum Edit Distance)

    I. 最小编辑距离的定义 最小编辑距离旨在定义两个字符串之间的相似度(word similarity).定义相似度可以用于拼写纠错,计算生物学上的序列比对,机器翻译,信息提取,语音识别等. 编辑距离就 ...

  8. Minimum edit distance(levenshtein distance)(最小编辑距离)初探

    最小编辑距离的定义:编辑距离(Edit Distance),又称Levenshtein距离.是指两个字串之间,由一个转成还有一个所需的最少编辑操作次数.许可的编辑操作包含将一个字符替换成还有一个字符. ...

  9. [LeetCode] One Edit Distance 一个编辑距离

    Given two strings S and T, determine if they are both one edit distance apart. 这道题是之前那道Edit Distance ...

最新文章

  1. Vue.js slots: 为什么你需要它们?
  2. 自动化测试(二) 单元测试junit的Test注解突然不能使用原因以及解决方案
  3. 用thinkphp进行微信开发的整体设计思考
  4. leetcode 343. 整数拆分(Integer Break)
  5. java 反射 ppt_Java反射的基本使用
  6. MySQL 笔记7 -- 权限操作与视图
  7. 流程图绘制技巧及实战案例
  8. AM,DSB,SSB,FM信号调制matlab
  9. python目标跟踪精度曲线图_Python+opencv3.4+Kalman滤波在视频中跟踪绘制运动目标,Pythonopencv34kalman,卡尔曼滤波,实现,物体,追踪,和,轨迹...
  10. Oracle发布更新使数据库性能优化达到75%
  11. LeetCode 1217. 玩筹码(脑筋急转弯)
  12. 如何在Ubuntu中使用root账号登录(新增Ubuntu12.04/14.04)?
  13. h.264并行解码算法分析
  14. Fixjs——显示基类DisplayObject
  15. postgresql 索引使用参考
  16. Java第六次作业--异常处理和Java类集
  17. 重学计算机组成原理(五)- 旋转跳跃的指令实现
  18. 数字图像处理学习总结(1):灰度变换与空间滤波
  19. 简单五子棋游戏c语言简单,C语言制作简单五子棋游戏
  20. 如何将IE 11 改为 IE 8

热门文章

  1. php做姓名隐藏,PHP只显示姓名首尾字符,隐藏中间字符并用*替换
  2. linux中info功能是什么意思,Linux中的info指令
  3. java properties $_Java读取Properties文件的六种方法
  4. slf4j + log4j2配置日志引擎
  5. mysql 视图报错_MySQL使用Union创建视图报错
  6. lq分解的matlab语言,MATLAB-语言及其应用.ppt
  7. centos7系统引导自动重启_分享一个实用的脚本——全自动一键批量性安装Linux系统...
  8. ideahtml里面没有提示_抖音上爆火的苹果充电提示音,安卓手机也可以设置了!!...
  9. su linux pe,Monikielisyys perusopetuksen opetussuunnitelman perusteissa
  10. netcore5开发Android,那些鼓吹国内首个.NET 5框架的,该醒醒了!