目录
3.Optimal String Alignment / restricted Damerau-Levenshtein distance
5.Jaro-Winkler distance/similarity
7.最长公共子串距离(Longest Common Substring distance)
引言
距离是一种度量,所以在描述编辑距离时,首先引入度量空间的概念。
所有的距离度量应该符合上述的四个度量公理
编辑距离
1.Levenshtein distance
在信息论和计算机科学中,.Levenshtein distance是一种两个字符串序列的距离度量。形式化地说,两个单词的.Levenshtein distance是一个单词变成另一个单词要求的最少单个字符编辑数量,包含删除、插入和替换三个操作(insertion,deletion,substitution),它满足度量的四个公理。
详见《BINARY CODES CAPABLE OF CORRECTING,DELETIONS,INSERTIONS AND REVERSALS》
例如:abc与ca之间的Levenshtein distance:
结果应该是3(删除b->原字符串开头的a被替换为c->原字符串结尾的c被替换为a)
2.Damerau,F,J distance
与Levenshtein distance相比,除了单个字符的插入、删除和替换之外,增加了交换的操作,允许插入、删除、替换和交换两个相邻字符,它也满足度量的四个公理。
例如:根据.Damerau,F,J distance计算abc与ca之间的编辑距离应该为2(删除b->原字符串首尾的字符a与c交换位置)
3.Optimal String Alignment / restricted Damerau-Levenshtein distance
基本定义与Damerau,F,J distance是一样的,在基本定义基础上限定每个子串只能被编辑一次。
例如,计算'ab',和'bxa'的编辑距离,如果是Damerau,F,J distance,那么距离为2(ab → ba → bxa)
但如果计算.Optimal String Alignment / restricted Damerau-Levenshtein distance&#x