ZH
我的工具

莱文斯坦距离计算器(编辑距离)

计算两个字符串的莱文斯坦编辑距离和相似度,支持相邻字符互换(Damerau)、编辑列表、DP 表,并可对列表中的候选项按相似度排序。

莱文斯坦距离
2
相似度
50%
1 − 2 ÷ 4
第一个 / 第二个的长度
4 / 4 个字符
编辑

字符按 Unicode 码点比较,因此一个 emoji 或一个韩文音节都算作一个字符。

把第一个字符串变成第二个的编辑(位置以第一个字符串为准)
#编辑位置原内容新内容
1替换1北清
2替换2京华
动态规划表(单元格 = 两个前缀之间的距离)
ε清华大学
ε01234
北11234
京22234
大33323
学44432
我的工具 →
广告

莱文斯坦距离是把一个字符串变成另一个字符串所需的单字符插入、删除和替换的最少次数——拼写建议、模糊搜索、重复检测和 DNA 比对背后用的都是这个度量。这个计算器会给出距离和相似度百分比,列出具体的编辑,为较短的字符串展示动态规划表,还可以按与你的字符串的接近程度,对整个候选列表排序。

使用方法

  1. 输入两个字符串(或一个字符串和一个列表,每行一个候选项)。
  2. 选择普通莱文斯坦,或选择 Damerau,把相邻字符互换算作一次编辑。
  3. 可选:忽略大小写和空白,或按单词比较。
  4. 查看距离、相似度和编辑内容;字符串不超过 20 个字符时会显示表格。

计算公式

d[i][j] = min(d[i−1][j] + 1, d[i][j−1] + 1, d[i−1][j−1] + (aᵢ ≠ bⱼ)) · 相似度 = 1 − d ÷ max(|a|, |b|)

d[i][j] 是 a 的前 i 个字符与 b 的前 j 个字符之间的距离,从 d[i][0] = i 和 d[0][j] = j 开始。相邻互换(最优字符串对齐)变体在相邻两个字符互换时增加 d[i−2][j−2] + 1,但不会对同一子串编辑两次;无限制的 Damerau–莱文斯坦距离取消了这一限制(CA → ABC 是 2 而不是 3)。字符按 Unicode 码点计算,单词以空白分隔。

示例

北京大学 → 清华大学 = 2:把“北”替换为“清”,把“京”替换为“华”。两个字符串都是 4 个字符,所以相似度是 1 − 2/4 = 50%。上海 → 上海市 的距离是 1(插入“市”)。以北京大学为基准,对列表北京大学生、清华大学、北京交通大学、南京大学排序,距离为 1 的北京大学生排第一。

常见问题

莱文斯坦和 Damerau–莱文斯坦有什么区别?

Damerau 还把相邻两个字符互换(teh → the)算作一次编辑,更符合常见的打字错误;普通莱文斯坦则需要两次替换。

相似度是标准度量吗?

1 − 距离 ÷ 较长长度是常用的归一化方式,但也有其他方式(例如除以两者长度之和)。比较分数时请使用同一种方式。

字符串最长可以多长?

每个最多几千个字符;计算量随两个长度的乘积增长。分步表格仅在字符串不超过 20 个字符时显示。

资料来源

最后更新:

引用此工具
APA

kakaoCalc. (2026, November 8). 莱文斯坦距离计算器(编辑距离). https://kakao.mobile/zh/tools/levenshtein-distance-tool/

MLA

“莱文斯坦距离计算器(编辑距离).” kakaoCalc, 8 Nov. 2026, kakao.mobile/zh/tools/levenshtein-distance-tool/.

广告