比较两个字符串的相似度
2018-02-27 14:35 ET.frog 阅读(7431) 评论(0) 编辑 收藏 举报关于多个文本字符串的去重, 需要比较两个字符串的相似度
两个字符串相似度的比较,return 0-1
``` function string_same(str1, str2){ //计算两个字符串的长度。 var len1 = str1.length, len2 = str2.length, dif = [],//建立上面说的数组,比字符长度大一个空间 temp,i,j,a; //赋初值,步骤B for (a = 0; a <= len1; a++) { dif[a] = []; dif[a][0] = a; } for (a = 0; a <= len2; a++) { dif[0][a] = a; } //计算两个字符是否一样,计算左上的值 //var temp; for (i = 1; i <= len1; i++) { for (j = 1; j <= len2; j++) { if (str1[i - 1] == str2[j - 1]) { temp = 0; } else { temp = 1; } dif[i][j] = Math.min(dif[i - 1][j - 1] + temp,dif[i][j - 1] + 1,dif[i - 1][j] + 1); } } //console.log("差异步骤:" + dif[len1][len2]); //计算相似度 //var similarity = 1 - dif[len1][len2] / Math.max(str1.length, str2.length); return 1 - dif[len1][len2] / Math.max(len1, len2); } ```两个字符串相似度的比较,比较过程中包含标点,位置,长度。返回一个小数为两个字符串的相似度。
作者:KeerDi —— ET.frog
出处:http://www.cnblogs.com/frogblog/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。