Я пытаюсь удалить стоп-слова (из nltk) из моего набора данных, но не уверен, почему не работает однострочный запрос:
filtered_words = [word if word not in stop_words for word in words]
Это то, что мне нужно сделать:
filtered_words = [] for word in words: if word not in stop_words: filtered_words.append(word)
if должно быть в конце списка:
filtered_words = [word for word in words if word not in stop_words]
см .: https://www.pythonforbeginners.com/basics/list-comprehensions-in-python
синтаксис, который вы хотите:
x = [x for x in range(200) if x%3 == 0 ]
поставить условие позади
синтаксис, который вам нужен, еще как:
x = [x if x%3 == 0 else None for x in range(200) ]
и это выдает ошибку:
x = [x if x%3 == 0 for x in range(200) ]
Синтаксис обратный.[добавление слова для слова в начальных словах, если слово не в словах остановок]
starting_words = ["hi", "joshing", "afflate", "damage"] stop_words = ["afflate", "K", "books"] filtered_words = [] '''for word in starting_words: if word not in stop_words: filtered_words.append(word) == filtered_words = [word for word in starting_words if word not in stop_words]'''