比较两个字符串的相似度
最近在做算法作业,需要比较两个字符串的相似度,并且返回相同的元素所占的百分比。
如果让我自己做的话,思路是把两个字符串分别转化为列表,然后在列表中解决掉。
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()这样不用自造轮子了。
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: 中文短句子相似度比较(PHP版本UTF8)
- 下一篇: fstream获得文件大小