算法说明如下: 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 ,也就是讲没有相似度。