Matlab计算字符串相似度

本文介绍了在Matlab环境下如何计算字符串的相似度,虽然不涉及语义分析如TF-IDF,但可用于特定场景。例如,当某地段楼价数据不全时,可以通过寻找相似地段(如车陂北街等)的楼价来估算目标地段的价格。
摘要由CSDN通过智能技术生成

运行环境: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(
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值