字符串模糊匹配

来源:互联网 发布:淘宝成功的原因 编辑:程序博客网 时间:2024/06/05 10:55


1, python库(difflib,可以对string,list进行匹配)

import difflibs1 = [ 1, 2, 3, 5, 6, 4 ]s2 = [ 2, 3, 5, 4, 6, 1 ]matcher = difflib.SequenceMatcher(None, s1, s2)print(matcher.ratio())

结果为0.6666666666666666,也就是说按顺序进行模糊匹配,最大可以匹配到的字符个数为4个,4/6=0.6666666666666666


2,python库(Levenshtein,对string进行比对)

pip install  python-Levenshtein


import Levenshteins1="123564"s2="235461"err_ratio= Levenshtein.distance(s1,s2)/len(s1)acc_ratio=1-err_ratioprint(acc_ratio)

输出结果为0.5


3,python (fuzzywuzzy),https://github.com/seatgeek/fuzzywuzzy

pip install fuzzywuzzy

from fuzzywuzzy import fuzzfrom fuzzywuzzy import processs1="123564"s2="235461"fuzz.ratio(s1,s2)

输出结果为67,和difflib效果一样,对字符串比较准确

s1 = [ 1, 2, 3, 5, 6, 4 ]s2 = [ 2, 3, 5, 4, 6, 1 ]fuzz.ratio(s1,s2)

输出结果为78,对list效果变差


原创粉丝点击