比较两个字符串相似度 Levenshtein_Distance_Percent

来源:互联网 发布:少女心爆棚的电影 知乎 编辑:程序博客网 时间:2024/05/21 06:36
//求两个字符串的相似度,返回差别字符数,Levenshtein Distance算法实现function Levenshtein_Distance(s,t){var n=s.length;// length of svar m=t.length;// length of tvar d=[];// matrixvar i;// iterates through svar j;// iterates through tvar s_i;// ith character of svar t_j;// jth character of tvar cost;// cost// Step 1if (n == 0) return m;if (m == 0) return n;// Step 2for (i = 0; i <= n; i++) {d[i]=[];d[i][0] = i;}for (j = 0; j <= m; j++) {d[0][j] = j;}// Step 3for (i = 1; i <= n; i++) {s_i = s.charAt (i - 1);// Step 4for (j = 1; j <= m; j++) {t_j = t.charAt (j - 1);// Step 5if (s_i == t_j) {cost = 0;}else{cost = 1;}// Step 6d[i][j] = Minimum (d[i-1][j]+1, d[i][j-1]+1, d[i-1][j-1] + cost);}}// Step 7return d[n][m];}//求两个字符串的相似度,返回相似度百分比function Levenshtein_Distance_Percent(s,t){var l=s.length>t.length?s.length:t.length;var d=Levenshtein_Distance(s,t);return (1-d/l).toFixed(4);}//求三个数字中的最小值function Minimum(a,b,c){return a
原创粉丝点击