Python 若变量匹配列表元素的百分比,则执行某些操作
对不起,如果我事先解释得不好。如果变量与列表元素的某个百分比相匹配,我希望输出一些内容。例如:Python 若变量匹配列表元素的百分比,则执行某些操作,python,python-3.x,Python,Python 3.x,对不起,如果我事先解释得不好。如果变量与列表元素的某个百分比相匹配,我希望输出一些内容。例如: sentencelst = ['It is a very nice day', 'How are you', 'How is the weather', 'Have a great day'] matchedsentence = 'It is a nice day' if matchedsentence is 75% similar in sentencelst: print('75% m
sentencelst = ['It is a very nice day', 'How are you', 'How is the weather', 'Have a great day']
matchedsentence = 'It is a nice day'
if matchedsentence is 75% similar in sentencelst:
print('75% match')
else:
print('less than 75% match')
continue
最终目标是,如果
matchedSequence
包含sentencelst
中任何元素75%的单词,它将起到一定的作用。如果你不能理解这个问题,我很抱歉,我自己也很难理解它。你可以使用模糊程序包:
from fuzzywuzzy import fuzz
sentencelst = ['It is a very nice day', 'How are you', 'How is the weather', 'Have a great day']
matchedsentence = 'It is a nice day'
for sentence in sentencelst:
if fuzz.ratio(sentence, matchedsentence) > 75:
print('75% match')
else:
print('less than 75% match')
continue
您可以使用fuzzyfuzzy
包:
from fuzzywuzzy import fuzz
sentencelst = ['It is a very nice day', 'How are you', 'How is the weather', 'Have a great day']
matchedsentence = 'It is a nice day'
for sentence in sentencelst:
if fuzz.ratio(sentence, matchedsentence) > 75:
print('75% match')
else:
print('less than 75% match')
continue
也许读到你也可以检查一下。如果一个单词在你的列表中重复会发生什么?假设sentenceList
中包含“今天天气最热”
和匹配句子=“今天的天气”
-这是50%匹配(6分之3)还是60%匹配(5分之3)?您的病情是否区分大小写?标点符号呢?我想你在寻找类似于Jaccard相似性/距离的东西。这是交点的长度除以并集的长度。谷歌的另一个话题。它不区分大小写,标点符号也不重要。这是一个我没有想到的疏忽,谢谢,上面关于列支敦士登距离的两个链接对我帮助很大,所以我将对此进行调查。也许你也可以检查一下。如果列表中重复了一个单词,会发生什么?假设sentenceList
中包含“今天天气最热”
和匹配句子=“今天的天气”
-这是50%匹配(6分之3)还是60%匹配(5分之3)?您的病情是否区分大小写?标点符号呢?我想你在寻找类似于Jaccard相似性/距离的东西。这是交点的长度除以并集的长度。谷歌的另一个话题。它不区分大小写,标点符号也不重要。这是一个我没有想到的疏忽,谢谢,上面关于列支敦士登距离的两个链接对我帮助很大,所以我将对此进行调查。