Я пытаюсь удалить стоп-слова перед выполнением моделирования темы. Я заметил, что некоторые слова отрицания (ни, ни, никогда, ни и т.д. ...) обычно считаются стоп-словами. Например, NLTK, spacy и sklearn включают «not» в свои списки стоп-слов. Однако, если мы уберем «не» из этих предложений ниже, они потеряют значимое значение, и это не будет точным для моделирования темы или анализа настроений.
1). StackOverflow is helpful => StackOverflow helpful
2). StackOverflow is not helpful => StackOverflow helpful
Может ли кто-нибудь объяснить, почему эти слова отрицания обычно считаются стоп-словами?
Ответы:
Стоп-слова обычно рассматриваются как «самые распространенные слова в языке». Однако возможны другие определения, основанные на других задачах.
Очевидно, имеет смысл рассматривать «не» как стоп-слово, если ваша задача основана на частотах слов (например, анализ tf – idf для классификации документов).
Если вас интересует контекст (например, анализ настроений ) текста, возможно, имеет смысл по-разному относиться к словам отрицания. Отрицание меняет так называемую валентность текста. К этому нужно относиться осторожно и обычно это не тривиально. Одним из примеров будет корпус отрицания Twitter. Объяснение подхода дается в этой статье .
источник