如何从多个句子中 return 列表中的关键字?

How to return keywords in a list from multiple sentences?

我有一个关键字列表,我希望在句子列表中匹配这些关键字。如果在该句子中找到 return 列表中找到的关键字。

我尝试过的:

sentence = df['List of Content']
list_of_words = ['keyword1','keyword2', 'keyword3']

如果我只选择一行,下面的方法有效:

[word for word in list_of_words if word in sentence[0]

并输出

output: ['keyword1', 'keyword3']

所有行的理想输出是在句子中匹配的关键字列表。 像这样:

matching_keywords = [['keyword1', 'keyword3'],['keyword2, 'keyword3'],['keyword1', 'keyword2']..]

但是,当我 运行 在整个列表中循环 for 时,它只输出一个空列表 []


我也试过嵌套for循环:

kwords = []
for row in MCC:
    for x in list_of_words:
        if x in row:
            kwords.append(x)

它要么再次给我一个空的括号列表 [],要么只是创建一长串重复的关键字。

我犯了什么错误?任何人都可以尝试帮助我 logic/solution.

您可以通过执行以下操作来扩展您的初始方法。

[[word for word in list_of_words if word in row] for row in sentence]

解释:这相当于嵌套列表理解。对于每一行,我们需要一个出现在该行中的关键字列表。通过列表理解,这应该写成

[<list of keywords in row> for row in sentence]

另一方面,如果您正在查看特定的行(例如,row = sentence[0]),那么当您在问题中陈述时,该行中出现的关键字列表可以用 [word for word in list_of_words if word in row] 获得。综合起来就是我上面写的结果,即

[[word for word in list_of_words if word in row] for row in sentence]