求编辑距离

Posted 寻道的 Programmer

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求编辑距离相关的知识,希望对你有一定的参考价值。

定义

编辑距离又称Leveinshtein距离,是由俄罗斯科学家Vladimir Levenshtein在1965年提出。编辑距离是计算两个文本相似度的算法之一,以字符串为例,字符串a和字符串b的编辑距离是将a转换成b的最小操作次数,这里的操作包括三种:

  • 插入一个字符
  • 删除一个字符
  • 替换一个字符

举个例子,kitten和sitting的编辑距离是3,kitten -> sitten(k替换为s) -> sittin(e替换为i) -> sitting(插入g),至少要做3次操作。

实现

leva,b(i,j) 来表示a和b的Leveinshtein距离(i和j分别代表a和b的长度),则:

  1. min(i,j)=0leva,b(i,j)=max(i,j)0
  2. ai=bjleva,b(i,j)=leva,b(i1,j1)xxczxyz=xxcxy
  3. leva,b(i,j)