您的位置:首页 > 其它

比较两个字符串的相似度

2014-10-16 12:39 295 查看
最近在做算法作业,需要比较两个字符串的相似度,并且返回相同的元素所占的百分比。

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

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

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

seq = difflib.SequenceMatcher(lambda x:x=" ", a, b)
ratio = seq.ratio()
这样不用自造轮子了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: