Почему эти слова считаются секундомерами?

У меня нет формального фона в обработке естественного языка, было интересно, может ли кто-то из стороны НЛП пролить свет на это. Я играю с библиотекой NLTK, и я специально изучал функцию стоп-логов, предоставляемую этим пакетом:

В [80]: nltk.corpus.stopwords.words( 'английский')

Out [80]:

['i', 'me', 'my', "я", "мы", "наш", "наш", "мы", "вы", "ваш", "твой", "ты", "себя", "он", "его" , "его" , "сам", "она", "ее", "ее", "сама", "это", "его" , "сам", "они", "их" , "их" , "их" , "себя", "что", "что", "кто", "кто", 'this', "это", "эти", "те", "am", "is", "есть" , "есть" , "были", "быть", "было", "быть", "иметь", "есть" , "имеет", "иметь", "делать", "делает", "сделал", "сделал", "a", "an", "the", 'и', 'but', 'if', 'или', 'потому что', 'как', 'до', 'while', 'of', 'at', 'by', 'for', 'with', 'about', 'против', 'между', "в", "через", "во время", 'before', 'after', 'above', "ниже", "до", "от", "вверх", 'down', 'in', 'out', 'on', 'off', 'over', 'under', 'again', "далее", "затем", "один раз", "здесь", "там", "когда", "where", "почему", "как", "все", "все", "оба", "каждый", "несколько", "больше", "большинство", "другие", "некоторые", "такие", "нет", "ни", "не", "только", "собственный", "такой же", "так", "чем", "тоже", "very", "s", "t", "can", "will", 'just', 'don', 'should', 'now']

Я не понимаю, почему слово "не" присутствует? Разве это не обязательно для определения чувства внутри предложения? Например, предложение вроде этого:

Я не уверен, в чем проблема.

полностью отличается после удаления стоп-слова not, изменяя значение предложения на противоположное (I am sure what the problem is). Если это так, существует ли набор правил, которые мне не хватает, когда вы не используете эти стоп-слова?

Ответ 1

Концепция списка стоп-слов не имеет универсального значения и зависит от того, что вы хотите сделать. Если у вас есть задача, когда вам нужно понять полярность, настроение или аналогичную характеристику фразы, и если ваш метод зависит от обнаружения отрицания (как в вашем примере), очевидно, вы не должны удалять "не" в качестве слова остановки ( обратите внимание, что вы все равно можете удалить другие очень распространенные несвязанные слова, которые будут составлять ваш новый список стоп-слов).

Однако, чтобы ответить на ваш вопрос, большинство методов анализа настроений очень поверхностны. Они ищут эмоции/насыщенные чувствами слова, и - большую часть времени - они не пытаются глубоко проанализировать предложение.

В качестве другого примера, в котором вы хотели бы сохранить слова остановки: если вы пытаетесь классифицировать документы в соответствии с их авторами (авторство атрибутов) или выполняете стилометрию, вы должны обязательно сохранить эти функциональные слова, поскольку они характеризуют большую часть стиля и дискурса.

Однако для многих других видов анализов (например, моделей словарного пространства, сходства документов, поиска и т.д.) удаление очень распространенных функциональных слов имеет смысл как вычислительно (вы обрабатываете меньше слов), так и в некоторых случаях практически (вы даже можете получить лучшие результаты при удалении слов остановки). Если я пытаюсь понять контекст, в котором определенное слово используется очень часто, я хотел бы видеть слова содержания, а не функциональные слова.