понимание вложенных списков для достижения вложенных списков - PullRequest
0 голосов
/ 18 апреля 2019
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]

Ответы [ 2 ]

3 голосов
/ 18 апреля 2019

Вы очень близки, вам просто нужно заключить внутренний список в скобки. Это также делает его более читабельным.

[[word for word in txt.lower().split() if word not in stp] for txt in list1]
3 голосов
/ 18 апреля 2019

Вы должны также включить внутреннее понимание в список.

[[word for word in list if word not in stp] for list in lower_token]

...