Rapidfuzz,一个高效的 Python 模糊匹配神器

news2024/11/20 7:12:44

目录

01初识 Rapidfuzz                      

什么是 Rapidfuzz?

为什么选择 Rapidfuzz?

安装 Rapidfuzz

配置 Rapidfuzz

02基本操作

简单比率计算

03高级功能                                 

查找单个最佳匹配

查找多个最佳匹配

使用阈值优化性能

04实战案例

文本自动纠错

客户信息匹配

产品推荐系统

05高级应用

自定义相似度度量

多字段匹配

06结语                                       



01初识 Rapidfuzz                      

什么是 Rapidfuzz?

  Rapidfuzz 是一个用于模糊字符串匹配的 Python 库,它基于 Levenshtein 距离和其他相似度度量方法,能够高效地进行字符串比较和匹配。Rapidfuzz 的目标是提供一个快速、准确、易用的模糊匹配工具。

   Rapidfuzz 是为了满足现代数据处理中对于字符串匹配速度和准确性的双重需求而生的。当我们提到字符串匹配,可能脑海中首先浮现的是正则表达式或者是传统的字符串比对方法。然而,这些方法在处理模糊匹配上显得力不从心。
          在模糊匹配的王国里,Levenshtein 和fuzzywuzzy 曾称霸一方,但是随着 Rapidfuzz 的出现,它们的宝座开始摇摇欲坠。
  Rapidfuzz 以其背后的 C++强力驱动,其执行效率大大超越了它的前辈们。它不仅速度更快,性能更优,而且依赖更少,为开发者节约了大量的时间与精力。

为什么选择 Rapidfuzz?

  • 高效快速:Rapidfuzz 比 FuzzyWuzzy 更快,能够处理大规模文本数据。

  • 精准匹配:提供多种相似度度量方法,确保匹配的准确性。

  • 易于使用:简单直观的 API,让你轻松上手。

  • 丰富的功能:支持字符串相似度计算、部分匹配、排序等多种功能。

安装 Rapidfuzz

安装 Rapidfuzz 非常简单,只需要一行命令:

pip install rapidfuzz

配置 Rapidfuzz

Rapidfuzz 不需要额外配置,安装完成后即可使用。在你的 Python 脚本中导入 Rapidfuzz 库即可:

from rapidfuzz import fuzz

Github 项目地址:

https://github.com/rapidfuzz/RapidFuzz

02基本操作

字符串相似度计算

Rapidfuzz 提供了多种相似度度量方法,包括简单的比率计算和部分匹配。让我们先来看几个例子:

简单比率计算
from rapidfuzz import fuzz

# 计算两个字符串的相似度
ratio = fuzz.ratio("hello world", "hello world!")
print(f"相似度: {ratio}%")  # 输出: 相似度: 96.7741935483871%

部分匹配

from rapidfuzz import fuzz

# 计算两个字符串的部分匹配相似度
partial_ratio = fuzz.partial_ratio("hello world", "world")
print(f"部分匹配相似度: {partial_ratio}%")  # 输出: 部分匹配相似度: 100.0%

Token 比率计算

from rapidfuzz import fuzz

# 计算两个字符串的 Token 比率
token_sort_ratio = fuzz.token_sort_ratio("hello world", "world hello")
print(f"Token 比率: {token_sort_ratio}%")  # 输出: Token 比率: 100.0%

03高级功能                                 

最佳匹配查找

在处理大规模文本数据时,我们常常

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1838176.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

TikTok电商带货指南:策略、技巧与流量获取全解析

随着短视频平台的迅猛发展,TikTok已成为品牌和个人进行带货营销的主要阵地之一。通过有创意的内容、有效的互动方式和精准的流量获取策略,品牌和个人都能在TikTok上取得显著的带货效果。本文Nox聚星将和大家探讨在TikTok上进行带货营销的有效策略和技巧&…

搜维尔科技:SenseGlove虚拟训练、VR/AR 模拟和研究中的触觉反馈

训练 传统培训成本高昂且风险大,需要重复资产或停产。在培训中使用虚拟现实可以轻松解决这些问题。借助 SenseGlove,终于可以研究和评估与传统培训效果相同的虚拟培训技术。体验低成本的定制 VR 培训,同时保留现实世界的肌肉记忆和记忆力。 …

【STM32】使用标准库检测按键

按键检测使用到GPIO外设的基本输入功能。 1.硬件设计 作者使用的硬件没有按键模块。故使用了一个引脚模拟按键,将PWM1引脚拉低表示按键按下。思路如下:PWM1配置为输入,默认拉高,PWM1手动接地来模拟按下按键,此时PWM&a…

深度学习在岩土工程应用及PFC离散元数值模拟应用

在深度学习与岩土工程融合的背景下,科研的边界持续扩展,创新成果不断涌现。从基本物理模型的构建到岩土工程问题的复杂模拟,从数据驱动的分析到工程问题的智能解决,深度学习正以前所未有的动力推动岩土工程领域的革新。据调查&…

EE trade:现货黄金的计量单位及转换

在现货黄金市场中,计量单位的不同会影响投资者对价格的理解和对交易的操作。因此,了解现货黄金的计量单位是每一位投资者的必修课。对于那些刚刚踏入黄金投资的新手们来说,掌握这些知识尤为重要。本文将为您详细介绍现货黄金的主要计量单位及…

Nginx Rewrite技术

一:理解地址重写 与 地址转发的含义。二:理解 Rewrite指令 使用三:理解if指令四:理解防盗链及nginx配置 简介:Rewrite是Nginx服务器提供的一个重要的功能,它可以实现URL重定向功能。 一:理解地…

抖音短剧看剧系统是怎么做的?怎么样搭建上线运营?

前言: 当前热门短剧已深入大家的日常,针对一些好的短剧更是吸金无数。今天给大家介绍一下短剧这个项目整个运作模式。 一、一部短剧是怎么样呈现到观众眼前的? 首先影视作品公司拍摄剪辑好短剧 ,弄好一切审核后,放到…

【Python】类和对象的深入解析

目录 前言 什么是类? 定义一个类 创建对象 访问和修改属性 方法 类的继承 多态 封装 特殊方法 属性装饰器 总结 前言 Python 是一种面向对象的编程语言,它允许程序员通过类和对象来组织和管理代码。面向对象编程(OOP&#xff09…

【数据结构与算法】最小生成树

文章目录 最小生成树(MST)定义 构造最小生成树Prim算法Kruskal算法 最小生成树(MST) 连通图的生成树包含图的所有顶点,并且只含有尽可能少的边。对于生成树来说,若砍去它的一条边,则会使生成树…

Linux中的文本编辑器vi与vim

摘要: 本文将深入探讨VI和VIM编辑器的基本概念、特点、使用方法以及它们在Linux环境中的重要性。通过对这两款强大的文本编辑器的详细分析,读者将能够更全面地理解它们的功能,并掌握如何有效地使用它们进行日常的文本编辑和处理任务。 引言&…

智慧之选:Vatee万腾平台,引领未来的创新引擎

在数字化浪潮席卷全球的今天,我们身处一个信息爆炸、技术革新的时代。在这样的大背景下,选择一个能够引领我们走向未来的平台显得尤为重要。而Vatee万腾平台,正是这样一个不容错过的智慧之选。 Vatee万腾平台,作为一个集创新、科技…

yolov8图像分割训练

1.背景 最近在做一个AI项目,需要用到yolov8的实例分割功能来确定一个不规则区域,从而找出不规则区域的坐标完成大致定位,以前有用过yolov8的目标检测功能,实际上yolov8的分割功能和检测功能大同小异。本博客将仔细分享使用yolov8图…

【C++提高编程-10】----C++ STL常用拷贝和替换算法

🎩 欢迎来到技术探索的奇幻世界👨‍💻 📜 个人主页:一伦明悦-CSDN博客 ✍🏻 作者简介: C软件开发、Python机器学习爱好者 🗣️ 互动与支持:💬评论 &…

Intelij IDEA中Mapper.xml无法构建到资源目录的问题

问题场景: 在尝试把原本在eclipse上的Java Web项目转移至Intelij idea上时,在配置文件均与eclipse一致的情况下出现了如下报错: org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): cn.umbrella.crm_core.…

Ubuntu网络管理命令:route

安装Ubuntu桌面系统(虚拟机)_虚拟机安装ubuntu桌面版-CSDN博客 route命令与ifconfig命令都在net-tools软件包中,是一个传统的Linux路由管理命令。通过route命令可以显示和管理路由表。route命令的基本语法如下: route [options]…

尚硅谷爬虫学习第一天(3) 请求对象定制

#url的组成 #协议 http,https,一个安全,一个不安全。 #主机, 端口号 学过java 的肯定知道 沃日,以前面试运维的时候,问到主机地址,我懵逼了下,回了个8080 # 主机地址 80 # …

[Redis]持久化机制

众所周知,Redis是内存数据库,也就是把数据存在内存上,读写速度很快,但是,内存的数据容易丢失,为了数据的持久性,还得把数据存储到硬盘上 也就是说,内存有一份数据,硬盘也…

python是TIOBE编程语言排名第一的编程语言,它有什么优点?它的使用场景有哪些?用python打印数字1--100,用python打印九九乘法表怎么写?

Python是TIOBE编程语言排行榜排名第一的编程语言 。 python是一种解释性、交互式、面向对象的跨平台的语言。 python设计者及名称由来 Guido van Rossum 荷兰人---吉多范罗苏姆,是 Python 编程语言的最初设计者,在 Python 社区一直担当终身仁慈独裁者&…

【权威出版/投稿优惠】2024年水利水电与能源环境科学国际会议(WRHEES 2024)

2024 International Conference on Water Resources, Hydropower, Energy and Environmental Science 2024年水利水电与能源环境科学国际会议 【会议信息】 会议简称:WRHEES 2024 大会时间:点击查看 截稿时间:点击查看 大会地点:…

聊一聊大模型应用落地那些事

大模型并不神奇 很多人听到"大模型"这个词可能会觉得很神秘,其实,LLM 就是神经网络,只是很大的神经网络,相对传统神经网络,大就是它的特点。我们用一个压缩算法的简单例子来帮助理解这个巨大的神经网络。 …