Нахождение чувства предложения, содержащего не слово - PullRequest
0 голосов
/ 30 августа 2018

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

Пример: - предложение- «Боб - лучший мальчик в школе». Поскольку в этом предложении есть одно прилагательное «наилучшее», соответствующее хорошему набору, то этому предложению присваивается «Хороший смысл».

Но за отрицательное предложение: «Боб не лучший мальчик в школе». Так как в этом предложении есть только одно прилагательное «лучший» , соответствующее правильному набору, то этому предложению присваивается «Хороший смысл». Но здесь «не» имеет смысл для плохого, но мой код не может обработать «не» в предложении.

Помогите мне решить проблему отрицания

Ответы [ 2 ]

0 голосов
/ 03 сентября 2018

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

Huge ngrams dataset from google storage.googleapis.com/books/ngrams/books/datasetsv2.html
http://www.sananalytics.com/lab/twitter-sentiment/
http://inclass.kaggle.com/c/si650winter11/data
http://nlp.stanford.edu/sentiment/treebank.html

Из-за проблемы, с которой вы столкнулись, люди начали использовать статистику для НЛП. Есть несколько других шагов, которые необходимо выполнить, прежде чем применять эти алгоритмы, такие как токенизация предложений, токенизация слов, лексический анализ и т. Д.

0 голосов
/ 03 сентября 2018

«не» - это слово для отрицания выражений в языке. Использовать термин «отрицание» было бы лучше для проблемы.

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

Для анализа настроений, если член, загруженный чувствами, проходит в рамках триггера отрицания, можно инвертировать или ослабить значение настроения триггера или пометить член, загруженный чувствами.

Случай, который вы упомянули, однако, должен быть исследован иначе. Превосходное прилагательное в объеме отрицания может быть исследовано антонимом прилагательного:

worst - bad - neutral - good - best

Таким образом, эти термины «масштабируются», а отрицание передает семантику следующим образом:

  • «не самый лучший» подразумевает один из «худших - плохих - нейтральных - хороших», однако в целом между плохим и хорошим следует рассмотреть и другой контекст предложения
  • «не хорошо» означает «плохо - нейтрально»

Эта концепция - то, что я взял из скалярного подтекста Грейс. Вы можете посмотреть это подробнее.

В заключение, для простого решения, если вы используете оценки ассоциации настроений для таких прилагательных (например, лучшие: + 4 ), я предлагаю не инвертировать его оценку напрямую, умножив на -1 когда он находится в пределах отрицания, но умножается на -0,5 , чтобы найти между ассоциациями.

Надеюсь, это помогает, ура.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...