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相似性/距离的东西。这是交点的长度除以并集的长度。谷歌的另一个话题。它不区分大小写,标点符号也不重要。这是一个我没有想到的疏忽,谢谢,上面关于列支敦士登距离的两个链接对我帮助很大,所以我将对此进行调查。