news 2026/7/26 22:27:33

编辑距离(Levenshtein Distance)如何计算?它的主要应用是什么?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
编辑距离(Levenshtein Distance)如何计算?它的主要应用是什么?

编辑距离(Levenshtein Distance)

一、定义

编辑距离是指将一个字符串变换为另一个字符串所需的最少单字符编辑操作次数。允许的三种操作:

操作含义示例(s→t)
插入(Insertion)在 s 中插入一个字符“kitten” → “kittens”(插入 ‘s’)
删除(Deletion)从 s 中删除一个字符“kitten” → “kittn”(删除 ‘e’)
替换(Substitution)将 s 中一个字符替换为另一个字符“kitten” → “kitten”(‘k’→’s’,得 “sitten”)

每次操作代价为 1。距离越小,两字符串越相似。

二、动态规划计算

状态定义

dp[i][j]= 将s[0..i-1](前 i 个字符)变换为t[0..j-1](前 j 个字符)的最小编辑次数。

状态转移方程

若 s[i-1] == t[j-1]: dp[i][j] = dp[i-1][j-1] # 字符相同,无需操作 否则: dp[i][j] = 1 + min( dp[i-1][j], # 删除 s[i-1] dp[i][j-1], # 插入 t[j-1] dp[i-1][j-1] # 替换 s[i-1] 为 t[j-1] )

边界条件

dp[i][0] = i # s 的前 i 个字符全部删除变为空串 dp[0][j] = j # 空串插入 j 个字符变为 t 的前 j 个字符

计算示例:s = “kitten”, t = “sitting”

填充 DP 表(行= s,列= t):

"" s i t t i n g "" 0 1 2 3 4 5 6 7 k 1 1 2 3 4 5 6 7 i 2 2 1 2 3 4 5 6 t 3 3 2 1 2 3 4 5 t 4 4 3 2 1 2 3 4 e 5 5 4 3 2 2 3 4 n 6 6 5 4 3 3 2 3

dp[6][7] = 3,即 “kitten” → “sitting” 的编辑距离为3

操作路径

kitten → sitten (替换 k→s) sitten → sittin (替换 e→i) sittin → sitting (插入 g)

复杂度

  • 时间:O(m·n)(m、n 为两串长度)
  • 空间:O(m·n),可优化为O(min(m,n))(滚动数组)

三、主要应用

1. 拼写纠错 / 输入纠错

计算用户输入与词典中候选词的编辑距离,取距离最小的作为纠正建议。

用户输入:"recive" 词典候选:receive(d=2)、recite(d=3)、recipe(d=3) → 推荐 "receive"

2. 模糊字符串匹配 / 搜索

  • 数据库脏数据清洗:合并同一实体的不同写法(“北京天安门” vs “天安门北京”)
  • 搜索引擎容错查询:用户输错一两个字符仍能命中

3. 生物信息学:DNA/蛋白质序列比对

编辑距离是序列对齐的基础,用于衡量基因序列相似度(替换/插入/删除对应突变/缺失/插入)。扩展为 Needleman-Wunsch、Smith-Waterman 等带权对齐算法。

4. 自然语言处理

  • 词形归并:比较词干相似度
  • OCR 纠错:识别结果与候选词对比
  • 机器翻译评估:早期 MT 评价指标 WER(Word Error Rate)本质是词级编辑距离

5. 数据去重 / 实体匹配

记录链接场景中,比较姓名、地址等字段的相似度,判断是否为同一实体。

6. 语音识别评估

字错率(CER)/ 词错率(WER)= 编辑距离 / 参考文本长度,是语音识别的标准评测指标。

四、常见变体

变体说明
Damerau-Levenshtein额外允许相邻字符交换(transposition),更贴合键盘输入错误
加权编辑距离不同操作赋予不同代价(如替换代价 2,插入/删除代价 1)
Jaro-Winkler强调前缀匹配,适合人名/短字符串相似度
最长公共子序列(LCS)仅允许插入/删除,无替换,等价于一种特殊编辑距离

五、一句话总结

编辑距离通过动态规划计算两字符串间最少单字符编辑操作数,时间复杂度O(m·n);其核心价值是提供一种字符级相似度度量,广泛应用于拼写纠错、模糊匹配、序列比对、OCR/ASR 评测等需要"容错比较"的场景。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/26 22:26:11

AI移动端UI设计避坑指南(2024年iOS/Android双平台实测失效模式全曝光)

更多请点击: https://intelliparadigm.com 第一章:AI移动端UI设计的核心挑战与演进趋势 AI驱动的移动端UI正从“响应式界面”加速迈向“感知式交互”,其设计范式面临性能、隐私、语义理解与跨设备协同的多重张力。在资源受限的终端侧&#x…

作者头像 李华
网站建设 2026/7/26 22:26:03

仅限内部流出:某顶级AI研究院创意题测试题库逆向分析报告(含3类稀缺性干扰项识别图谱)

更多请点击: https://intelliparadigm.com 第一章:AI模型创意题测试的底层逻辑与范式演进 AI模型创意题测试并非简单评估生成结果的“新颖性”或“趣味性”,其本质是检验模型在约束条件下的概念重组能力、跨域映射精度与语义一致性维持水平…

作者头像 李华
网站建设 2026/7/26 22:23:04

DDPG算法在无人机三维路径规划中的实践与优化

1. 项目背景与核心价值无人机三维路径规划一直是自动化控制领域的热点问题。传统方法如A*算法、RRT算法在静态环境中表现尚可,但面对动态障碍物或复杂环境时往往力不从心。深度确定性策略梯度(DDPG)作为深度强化学习中的明星算法,…

作者头像 李华
网站建设 2026/7/26 22:22:01

SimpleRemote vs 传统工具:为什么这款远程管理软件更值得选择?

SimpleRemote vs 传统工具:为什么这款远程管理软件更值得选择? 【免费下载链接】SimpleRemote Remote Administration Tools 项目地址: https://gitcode.com/gh_mirrors/si/SimpleRemote 在数字化时代,远程管理工具已成为IT运维和系统…

作者头像 李华
网站建设 2026/7/26 22:16:58

Node-Steam-Guide入门教程:必备开发环境搭建与配置详解

Node-Steam-Guide入门教程:必备开发环境搭建与配置详解 【免费下载链接】node-steam-guide A guide to creating Steam bots and websites using Node.js 项目地址: https://gitcode.com/gh_mirrors/no/node-steam-guide Node-Steam-Guide是一个使用Node.js创…

作者头像 李华
网站建设 2026/7/26 22:16:13

qemu的外部快照实现原理

Qemu的外部快照实现原理 引言Qemu(Quick Emulator)作为一款功能强大的虚拟机监控器(VMM),在虚拟化技术中扮演着核心角色。在系统运维和测试场景中,快照功能是保障数据安全、实现快速回滚的关键手段。Qemu支…

作者头像 李华