前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >字段匹配工具----python编写

字段匹配工具----python编写

作者头像
cultureSun
发布2023-10-18 16:23:30
5880
发布2023-10-18 16:23:30
举报
文章被收录于专栏:cultureSun学安全cultureSun学安全

简介

FuzzyWuzzy是一个基于Levenshtein Distance算法的模糊字符串匹配工具包。该算法计算两个序列之间的差异,即从一个字符串转换到另一个字符串所需的最少编辑操作次数。编辑操作可以是替换、插入或删除字符。编辑距离越小,两个字符串的相似度越大。

详解

场景

前两天工作遇到了一个场景。是一个数据集匹配另一个数据集,正常来说是一对一或者多对一的关系,但是由于叫法的差异,只能进行模糊匹配。比如中国中华

FuzzyWuzzy

FuzzyWuzzy有两个模块,一个是fuzz,另一个是process

fuzz

fuzz模块有四种匹配算法。

  • 简单匹配(Ratio)
  • 非完全匹配(Partial Ratio)
  • 忽略顺序匹配(Token Sort Ratio)(多字符匹配,需要空格隔开)
  • 去重子集匹配(Token Set Ratio)(多字符匹配,需要空格隔开)
代码语言:javascript
复制
from fuzzywuzzy import fuzz

# 示例代码及结果
print(fuzz.ratio("cultureSun", "cultureSun"))  # 结果: 100
print(fuzz.partial_ratio("culture", "cultureSun"))  # 结果: 100
print(fuzz.token_sort_ratio("c ultureSun", "ultureSun c"))  # 结果: 100
print(fuzz.token_set_ratio("c c cultureSun", "cultureSun"))  # 结果: 100

process

process有两种匹配算法,主要用多项匹配。

  • extract:提取多条数据
  • extractOne:提取一条数据
代码语言:javascript
复制
from fuzzywuzzy import process

# 示例代码及结果
choices = ["culture", "Sun", "cultureSun", "Sunculture"]
print(process.extract("culture", choices, limit=4))  # 结果: [('culture', 100), ('cultureSun', 82), ('Sunculture', 82), ('Sun', 30)]
print(process.extractOne("culture", choices))  # 结果: ('culture', 100)

场景解决

需要使用process模块的extractOne。 将两数据集封装成列表。循环第一个数据集,依次使用process.extractOne()方法匹配第二个数据集,来得到匹配度最高的项。

本文参与?腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-10-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体同步曝光计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
  • 详解
    • 场景
      • FuzzyWuzzy
        • fuzz
        • process
    • 场景解决
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
    http://www.vxiaotou.com