您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

什么是Python中的简单模糊字符串匹配算法?

什么是Python中的简单模糊字符串匹配算法?

我喜欢德鲁的答案。

如果您要做的只是测试一个字符串中的所有单词是否都与另一个字符串匹配,那就是一个衬里:

if not [word for word in b.split(' ') if word not in a.split(' ')]:
    print 'Match!'

如果您想对它们进行评分而不是对二进制测试进行评分,为什么不这样做:

(((匹配单词的数量)/(大字符串中的单词数量))*((小字符串中的单词数量)/(大字符串中的单词数量))

如果愿意,您可以更轻松地对每个字符串进行模糊匹配。

您可以使用difflib查找最长的匹配项:

>>> a = 'The quick brown fox.'
>>> b = 'The quick brown fox jumped over the lazy dog.'
>>> import difflib
>>> s = difflib.SequenceMatcher(None, a, b)
>>> s.find_longest_match(0,len(a),0,len(b))
Match(a=0, b=0, size=19) # returns NamedTuple (new in v2.6)

或选择一些最小匹配阈值。例:

>>> difflib.SequenceMatcher(None, a, b).ratio()
0.61538461538461542
python 2022/1/1 18:44:41 有295人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶