import nltk
nltk.download('stopwords')
from nltk.corpus import stopwords
list1 =['This is text','This is another text']
stp = stopwords.words('English')
lower_token = [t.lower().split() for t in list1]
new2=[]
for list in lower_token:
new1=[]
for word in list:
if word not in stp:
new1.append(word)
new2.append(new1)
new2
[[['text'],['another','text']]
在上面的条件循环中,我尝试将split the text
分成两个列表,然后排除stp
列表中出现的所有单词。尽管我可以使用for循环来实现结果,但是我很想使用列表理解来实现相同的结果,但是我做不到。
这是我使用列表理解的不成功尝试
[word for list in lower_token for word in list if word not in stp]
答案 0 :(得分:3)
您还需要将内部理解内容也包含在列表中。
[[word for word in list if word not in stp] for list in lower_token]
答案 1 :(得分:3)
您非常接近,您也只需将内部列表理解放在方括号中。这也使它更具可读性。
[[word for word in txt.lower().split() if word not in stp] for txt in list1]