对于最小编辑距离算法的理解:

1,一个字符串转化到另一个字符串的最少操作次数

2,操作有三种:增加,删除,替换。

3,它是一个不断最小取值的过程(每一步都是最小取值,至最后理所当然最少操作次数)PS:算法实现过程

最小编辑距离算法思想:

从第一位字符开始不断与相比较字符串比较,通过对比以添加,删除,替换三种方式找到最佳操作。

添加,删除,替换三种方式在代码中展示

import numpy as np
"""
编辑距离:用于比较两个字符串的相似程度
StrA: 字符串A
StrB:字符串B
函数包含处理过程
包含bug:处理不同长度的字符串的时候会出现报错
"""def min_edit_dist(StrA,StrB):#获取字符串长度a_length = len(StrA)b_length = len(StrB)#创建矩阵matrix = np.zeros((b_length+1, a_length+1))#初始化矩阵for i in range(1,a_length+1):matrix[0][i] = ifor j in range(1,b_length+1):matrix[j][0] = j#开始进行动态规划cost = 0 #代价值for i in range(1,b_length+1):for j in range(1,a_length+1):if StrA[j-1] == StrB[i-1]:cost = 0else:cost = 1#三种字符串操作方式增加 删除 替换edit_exchange_dis = matrix[j-1][i-1] + cost   #替换edit_add_dis = matrix[j-1][i] + 1             #添加edit_del_dis = matrix[j][i-1] + 1             #删除matrix[j][i] = min(edit_exchange_dis,edit_add_dis,edit_del_dis)#print(matrix[j][i])                          #最小编辑距离更改记录print(matrix)                                 #打印算法过程print('______________________')               #分割# print(i)    遍历完整性print('相似度为:',1-1/max(a_length,b_length))         #1-(字符串更改最少次数/字符串最                长距离)# print(matrix)# print(StrA[a_length-1])# print(StrB[b_length-1])# print(a_length)min_edit_dist('jsi2nz','jsionz')                           #测试

刚才忘记结果及算法运行过程截图了,现在贴上,在我参考其他博主的相关文章里,字符串比较过程最多两种方式:

  j s i 2 n z
j            
s            
i            
o            
n            
z            

1,字符串A ------> jsi2nz字符串B ------> jsionz(上图代码展示这种方式)

(1),串甲的第一个字符j与串乙的j,js,jsi,jsio,jsion,jsionz分别比较

(2),串甲的前两个字符js与串乙的j,js,jsi,jsio,jsion,jsionz分别比较

(3)··························

2,字符串A ------> jsi2nz字符串B ------> jsionz

(1),串甲的第一个字符j,js,jsi,jsi2,jsi2n,jsi2nz分别与串乙的Ĵ比较

(2),串甲的第一个字符j,js,jsi,jsi2,jsi2n,jsi2nz分别与串乙的JS比较

(3)··························

过程截图:

结果截图:

第一次写博客,不知道说些什么·····,额·····,有不懂的下方留言吧

最小编辑距离算法及python实现相关推荐

  1. 最小编辑距离算法 Edit Distance(经典DP)

    最小编辑距离算法 Edit Distance(经典DP) 转载baodream 最后发布于2018-05-23 11:36:32 阅读数 22226  收藏 展开 编辑距离(Edit Distance ...

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

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

  3. python 编辑距离_最小编辑距离(Levenshtein)的 Python 实现

    一直以为这个算法实现起来的代码量很高,直到最近刷 <Speech and Language Processing>,用动态规划做起来,简单.优雅. 算法原理 字符串 X,Y 的长度分别是 ...

  4. 【转】最小编辑距离 算法原理

    问题 最小编辑距离 Minimum Edit Distance 关于两个字符串s1,s2的差别,可以通过计算他们的最小编辑距离来决定. 设A.B为两个字符串,狭义的编辑距离定义为把A转换成B需要的最少 ...

  5. 最小编辑距离 (MED)实现-Python

    此帖内容是去年9月份自己做的小实验~ 1. 实验目的 最小编辑距离旨在定义两个字符串之间的相似度,定义相似度可以用于拼写纠 错.计算生物学上的序列对比.机器翻译.信息提取和语音识别等. 最小编辑距离就 ...

  6. 递归c语言字符串最小编辑距离,算法设计与分析-编辑距离问题

    一.实践题目 设A和B是2个字符串.要用最少的字符操作将字符串A转换为字符串B.这里所说的字符操作包括 (1)删除一个字符: (2)插入一个字符: (3)将一个字符改为另一个字符. 将字符串A变换为字 ...

  7. 编辑距离及最小编辑距离算法(转)----动态规划

    编辑距离概念描述: 编辑距离,又称Levenshtein距离,是指两个字串之间,由一个转成另一个所需的最少编辑操作次数.许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符. 例如 ...

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

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

  9. C++ edit distances最小编辑距离(附完整源码)

    C++edit distances最小编辑距离 edit distances最小编辑距离算法的完整源码(定义,实现,main函数测试) edit distances最小编辑距离算法的完整源码(定义,实 ...

最新文章

  1. python目标检测与识别_Python 使用Opencv实现目标检测与识别的示例代码
  2. 标准差、方差、协方差的简单说明
  3. EnumMap的用法和源码解析
  4. 逻辑运算和作用域的问题
  5. Hutool 工具类
  6. 有没有轻便又好用的CRM管理应用?
  7. [转载] 初学者python笔记(字符串用法解析)
  8. CodeForces 746D Green and Black Tea 有坑
  9. Fedora 13 咪咕播放器
  10. 踩坑指南!pytorch1.2.0安装!又是猛男落泪的一天!
  11. 20180310华为面试
  12. python seek(0)_seek() 方法
  13. 很好的万年历代码。随时可运行
  14. SQL之 CAST 和 CONVERT
  15. 2022CPA财务成本管理-企业管理专题Corporate Goverance【完结】
  16. Ubuntu 版本 微信
  17. 【分享】免费的国际一级域名和100M支持asp、cgi空间
  18. 使用FME 批量OSGB转FBX(OBJ) (亲测)
  19. 精美免费ppt模板下载-朴尔PPT
  20. php printer.dll扩展,php printer.dll下载

热门文章

  1. 安卓图书馆借阅占座座位app毕业设计
  2. 一个有关占有而非所有的例子——帮人占座或者以物品占座的非正义性
  3. IP通讯名词解释-BLF(Busy Lamp Field)
  4. sku排列算法实现商品规格属性组合
  5. surface pro3深度linux,Surface Pro 3 安装Ubuntu 18.04 体验
  6. 实验三 端口扫描实验
  7. SaaS服务:虽霸主未成,但不乏强者
  8. java接口注释_Java的注释和API文档
  9. 3.每天进步一点点-Python爬虫需要了解HTTP 请求报文
  10. ISCS网络磁盘使用