Python 3.x difflib:将关键字列表与另一个列表进行比较并返回比率

Python 3.x difflib:将关键字列表与另一个列表进行比较并返回比率,python-3.x,pandas,list,difflib,Python 3.x,Pandas,List,Difflib,我试图用difflib将一系列单词与一系列句子进行比较 import pandas as pd from difflib import SequenceMatcher s1 = ['okay', 'bye', 'what is'] # reference keywords s2 = ['okay', 'what', 'dont worry', 'what is my name', 'is', 'my', 'name', 'bye'] #actual list SequenceMatcher(

我试图用difflib将一系列单词与一系列句子进行比较

import pandas as pd
from difflib import SequenceMatcher
s1 = ['okay', 'bye', 'what is'] # reference keywords

s2 = ['okay', 'what', 'dont worry', 'what is my name', 'is', 'my', 'name', 'bye'] #actual list

SequenceMatcher(a = s1, b = s2).ratio() # returns 0.36

上面的代码段返回0.36作为总体结果。但我需要一个列表,其中引用关键字与实际列表匹配,并且它们的分数为“1.0”。所以在上面的例子中,我的结果(例如,我在这里放了随机分数,值可能是[1.0,0.2,0.0,0.5,0.1,0.0,0.0,1.0]),也就是说,精确匹配=1.0,不匹配=0.0,部分匹配=相应的分数。

也许你在寻找这样的东西:

[max([SequenceMatcher(None, x, y).ratio() for y in s1]) for x in s2]
>>> [1.0, 0.7272727272727273, 0.2857142857142857, 0.6363636363636364, 0.4444444444444444, 0.4, 0.2857142857142857, 1.0]

为什么您的一些条目
0
?第二个索引不应该与第一个列表中的
内容有一定的比率吗?@user3483203是的,更新的更改不应该
也与
内容相匹配吗?我想您需要检查一下,因为您计算这些比率的方式似乎完全是随机的。例如,
别担心
返回
[0.2857142857142857,0.153846153844615385,0.23529411764705882]的比率
使用您的初始列表,但您将其分配给
0
@user3483203是的,我用注释更新了示例,说明分数是随机的,我给出这些注释只是为了说明上下文,并不打算给出准确的分数。我如何删除项目(文本)在你的结果中有一个1.0的值,或者甚至高于某个阈值。比如说,0.3。检查这个我想得到文本行的“索引”,它是1.0,并删除文本本身,因为它将是匹配的。