算法说明如下: string1 长度为 i=3 ; string2 长度为 j=4; 建立矩阵 D[i+1,j+1]=D[4,5] 。
1. 赋值 D[0,0]=0; D[0,1]=1; D[0,2]=2; D[0,3]=3; D[0,4]=4; D[1,0]=1; D[2,0]=2; D[3,0]=3 。
| 0 | 1 | 2 | 3 |
0 | 0 | 1 | 2 | 3 |
1 | 1 |
|
|
|
2 | 2 |
|
|
|
3 | 3 |
|
|
|
4 | 4 |
|
|
|
2 .设置 string1=abc;string2=defg; 比对 a 与 b 。
? = (?上面的值 +1 ),(?左边的值 +1 ),(对角的值 +a 与 b 的比对值,同为 0 ,不同为 1 )三值中的最小值。一次类推,得到的 End 值为两词之间的差距。
|
| a | b | c |
| 0 | 1 | 2 | 3 |
d | 1 | ? |
|
|
e | 2 |
|
|
|
f | 3 |
|
|
|
g | 4 |
|
| End |
3 .比如,比对黄花鱼与黄花菜
|
| 黄 | 花 | 鱼 |
| 0 | 1 | 2 | 3 |
黄 | 1 | Min(2,2,0) 0 | Min(3,1,2) 1 | Min(4,2,3) 2 |
花 | 2 | Min(1,3,2) 1 | Min(2,2,0) 0 | Min(3,1,2) 1 |
菜 | 3 | Min(2,4,3) 2 | Min(1,3,2) 1 | Min(2,2,1) 1 |
两词之间的差距为 1
4 .比如,比对猪蹄汤与海鲜汤
|
| 猪 | 蹄 | 汤 |
| 0 | 1 | 2 | 3 |
海 | 1 | 1 | 2 | 3 |
鲜 | 2 | 2 | 2 | 3 |
汤 | 3 | 3 | 3 | 2 |
两词之间的差距为 2
5 .比如,比对上汤料与海鲜汤
|
| 上 | 汤 | 料 |
| 0 | 1 | 2 | 3 |
海 | 1 | 1 | 2 | 3 |
鲜 | 2 | 2 | 2 | 3 |
汤 | 3 | 3 | 2 | 3 |
两词之间的差距为 3 ,也就是讲没有相似度。