树上小屋

这是一个将艺术和工程融为一体的活计.

导航

字符串相似度算法:Levenshtein Distance

please read it first: http://www.merriampark.com/ld.htm

LD算法用来得到两个字符串的差距,比如CAT和KATE的距离是2.
LD算法可以看作动态规划. 它的思路就是从两个字符串的左边开始比较,记录已经比较过的子串相似度(实际上叫做距离),然后进一步得到下一个字符位置时的相似度. 用文章里的例子: GUMBO和GAMBOL. 当算到矩阵D[3,3]位置时,也就是当比较到GUM和GAM时,要从已经比较过的3对子串GU-GAM, GUM-GA和GU-GA之中选一个差别最小的来当它的值. 所以要从左上到右下构造矩阵.

LD和前面的向量法都只是单纯地字符比较,而另一种情况:123456和abcdef也可以说相似,又或者从语义,上下文来看,不同的词其实是一样的意思. so有人说相似度的定义比算法设计重要的多.

posted on 2006-12-24 15:35  euclid  阅读(3218)  评论(5编辑  收藏  举报