字符串相似度应用场景:拼写纠错、文本去重、上下文相似性、不同来源数据对比等。
评价字符串相似度最常见的办法就是:把一个字符串通过插入、删除或替换这样的编辑操作,变成另外一个字符串,所需要的最少编辑次数,这种就是编辑距离(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("临安区中小企业创业