Levenshtein Distance (LD算法) 编辑距离算法原理
莱文斯坦距离,又称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算法步骤:
- 初始化算法分数矩阵H,使行i表示字符ai,列j表示字符bj;
- 计算矩阵中每一项的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 - 回溯,从矩阵右下角开始:
若ai=bj,则回溯到左上角单元格;
若ai≠bj,回溯到左上角、上边、左边中值最小的单元格,若有相同最小值的单元格,优先级按照左上角、上边、左边的顺序。 - 根据回溯路径,写出匹配字符串:
若回溯到左上角单元格,将ai添加到匹配字串A‘,将bj添加到匹配字串B’;
若回溯到上边单元格,将ai添加到匹配字串A’,将_添加到匹配字串B’;
若回溯到左边单元格,将_添加到匹配字串A’,将bj添加到匹配字串B’。 - 矩阵右下角的值即为俩序列的编辑距离,回溯结果为全部匹配序列。
示例:
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算法) 编辑距离算法原理相关推荐
- 字符串相似度算法(编辑距离算法)
编辑距离算法 前言 原理 公式 例子 实现 后记 前言 比较两个字符串的相似度,通常我们会使用编辑距离算法来实现. 下面是常用字符串相似度计算的方法: 字符串相似度的几种度量方法 原理 最小编辑距离的 ...
- 预测分析算法的设计与实现_基于LD(编辑距离算法)的单词速记数据库分析设计与实现...
2020-21-1学期<最新数据库管理系统>结课作业展示. 作者:牟伦利 褚四浩 陈思琴 曹鹏飞(电商11802) 分工 陈思琴:系统需求分析 .系统相关算法分析和ER图 曹鹏飞:系统数据 ...
- Minimum edit distance(levenshtein distance)(最小编辑距离)初探
最小编辑距离的定义:编辑距离(Edit Distance),又称Levenshtein距离.是指两个字串之间,由一个转成还有一个所需的最少编辑操作次数.许可的编辑操作包含将一个字符替换成还有一个字符. ...
- Levenshtein distance 编辑距离算法
这几天再看 virtrual-dom,关于两个列表的对比,讲到了 Levenshtein distance 距离,周末抽空做一下总结. Levenshtein Distance 介绍 在信息理论和计算 ...
- 数据对齐-编辑距离算法详解(Levenshtein distance)
目录 一:简介 二:算法定义 1:定义 2:a small case 3:算法的上下界限 三:应用场景 1:数据对齐 2:拼写纠错 四:其他的编辑距离算法 五:算法实现 1:递归实现 2:动态规划实现 ...
- Levenshtein distance最小编辑距离算法实现
Levenshtein distance,中文名为最小编辑距离,其目的是找出两个字符串之间需要改动多少个字符后变成一致.该算法使用了动态规划的算法策略,该问题具备最优子结构,最小编辑距离包含子最小编辑 ...
- Levenshtein Distance算法(编辑距离算法)
编辑距离 编辑距离(Edit Distance),又称Levenshtein距离,是指两个字串之间,由一个转成另一个所需的最少编辑操作次数.许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符, ...
- 莱文斯坦距离(编辑距离)算法 (Levenshtein Distance Algorithm)
什么是 莱文斯坦距离算法 (Levenshtein Distance Algorithm) ? Levenshtein Distance,莱文斯坦距离,通常被称为编辑距离(Edit Distance) ...
- 编辑距离算法详解:Levenshtein Distance算法——动态规划问题
目录 背景: 求编辑距离算法: 图解过程: C++代码如下: 总结: 背景: 我们在使用词典app时,有没有发现即使输错几个字母,app依然能给我们推荐出想要的单词,非常智能.它是怎么找出我们想要的单 ...
最新文章
- 2022-2028年中国免疫诊断行业市场前瞻与投资战略规划分析报告
- renpy 如何执行2个action_如何解决工作中遇到问题丨2个思考方式、2个技巧和1个解决系统...
- Flex与.NET互操作(七):了解FluorineFx的环境配置(远程对象、网关、通道、目的地)...
- WeChat小程序报错Module not found: Can‘t resolve ‘umtrack-alipay‘ in
- 3 年 3 款产品百万级增长方法论
- jsp iframe嵌入php,jsp嵌套iframe从iframe中表单提交并传值到外层_html/css_WEB-ITnose
- 面试:InnoDB 并发控制
- 纯ASP结合VML生成完美图-柱图
- 女生在施工单位项目部上工作,是怎样一种体验?
- barplot函数--R语言
- STM32——HAL库函数版——AD7656驱动程序
- Android常用控件基础知识
- anaconda conda 切换为清华源
- 家庭理财系统 -- 功能清单
- 指派问题:匈牙利算法
- 实验matlab滤波器心得,数字信号处理,实验,Matlab实验FIR滤波器实现
- 面向对象六大原则——依赖倒置原则
- 坑人的青旅乐山峨眉两日游
- Postman 实现备份数据 Postman恢复数据 postman 导出导入数据 postman 导入导出数据
- addEventListener 事件监听