字符串相似度

最近在做算法作业,需要比较两个字符串的相似度,并且返回相同的元素所占的百分比。

如果让我自己做的话,思路是把两个字符串分别转化为列表,然后在列表中解决掉。

[python]  view plain  copy
  1. new = [i for i,j in zip(a,b) if i == j]  
  2. ratio = 2.0 * len(new) / (len(a) + len(b))  
去网上一查,发现python自带比较相似度的模块,difflib。比较两个字符串的模块是difflib.SequenceMatcher,使用起来很简单:

[python]  view plain  copy
  1. seq = difflib.SequenceMatcher(None, a, b)  
  2. ratio = seq.ratio()  
最主要的是,python原生的模块的效率都比较好。其中None的位置是一个函数,用来去掉自己不想算在内的元素。比如我想把空格排除在外:

[python]  view plain  copy
  1. seq = difflib.SequenceMatcher(lambda x:x=" ", a, b)  
  2. ratio = seq.ratio()  

这样不用自造轮子了。



http://blog.csdn.net/caimouse/article/details/48598539

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值