如何从多个句子中 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]
我有一个关键字列表,我希望在句子列表中匹配这些关键字。如果在该句子中找到 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]