FuzzyWuzzy是一个Python库,用于模糊字符串匹配和字符串相似度计算。它基于Levenshtein距离算法,用于比较两个字符串之间的差异。
下面是FuzzyWuzzy库的一些常见用法:
-
导入库和模块:
from fuzzywuzzy import fuzz from fuzzywuzzy import process
-
使用
fuzz.ratio
计算两个字符串之间的相似度:similarity = fuzz.ratio("apple", "aple")
这会计算出两个字符串之间的相似度百分比。
-
使用
fuzz.partial_ratio
计算两个部分字符串之间的相似度:similarity = fuzz.partial_ratio("apple", "aple")
这会计算出两个字符串的部分字符串之间的相似度。
-
使用
fuzz.token_sort_ratio
计算排序后的字符串之间的相似度:similarity = fuzz.token_sort_ratio("apple pie", "pie apple")
这会计算出对两个字符串进行排序后的相似度。
-
使用
fuzz.token_set_ratio
计算集合中的字符串之间的相似度:similarity = fuzz.token_set_ratio("apple pie is delicious", "delicious apple is pie")
这会计算出集合中的字符串之间的相似度。
-
使用
process.extract
函数获取一个字符串与一组候选字符串的相似度最高的匹配项:choices = ["apple", "banana", "orange"] best_match = process.extractOne("aple", choices) print(best_match)
输出结果为:
('apple', 90)
,表示"aple"与"apple"的相似度为90。 -
使用
process.extract
函数获取一个字符串与一组候选字符串所有可能匹配项的相似度列表:choices = ["apple", "banana", "orange"] matches = process.extract("aple", choices) print(matches)
输出结果为:
[('apple', 90), ('banana', 29), ('orange', 22)]
,表示"aple"与每个候选字符串的相似度。 -
使用
fuzz.WRatio
计算两个字符串之间的相似度,它对字符串的字符大小写不敏感:similarity = fuzz.WRatio("apple", "aPpLe") print(similarity)
输出结果为:
100
,表示"apple"与"aPpLe"的相似度为100。 -
使用
fuzz.partial_token_sort_ratio
计算排序后的部分字符串之间的相似度:similarity = fuzz.partial_token_sort_ratio("apple pie", "pie is delicious") print(similarity)
输出结果为:
67
,表示排序后的"apple pie"与"pie is delicious"的部分字符串之间的相似度为67。