【Python】模糊匹配搜索

本文介绍了Python中的模糊匹配,主要涉及fuzzywuzzy库和difflib模块。fuzzywuzzy库提供了ratio(), partial_ratio(), token_set_ratio()等方法进行不同级别的模糊匹配。difflib则用于序列差异化比较,如get_close_matches(),Differ和HtmlDiff类,适用于文本差异比较和生成HTML差异报告。虽然difflib在模糊匹配精度上不足,但fuzzywuzzy适合词的模糊匹配。" 80257045,7669366,HBase配置详解与最佳实践,"['大数据开发', 'Hadoop', '数据库理论', '存储系统']
摘要由CSDN通过智能技术生成

1. 概述

利用python库:fuzzywuzzydifflib,两个库均可实现词粒度的模糊匹配,同时可设定模糊阈值,实现关键词的提取、地址匹配、语法检查等

2. fuzzywuzzy

pip install fuzzywuzzy

from fuzzywuzzy import process
from fuzzywuzzy import fuzz

2.1 fuzzy模块

(1)模糊匹配方法

  1. ratio()——简单匹配,使用纯Levenshtein Distance进行匹配。
  2. partial_ratio()——非完全匹配,基于最佳的子串(substrings)进行匹配
  3. token_set_ratio——忽略顺序匹配,对字符串进行标记(tokenizes)并在匹配之前按字母顺序对它们进行排序 
  4. token_set_ratio——去重子集匹配,对字符串进行标记(tokenizes)并比较交集和余数 

(2)实例

  • ratio() 简单匹配
fuzz.ratio("河南省", "河南省")
>>> 100

fuzz.ratio("河南", "河南省")
>>> 80
  • partial_ratio() 非完全匹配

 

fuzz.partial_ratio("河南省", "河南省")
>>> 100

fuzz.partial_ratio("河南", "河南省")
>>> 100
  • token_set_ratio() 忽略顺序匹配

 

  • 16
    点赞
  • 180
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值