欢迎访问宙启技术站
智能推送

Python中使用fuzzywuzzy.process库进行中文字符串相似度匹配

发布时间:2023-12-28 02:10:52

fuzzywuzzy.process是一个用于字符串相似度匹配的Python库,它基于模糊查询算法实现。在Python中,我们可以使用fuzzywuzzy.process来计算两个中文字符串之间的相似度。

首先,确保已经安装了fuzzywuzzy库。可以使用以下命令进行安装:

pip install fuzzywuzzy

接下来,导入所需的函数:

from fuzzywuzzy import process

fuzzywuzzy.process库提供了几个用于计算字符串相似度的函数。以下是一些常用的函数和使用例子:

1. fuzzywuzzy.process.extract函数:

该函数用于从给定的候选字符串列表中提取与目标字符串最相似的字符串。函数返回一个按照相似度降序排列的列表。可以使用以下代码进行使用:

choices = ['苹果', '香蕉', '橙子', '芒果']
query = '苹古'

result = process.extract(query, choices)
print(result)

输出结果为:

[('苹果', 86), ('橙子', 36), ('芒果', 33), ('香蕉', 20)]

2. fuzzywuzzy.process.extractOne函数:

该函数用于从给定的候选字符串列表中提取与目标字符串最相似的字符串,并返回该字符串及其相似度。可以使用以下代码进行使用:

choices = ['苹果', '香蕉', '橙子', '芒果']
query = '苹古'

result = process.extractOne(query, choices)
print(result)

输出结果为:

('苹果', 86)

3. fuzzywuzzy.process.extractBests函数:

该函数用于从给定的候选字符串列表中提取与目标字符串最相似的指定数量的字符串。函数返回一个按照相似度降序排列的列表。可以使用以下代码进行使用:

choices = ['苹果', '香蕉', '橙子', '芒果']
query = '苹古'

result = process.extractBests(query, choices, score_cutoff=70)
print(result)

输出结果为:

[('苹果', 86)]

4. fuzzywuzzy.process.extractWithoutOrder函数:

该函数用于从给定的候选字符串列表中提取与目标字符串最相似的字符串。与fuzzywuzzy.process.extract函数不同的是,该函数不会考虑字符串的顺序。可以使用以下代码进行使用:

choices = ['橙子苹果', '苹果香蕉', '芒果苹果', '西瓜苹果']
query = '苹果橙子'

result = process.extractWithoutOrder(query, choices)
print(result)

输出结果为:

[('橙子苹果', 86), ('苹果香蕉', 66), ('苹果橙子', 60), ('芒果苹果', 60)]

以上是fuzzywuzzy.process库在Python中进行中文字符串相似度匹配的使用例子。根据实际需求,你可以选择不同的函数进行相似度匹配。