欢迎访问我的网站,希望内容对您有用,感兴趣的可以加入我们的社群。

Python实用模块(四十)TheFuzz

实用模块 迷途小书童 2年前 (2023-04-08) 1399次浏览 0个评论

环境

  • python 3.8
  • TheFuzz 0.18.0

简介

TheFuzzPython 中的一个用于字符串模糊匹配的工具,它可以帮助我们在大规模数据中找到相似的字符串。本文将介绍 TheFuzz 库的原理和使用,并给出具体的示例代码。

基本原理

TheFuzz 库基于 Levenshtein 距离(编辑距离)算法实现字符串的相似度计算。Levenshtein 距离是一种衡量两个字符串差异程度的度量方法,它通过计算两个字符串之间的插入、删除、替换操作的次数来衡量它们之间的距离。

TheFuzz 库中,我们可以使用 fuzz.ratio() 函数来计算两个字符串的相似度,它返回一个 0-100 之间的整数,表示两个字符串的相似度百分比。我们还可以使用 fuzz.partial_ratio() 函数来计算两个字符串的部分相似度,它会忽略两个字符串中没有匹配的部分,只计算出现在两个字符串中的相似部分。此外,还有 fuzz.token_sort_ratio()fuzz.token_set_ratio() 函数可以用于计算两个字符串的单词排序相似度和单词集合相似度。

安装与使用

直接通过 pip 工具来安装

pip install fuzzywuzzy python-Levenshtein

安装好后,我们来看几个代码示例

from fuzzywuzzy import fuzz

str1 = "hello world"
str2 = "hello python"

similarity = fuzz.ratio(str1, str2)
print(similarity)

运行结果是61,表示 str1str2 相似度为 61%

TheFuzz

from fuzzywuzzy import fuzz

str1 = "hello world"
str2 = "world hello"

partial_similarity = fuzz.partial_ratio(str1, str2)
print(partial_similarity)

运行上述代码,输出结果为 45,表示两个字符串的部分相似度为45%。

TheFuzz

from fuzzywuzzy import fuzz

str1 = "hello world"
str2 = "world hello"

token_sort_similarity = fuzz.token_sort_ratio(str1, str2)
token_set_similarity = fuzz.token_set_ratio(str1, str2)

print(token_sort_similarity)
print(token_set_similarity)

执行上述代码,输出结果分别为100和100,表示两个字符串的单词排序相似度和单词集合相似度都为100%。

TheFuzz

参考资料

Python实用模块专题

更多有用的 python 模块,请移步

https://xugaoxiang.com/category/python/modules/

喜欢 (0)

您必须 登录 才能发表评论!