Почему эти слова считаются стоп-словами? - PullRequest
11 голосов
/ 26 июня 2011

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

В [80]: nltk.corpus.stopwords.words ('english')

Out [80]:

['i', 'me', 'my', 'я', 'мы', 'наш', 'наш',«мы», «вы», «ваш», «ваш», «вы», «вы», «он», «он», «его», «он сам», «она», «ее», «ее»',' сама ',' оно ',' его ',' само ',' они ',' они ',' их ',' их ',' они сами ',' что ',' которое ',' кто ',«кого», «это», «это», «эти», «те», «я», «есть», «есть», «было», «было», «быть», «было», «быть»',' иметь ',' имеет ',' имел ',' иметь ',' делать ',' делает ',' сделал ',' делать ',' a ',' an ',' the ',' и ','но', 'если', 'или', 'потому что', 'как', 'до', 'while', 'of', 'at', 'by', 'for', 'with', 'about',' против ',' между ',' в ',' через ',' во время ',' до ',' после ',' после ',' ниже ',' до ',' от ',' вверх ',«вниз», «в», «вне», «вкл», «выкл», «над», «под», «снова», «дальше», «тогда», «один раз», «здесь», «thпрежде чем ',' когда ',' где ',' почему ',' как ',' все ',' любое ',' оба ',' каждый ',' несколько ',' больше ',' большинство ',' другое ', «некоторые», «такие», «нет», «ни», «не», «только», «свои», «такие же», «так», «чем», «тоже», «очень», «s ',' t ',' can ',' will ',' just ',' don ',' should ',' now ']

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

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

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

1 Ответ

16 голосов
/ 26 июня 2011

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

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

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

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

...