详解编辑距离

本文详细介绍了编辑距离的概念,包括其定义、性质和算法实现。编辑距离衡量的是将一个字符串转换为另一个字符串所需的最少字符操作数,涉及删除、插入和替换操作。文章提到编辑距离与最长公共子序列、汉明距离的关系,并讨论了Damerau-Levenshtein距离作为扩展,包含了置换操作。此外,还阐述了编辑距离的动态规划解决方案及其递推公式。
摘要由CSDN通过智能技术生成

1. 编辑距离定义
       今天我们来研究一个有趣的算法题,叫做字符串编辑距离。编辑距离研究的问题和最长公共子序列有相似之处,都是比较两个字符串之间的相似性,只是采用的标准不太相同。

       先给出编辑距离的定义:设A和B是2个字符串,要用最少的字符操作将字符串A转换为字符串B。这里所说的字符操作包括:

       (1)删除一个字符(delete);

       (2)插入一个字符(insert);

       (3)将一个字符改为另一个字符(substitute)。

       将字符串A变换为字符串B所用的最少字符操作数称为字符串A到B的编辑距离(edit distance)。通常情况下,三种操作的代价是一样的,也即每种字符操作都会导致一次变换,这也符合我们平常的认知。但是,有时也可以对这三种操作施加不同的影响因子,使算法倾向于某种变换,可以通过修改三种操作的代价来实现。

       事实上,也可以包含更多的字符操作。例如,在英文输入的过程中经常会出现不小心交换两个字符的问题(trueàture),所以可以增加一个新的操作—置换(transposition),表示互换相邻的两个字符,此时编辑距离升级为Damerau–Levenshteindistance距离,它包含插入、删除、替换和置换四种操作。在OCR应用中还存在其他操作:将两个字符合并(merge)成一个或者将一个字符展开(split)成两个。当然,也可以减少字符操作,例如求两个等长字符串的汉明距离只用到了替换操作;还有,在求最长公共子序列(LCS)的问题中

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值