gpt4 book ai didi

python-2.7 - difflib.get_close_matches 获得分数

转载 作者:行者123 更新时间:2023-12-01 10:35:30 30 4
gpt4 key购买 nike

我正在尝试使用 difflib.get_close_matches 获得最佳匹配的分数:

import difflib

best_match = difflib.get_close_matches(str,str_list,1)[0]

我知道添加' cutoff 的选项' 参数,但无法找到设置阈值后如何获得实际分数。
我错过了什么吗?是否有更好的解决方案来匹配 unicode 字符串?

最佳答案

我发现 difflib.get_close_matches 是匹配/模糊匹配字符串的最简单方法。但是,正如您在评论中提到的,还有一些其他更高级的库,例如 Fuzzywuzzy。

但是如果你想使用difflib,你可以使用difflib.SequenceMatcher得到分数如下:

import difflib
my_str = 'apple'
str_list = ['ape' , 'fjsdf', 'aerewtg', 'dgyow', 'paepd']
best_match = difflib.get_close_matches(my_str,str_list,1)[0]
score = difflib.SequenceMatcher(None, my_str, best_match).ratio()

在此示例中,“apple”与列表之间的最佳匹配是“ape”,得分为 0.75。

您还可以遍历列表并计算所有要检查的分数:
for word in str_list:
print "score for: " + my_str + " vs. " + word + " = " + str(difflib.SequenceMatcher(None, my_str, word).ratio())

对于此示例,您将获得以下信息:
score for: apple vs. ape = 0.75
score for: apple vs. fjsdf = 0.0
score for: apple vs. aerewtg = 0.333333333333
score for: apple vs. dgyow = 0.0
score for: apple vs. paepd = 0.4

可以在此处找到 difflib 的文档: https://docs.python.org/2/library/difflib.html

关于python-2.7 - difflib.get_close_matches 获得分数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36283391/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com