首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

每日一模块:Fuzzywuzzy

一、简介

Fuzzywuzzy是一个Python库,用于字符串模糊匹配。它基于Levenshtein Distance算法来计算两个字符串之间的相似度。Fuzzywuzzy在数据清洗、文本匹配、自然语言处理等场景中有着广泛的应用。

二、安装

你可以使用pip来安装fuzzywuzzy:

pip install fuzzywuzzy

pip install python-Levenshtein  # 这个库可以加快fuzzywuzzy的运行速度

三、基本使用

1. 基础匹配

使用fuzz.ratio()函数可以计算两个字符串的相似度,返回一个介于0到100之间的整数,表示相似度百分比。

from fuzzywuzzy import fuzz

s1 = "hello world"

s2 = "hello python"

ratio = fuzz.ratio(s1, s2)

print(f"The similarity ratio is: {ratio}")

2. 部分匹配

fuzz.partial_ratio()函数考虑到了字符串的部分匹配,可以计算两个字符串中部分匹配的相似度。

from fuzzywuzzy import fuzz

s1 = "hello world"

s2 = "hello python world"

partial_ratio = fuzz.partial_ratio(s1, s2)

print(f"The partial similarity ratio is: {partial_ratio}")

3. token排序匹配

fuzz.token_sort_ratio()函数首先对字符串进行分词,然后对分词结果进行排序,最后计算排序后字符串的相似度。这种方法对于词序不重要的场景很有用。

from fuzzywuzzy import fuzz

s1 = "hello world"

s2 = "world hello"

token_sort_ratio = fuzz.token_sort_ratio(s1, s2)

print(f"The token sort similarity ratio is: {token_sort_ratio}")

4. token集合匹配

fuzz.token_set_ratio()函数首先对字符串进行分词,然后计算两个字符串分词结果集合的相似度。这种方法对于词序和重复词不重要的场景很有用。

from fuzzywuzzy import fuzz

s1 = "hello hello world"

s2 = "hello world"

token_set_ratio = fuzz.token_set_ratio(s1, s2)

print(f"The token set similarity ratio is: {token_set_ratio}")

四、高级使用

fuzzywuzzy还提供了一个process模块,用于在字符串列表中进行模糊匹配。例如,你可以使用extract()函数从列表中找出与给定字符串最相似的项。

from fuzzywuzzy import process

choices = ["hello world", "hello python", "goodbye world"]

s = "hello python world"

best_match = process.extractOne(s, choices)

print(f"The best match is: {best_match}")

process.extractOne()函数返回一个元组,包含最佳匹配项、相似度分数和匹配项在列表中的索引。如果你想获取多个匹配项,可以使用process.extract()`函数,它会返回一个包含多个匹配项和它们分数的列表。

五、总结

fuzzywuzzy是一个强大的字符串模糊匹配库,它提供了多种匹配方式以满足不同的需求。无论是基础匹配还是高级匹配,fuzzywuzzy都能帮助你轻松实现字符串的相似度计算。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OmtEdDN7zQs0vg50YVp5gDyg0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券