Вы можете сделать набор sw
"стоп-слов", которые вы хотите исключить (возможно, скопировать его раз и навсегда из корпуса стоп-слов NLTK, в зависимости от того, насколько вы знакомы с различные естественные языки, которые необходимо поддерживать), а затем примените его очень просто.
Например, если у вас есть список слов sent
, из которых состоит предложение (для пунктуации, без знаков препинания и в нижнем регистре), [word for word in sent if word not in sw]
- это все, что вам нужно, чтобы составить список незапорных слов - вряд ли быть проще, верно?
Чтобы получить список sent
в первую очередь, используя модуль re
из стандартной библиотеки, re.findall(r'\w+', sentstring)
может быть достаточно, если sentstring
- это строка с предложением, с которым вы имеете дело - это не не в нижнем регистре, но вы можете изменить предложенное выше понимание списка на [word for word in sent if word.lower() not in sw]
, чтобы компенсировать это и (кстати) сохранить первоначальный регистр слова, что может быть полезно.