问题描述
我有一个字符串和一个字符串列表。 我只想知道列表中的哪些文本与给定的字符串部分匹配100%。
from fuzzywuzzy import fuzz
s1 = "Hello"
s_list= ["Hai all","Hello world","Thank you"]
fuzz.partial_ratio(s1,s_list)
这是100。因为“ Hello”与“ Hello world”部分匹配 但是如何获取“ Hello World”作为输出?
有人可以帮我吗? 预先感谢。
解决方法
您不需要模糊不清即可进行精确匹配。 Fuzzywuzzy用于模糊匹配。 Fuzzywuzzy不能精确地为匹配生成索引,因为通常,没有“匹配”,只有距离。
您需要的只是Python。
s1 = "Hello"
s_list= ["Hai all","Hello world","Thank you"]
for item in s_list:
if s1 in item:
print("item: " + item + "\ns1" + s1)
,
您可以使用其他功能
from fuzzywuzzy import process
s1 = "Hello"
s_list= ["Hai all","Thank you"]
[s for s,m in process.extract(s1,s_list) if m == 100]
有关更多信息,请检查help(process.extract)
。
如果您严格要求100%部分匹配,那么尼尔的答案会更好。