易网时代-编程资源站
Welcome
微信登录
编程资源
图片资源库
蚂蚁家优选
PDF转换器
软件资源
软件开发
、
小程序制作
、
系统集成与运维
、
空间租用
、
硬件开发
、
视频监控
、
技术咨询与支持
——联系电话:0311-88999002/88999003
首页
/
操作系统
/
Linux
/
比较两个字符串相似度 Levenshtein_Distance_Percent
//求两个字符串的相似度,返回差别字符数,Levenshtein Distance算法实现
function
Levenshtein_Distance(s,t){
var
n=s.length;
// length of s
var
m=t.length;
// length of t
var
d=[];
// matrix
var
i;
// iterates through s
var
j;
// iterates through t
var
s_i;
// ith character of s
var
t_j;
// jth character of t
var
cost;
// cost
// Step 1
if
(n == 0)
return
m;
if
(m == 0)
return
n;
// Step 2
for
(i = 0; i <= n; i++) {
d[i]=[];
d[i][0] = i;
}
for
(j = 0; j <= m; j++) {
d[0][j] = j;
}
// Step 3
for
(i = 1; i <= n; i++) {
s_i = s.charAt (i - 1);
// Step 4
for
(j = 1; j <= m; j++) {
t_j = t.charAt (j - 1);
// Step 5
if
(s_i == t_j) {
cost = 0;
}
else
{
cost = 1;
}
// Step 6
d[i][j] = Minimum (d[i-1][j]+1, d[i][j-1]+1, d[i-1][j-1] + cost);
}
}
// Step 7
return
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
收藏该网址
版权所有©石家庄振强科技有限公司2024
冀ICP备08103738号-5
网站地图