运行环境:Matlab
单纯的计算字符串的相似度,并没有计算词性,如TF-IDF之类的;代码如下:
%计算字符串相似度
%一个source字符串通过插入、删除、替换而变成target字符串的操作次数越少,则两个字符串越相近。
function strsim = mystrsim(target,source) %X为字符串
len1=length(source);
len2=length(target);
d=zeros(len1+1,len2+1);
for i=2:length(source)+1
d(i,1)= i;
end
for j=2:length(target)+1
d(1,j)= j;
end
for i =2:length(source)+1
for j = 2:length(target)+1
if source(i - 1) == target(j - 1)
d(i,j) = d(i-1,j-1); %不需要编辑操作
else
edIns = d(i,j-1)+1; %source 插入字符
edDel = d(i-1,j)+1; %source 删除字符
edRep = d(i-1,j-1)+1; %source 替换字符
d(i,j)= min(min(edIns, edDel),edRep);
end
end
end
y=d(length(