Python3中使用FuzzyWuzzy进行字符串模糊匹配与提取

Cora
Cora
发布时间:2026-10-11| 3人浏览过
原创

本文介绍如何在Python3环境中使用FuzzyWuzzy库进行字符串模糊匹配。通过安装fuzzywuzzy及python-Levenshtein依赖,利用fuzz模块计算字符串相似度(如ratio方法),并使用process模块从候选列表中提取最相关的字符串,适用于数据清洗和模糊搜索场景。

环境准备与安装

FuzzyWuzzy 是一个用于模糊字符串匹配的 Python 库,其核心依赖于 Levenshtein 距离算法。为了获得最佳的性能表现,建议在安装 FuzzyWuzzy 的同时安装其 C 语言加速库 python-Levenshtein。

首先,确保你的开发环境已安装 Python 3。接着,通过 pip 工具执行以下命令安装必要的依赖包:

pip install fuzzywuzzy

该命令会自动处理基础库的安装。若需启用高性能模式,建议单独安装 python-Levenshtein(通常包含在依赖中或需显式指定)。

计算字符串相似度

安装完成后,可以通过导入 fuzz 模块来使用核心的相似度计算功能。FuzzyWuzzy 提供了多种算法,其中最常用的是 ratio 方法,它返回两个字符串之间的相似度百分比(0-100)。

以下示例展示了如何计算两个略有差异的字符串之间的相似度:

from fuzzywuzzy import fuzz

# 计算两个字符串的相似度
score = fuzz.ratio("Let's do a simple test", "Let us do a simple test")
print(score)  # 输出结果通常为 93,表示两者有 93% 的相似性

在此示例中,尽管两个字符串在缩写和空格上存在细微差别,算法仍能识别出它们的高度相似性,返回值为 93。

从列表中提取最相关字符串

除了计算两个字符串的相似度,FuzzyWuzzy 还常用于在大量候选数据中查找与目标字符串最匹配的一项。这可以通过 process 模块中的 extract 方法实现。

假设我们有一个包含多个数据项的列表,希望从中找出与用户输入最接近的匹配项。具体操作如下:

from fuzzywuzzy import process

# 定义候选字符串列表
choices = [
    "Data Visualisation",
    "DataVisualization",
    "Customised Behaviours",
    "CustomizedBehaviors"
]

# 提取相似度最高的前2个结果
result1 = process.extract("data visulisation", choices, limit=2)
result2 = process.extract("custom behaviour", choices, limit=2)

print(result1)
print(result2)

在上述代码中:

  • choices 定义了待匹配的候选字符串集合。
  • process.extract 接收目标字符串、候选列表以及返回结果的数量限制(limit)。
  • 该方法会返回一个元组列表,每个元组包含匹配的字符串及其相似度分数。

例如,当输入 "data visulisation" 时,算法会忽略大小写和拼写差异,从列表中筛选出相似度最高的前两项。同理,"custom behaviour" 也会匹配到对应的变体字符串。

总结

FuzzyWuzzy 为 Python 开发者提供了一种简单而强大的工具,用于处理非精确的字符串匹配问题。通过结合 fuzz.ratio 进行点对点相似度评估,以及 process.extract 进行批量数据清洗与匹配,可以有效解决数据标准化、搜索推荐等场景下的模糊匹配需求。确保安装 python-Levenshtein 以获得更高效的计算速度。

以上就是Python3中FuzzyWuzzy库实例用法的详细内容,更多关于Python模糊匹配的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。