python字符串模糊匹配 - RapidFuzz

RapidFuzz是一个Python和C++编写的字符串匹配模块,速度快于FuzzyWuzzy,提供多种相似度计算方法。它包括process、distance和fuzz模块,其中process用于字符串列表的比较,distance包含各种距离度量函数,fuzz则提供额外的模糊匹配算法。RapidFuzz适用于需要高效字符串匹配的场景。
摘要由CSDN通过智能技术生成

简介

之前已介绍了字符串模糊匹配的应用以及FuzzyWuzzy包的使用。目前使用较多的是运行速度更快的RapidFuzz,从名字即可看出其特点。RapidFuzz是一个使用python和C++编写的字符串匹配模块,使用了与FuzzyWuzzy相同的字符串相似度计算方法。RapidFuzz与FuzzyWuzzy的主要区别如下:

  • RapidFuzz是MIT licensed,可在任何地方使用,而FuzzyWuzzy需要遵守GPL license;
  • RapidFuzz提供更多字符串相似度计算方式,比如 hamming,jaro_winkler;
  • 大部分使用C++编写,在此基础上有很多算法优化使得匹配速度更快,并且结果一致;
  • 解决了FuzzyWuzzy中partial_ratio 方法的一些bug;

安装:pip install rapidfuzz

RapidFuzz基本使用

使用方法与FuzzyWuzzy 基本一致,有4种常用的相似度计算函数scorer,其运行速度远超FuzzyWuzzy对应函数,如下图所示。同样有process模块用于字符串与列表的比较,且其效率远比单独使用scorers函数逐个比较更快速。

> from rapidfuzz import fuzz,process
> fuzz.ratio("this is a test", "this is a test!")
96.55
> fuzz.partial_ratio("this is a test", "this is a test!")
100.0
> fuzz.token_sort_ratio("fuzzy wuzzy was a bear", "wuzzy fuzzy was a bear")
100.0
> fuzz.token_set_ratio("fuzzy was a bear", "fuzzy fuzzy was a bear")
100.0
> process.extractOne("cowboys", choices, scorer=fuzz.WRatio)
> process.extract("new york jets", choices, scorer=fuzz.WRatio
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值