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

使用fuzzywuzzy.process进行中文字符串相似度计算的Python代码示例

发布时间:2023-12-28 02:12:31

下面是使用fuzzywuzzy.process进行中文字符串相似度计算的Python代码示例:

from fuzzywuzzy import fuzz
from fuzzywuzzy import process

# 示例1:计算两个中文字符串的相似度
str1 = "苹果手机"
str2 = "苹果手机7"

ratio = fuzz.ratio(str1, str2)
print("字符串相似度(ratio):", ratio)

partial_ratio = fuzz.partial_ratio(str1, str2)
print("部分字符串相似度(partial_ratio):", partial_ratio)

token_sort_ratio = fuzz.token_sort_ratio(str1, str2)
print("排序后字符串相似度(token_sort_ratio):", token_sort_ratio)

token_set_ratio = fuzz.token_set_ratio(str1, str2)
print("集合字符串相似度(token_set_ratio):", token_set_ratio)

# 示例2:在一组字符串中查找与目标字符串最相似的字符串
choices = ["苹果手机", "华为手机", "小米手机", "三星手机", "魅族手机"]
target_str = "苹果7手机"

best_match = process.extractOne(target_str, choices)
print("最相似的字符串:", best_match[0])
print("相似度得分:", best_match[1])

以上代码示例中,首先我们使用了fuzz.ratio函数来计算两个中文字符串的相似度。这个函数会计算两个字符串的相似程度,返回一个介于0和100之间的整数,表示相似度的百分比。接下来,我们还用了fuzz.partial_ratio函数,它将字符串的部分重叠部分作为匹配的标准,返回相似度得分。然后,我们用fuzz.token_sort_ratio函数和fuzz.token_set_ratio函数计算排序后和集合字符串的相似度。最后,我们使用process.extractOne函数在一个字符串列表中查找与目标字符串最相似的字符串,并返回相似度得分最高的结果。

需要注意的是,这里的fuzzywuzzy库适用于英文字符串的相似度计算,对于中文字符串,在一定程度上可以进行简单的相似度计算,但可能无法考虑到中文的语义差异等复杂因素,所以结果仅供参考。

希望这个代码示例能满足你的需求,如果还有其他问题,请随时提问!