Как оценить настроение на «двойных отрицательных» предложениях

1

Это может быть очень тривиальный вопрос. Но я не могу найти ответ, который я ищу, выполнив поиск Google или SO.

Я хочу построить простую логику анализа чувств.

Есть два списка отрицательных и положительных слов/фраз с некоторым количеством баллов, сколько отрицательных или положительных, что слово/фразы.

Отрицательная фраза/слова:

really hate         -2
hate         -1
dislike      -1

Положительная фраза/слова:

like           1   
very much like 2

Ниже приведены соответствующие оценки

"I like to eat Apple"          => Sentiment Score = 1
"I really hate the college president"  => Sentiment Score = -2

Это нормально для вышеуказанных случаев. Но, интересно, как решить следующие случаи:

"Though I am an Android user, I hate to say I like iPhone 5s"

Понимаете, "ненависть" и "как" оба сделают оценку настроений = 0 Но я ожидаю, что это будет +1, потому что у нее есть положительные отзывы об iPhone 5s.

  • 3
    Этот пример не является примером двойного отрицания.
  • 0
    @farmerjoe, полностью согласен с тобой, но я не мог понять, как назвать пример. Пожалуйста, не стесняйтесь предлагать название для примера или редактировать название соответствующим образом.
Показать ещё 3 комментария
Теги:
machine-learning
nlp
sentiment-analysis

2 ответа

1

Как я уже сказал, это не пример двойного отрицательного. Это выражение ненависти к ощущению об iPhone, но похоже, что вы только хотели бы посчитать это чувство: слова, затрагивающие Субъект вашего предложения.

Вам нужно будет иметь учетную запись вашего алгоритма для контекста:

  1. Определите тему вашего предложения. (Apple, president, iPhone и т.д.)
  2. Найдите любые действующие ключевые слова ((really) hate/like/love и т.д.)
  3. Запишите предложение, основанное на оперативных словах, которые относятся к предмету, о котором вы беспокоитесь.

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

Что касается двойных негативов, вы, вероятно, захотите попробовать что-то вроде того, какие слова вызывают логические перевороты в настроение, т.е. not, don't и т.д. (Большинство из них - сокращение от not), а затем делают подсчет, чтобы определить флип что это приводит к прилагательным: т.е.

I do not like green eggs and ham

Идентифицировать зеленые eggs and ham, вернуться к поиску ключевых слов: not, like, возможно, искать глагол, получить некоторое предложение, подобное regex? Опять же, это не самая простая задача и, скорее всего, всегда будет только точной.

Подсчитайте not и с тех пор, как он нечетно умножает ваш рейтинг сентимента -1.

I do not not like green eggs and ham

Теперь у нас есть два nots, его четный, поэтому мы не меняем оценку чувства или не умножаемся на +1.

Мое общее предложение состояло в том, чтобы либо принять ложные срабатывания, либо продолжить, либо взглянуть на обработку естественного языка

0

Так как ваши слова настроения могут быть фразами, быстрое и грязное решение - добавить "ненависть, чтобы сказать, что мне нравится", к положительному списку настроений:

hate to say I like   +1

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


Боковое примечание о весе для назначения

Используйте +1 если наибольшее совпадение всегда используется и останавливает другие слова/фразы, соответствующие этим словам. В противном случае отрегулируйте вес. В этом случае вам не нужно ничего делать, как будто "ненависть" также соответствует -1, тогда "like" будет соответствовать другому "+1". Но для "действительно ненавижу говорить, что мне нравится", вам нужно дать ему базовое значение +2; то "действительно ненавижу" добавит в -2, как добавит в +1, и вы получите желаемое чувство от +1.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню