莱文斯坦距离,又称Levenshtein距离,是编辑距离的一种。指两个字串之间,由一个转成另一个所需的最少编辑操作次数。允许的编辑操作包括:将一个字符替换成另一个字符,插入一个字符,删除一个字符。

LD算法原理:

  • 算法目的:计算出两字符序列的编辑距离,同时也能求出两序列的匹配序列

  • 假设:
    比对的俩序列为:

    则两序列的长度分别为len(A) = n,Len(B)=m;
    LD(A,B):字符串A和字符串B的编辑距离,即将字符串A转换为字符串B所用的最少字符操作数。
    LD(A,B)=0表示两个字符串完全一样。
    LD(i,j)=LD(a1a2……ai,b1b2……bj),其中0≤i≤N,0≤j≤M

  • 算法步骤:

    1. 初始化算法分数矩阵H,使行i表示字符ai,列j表示字符bj;
    2. 计算矩阵中每一项的LD(i, j):
      若ai = bj,则LD(i, j) = LD(i-1, j-1) 取左上角的值
      若ai ≠ bj,则LD(i, j) = Min( LD(i-1, j-1), LD(i-1, j), LD(i, j-1) ) +1
    3. 回溯,从矩阵右下角开始:
      若ai=bj,则回溯到左上角单元格;
      若ai≠bj,回溯到左上角、上边、左边中值最小的单元格,若有相同最小值的单元格,优先级按照左上角、上边、左边的顺序。
    4. 根据回溯路径,写出匹配字符串:
      若回溯到左上角单元格,将ai添加到匹配字串A‘,将bj添加到匹配字串B’;
      若回溯到上边单元格,将ai添加到匹配字串A’,将_添加到匹配字串B’;
      若回溯到左边单元格,将_添加到匹配字串A’,将bj添加到匹配字串B’。
    5. 矩阵右下角的值即为俩序列的编辑距离,回溯结果为全部匹配序列。
  • 示例:
    A=GGATCGA,B=GAATTCAGTTA
    评分矩阵

    回溯:


结果:
LD(A,B) = 5;

可见LD算法的流程和needleman wunsch算法是很类似的,区别在于LD算法使用的是最小值,NW算法使用的是最大值。
needleman wunsch算法介绍详见:
SW算法、NW算法介绍;
https://blog.csdn.net/yohjob/article/details/89144032

Levenshtein Distance (LD算法) 编辑距离算法原理相关推荐

  1. 字符串相似度算法(编辑距离算法)

    编辑距离算法 前言 原理 公式 例子 实现 后记 前言 比较两个字符串的相似度,通常我们会使用编辑距离算法来实现. 下面是常用字符串相似度计算的方法: 字符串相似度的几种度量方法 原理 最小编辑距离的 ...

  2. 预测分析算法的设计与实现_基于LD(编辑距离算法)的单词速记数据库分析设计与实现...

    2020-21-1学期<最新数据库管理系统>结课作业展示. 作者:牟伦利 褚四浩 陈思琴 曹鹏飞(电商11802) 分工 陈思琴:系统需求分析 .系统相关算法分析和ER图 曹鹏飞:系统数据 ...

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

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

  4. Levenshtein distance 编辑距离算法

    这几天再看 virtrual-dom,关于两个列表的对比,讲到了 Levenshtein distance 距离,周末抽空做一下总结. Levenshtein Distance 介绍 在信息理论和计算 ...

  5. 数据对齐-编辑距离算法详解(Levenshtein distance)

    目录 一:简介 二:算法定义 1:定义 2:a small case 3:算法的上下界限 三:应用场景 1:数据对齐 2:拼写纠错 四:其他的编辑距离算法 五:算法实现 1:递归实现 2:动态规划实现 ...

  6. Levenshtein distance最小编辑距离算法实现

    Levenshtein distance,中文名为最小编辑距离,其目的是找出两个字符串之间需要改动多少个字符后变成一致.该算法使用了动态规划的算法策略,该问题具备最优子结构,最小编辑距离包含子最小编辑 ...

  7. Levenshtein Distance算法(编辑距离算法)

    编辑距离 编辑距离(Edit Distance),又称Levenshtein距离,是指两个字串之间,由一个转成另一个所需的最少编辑操作次数.许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符, ...

  8. 莱文斯坦距离(编辑距离)算法 (Levenshtein Distance Algorithm)

    什么是 莱文斯坦距离算法 (Levenshtein Distance Algorithm) ? Levenshtein Distance,莱文斯坦距离,通常被称为编辑距离(Edit Distance) ...

  9. 编辑距离算法详解:Levenshtein Distance算法——动态规划问题

    目录 背景: 求编辑距离算法: 图解过程: C++代码如下: 总结: 背景: 我们在使用词典app时,有没有发现即使输错几个字母,app依然能给我们推荐出想要的单词,非常智能.它是怎么找出我们想要的单 ...

最新文章

  1. 2022-2028年中国免疫诊断行业市场前瞻与投资战略规划分析报告
  2. renpy 如何执行2个action_如何解决工作中遇到问题丨2个思考方式、2个技巧和1个解决系统...
  3. Flex与.NET互操作(七):了解FluorineFx的环境配置(远程对象、网关、通道、目的地)...
  4. WeChat小程序报错Module not found: Can‘t resolve ‘umtrack-alipay‘ in
  5. 3 年 3 款产品百万级增长方法论
  6. jsp iframe嵌入php,jsp嵌套iframe从iframe中表单提交并传值到外层_html/css_WEB-ITnose
  7. 面试:InnoDB 并发控制
  8. 纯ASP结合VML生成完美图-柱图
  9. 女生在施工单位项目部上工作,是怎样一种体验?
  10. barplot函数--R语言
  11. STM32——HAL库函数版——AD7656驱动程序
  12. Android常用控件基础知识
  13. anaconda conda 切换为清华源
  14. 家庭理财系统 -- 功能清单
  15. 指派问题:匈牙利算法
  16. 实验matlab滤波器心得,数字信号处理,实验,Matlab实验FIR滤波器实现
  17. 面向对象六大原则——依赖倒置原则
  18. 坑人的青旅乐山峨眉两日游
  19. Postman 实现备份数据 Postman恢复数据 postman 导出导入数据 postman 导入导出数据
  20. addEventListener 事件监听

热门文章

  1. 35岁以后的Android程序员出路在哪里?完整PDF
  2. 2020字节跳动笔试题
  3. 2021年前端最优秀的开发工具
  4. 【LOJ 网络流24题】试题库
  5. VMware Linux 静态 IP 设置-【nmtui】
  6. Android资源之String (四): plurals
  7. 微信小程序的swiper插件自适应内容的高度
  8. HWC blending mode
  9. rico-using
  10. vue3 函数式组件调试报警 Non-function value encountered for default slot