python比较两个字符串相似度,【Python】比较字符串相似度

本文介绍了Python中用于比较字符串相似度的方法,包括difflib模块的SequenceMatcher以及Levenshtein库的多种算法,如编辑距离、Jaro距离和Jaro-Winkler距离。通过示例展示了如何使用这些方法计算两个字符串的相似度。
摘要由CSDN通过智能技术生成

字符串相似度应用场景:拼写纠错、文本去重、上下文相似性、不同来源数据对比等。

评价字符串相似度最常见的办法就是:把一个字符串通过插入、删除或替换这样的编辑操作,变成另外一个字符串,所需要的最少编辑次数,这种就是编辑距离(edit distance)度量方法,也称为Levenshtein距离。

方法1、difflib模块

1 # 优点:python自带模块,效率比较高

2 def similar_diff_ratio(str1, str2):

3 return difflib.SequenceMatcher(None, str1, str2).ratio()

4

5 # quick_ratio()比ratio()计算效率更高,计算结果一致

6 def similar_diff_qk_ratio(str1, str2):

7 return difflib.SequenceMatcher(None, str1, str2).quick_ratio()

8

9 # None参数是一个函数,用来去掉不需要比较的字符。比如,列表lst_str表示计算相似度时不需要比较的字符

10 def similar_diff_ratio_filter(lst_str, str1, str2):

11 return difflib.SequenceMatcher(lambda x: x in lst_str, str1, str2).ratio()

12

13 print(similar_diff_ratio("临安区中小企业创业基地", "临安区电子商务科技园"))

14 print(similar_diff_qk_ratio("临安区中小企业创业

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值