algorithm - русский - обработка естественного языка методы




Можно ли угадать настроение пользователя, основанное на структуре текста? (8)

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

EDIT: Я никоим образом не специалист по языкознанию или обработке на естественном языке, поэтому я извиняюсь, если этот вопрос слишком общий или глупый.


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


Да.

Независимо от того, можете ли вы это сделать, это еще одна история. Сначала проблема заключается в том, что AI завершен.

Теперь, если у вас есть тайм-ауты нажатия клавиш, вы должны быть в состоянии понять это.


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


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

`K` 

`k`

Несомненно, можно судить о настроении пользователя, основываясь на тексте, который они набирают, но это не было бы тривиальной вещью. Вещи, о которых я могу думать:

  • Столицы имеют тенденцию обозначать агитацию, раздражение или разочарование и, безусловно, эмоциональный отклик, но затем некоторые новички делают это, потому что они не осознают значимости, поэтому вы не можете предположить, что, не глядя на то, что еще они написали (чтобы убедиться его не все в шапках);
  • Столицы - это всего лишь одна из форм акцента. Другие используют некоторые агрессивные цвета (например, красный) или используют жирный шрифт или более крупные шрифты;
  • Некоторые люди делают больше орфографических и грамматических ошибок и опечаток, когда они очень эмоциональны;
  • Сканирование для смайликов может дать вам очень четкое представление о том, что чувствует пользователь, но снова что-то вроде :) можно было бы считать счастливым: «Я так сказал» или даже имел саркастическое значение;
  • Использование ругательств имеет тенденцию иметь четкий смысл, но опять же его не ясно. В разговорной речи многих людей обычно будут содержаться определенные четыре буквы. Для некоторых других людей они, возможно, даже не скажут «ад», говоря «черт возьми», а потому, что любая ругательная (даже «отстойная») значительна;
  • Группы знаков препинания (например, @ # $ @ $ @), как правило, заменяются для исключений в контексте, когда ругательства необязательно подходят, так что менее вероятно, что они разговорные;
  • Восклицательные знаки могут указывать на удивление, шок или раздражение.

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

Наконец, стоит отметить, что письменный текст обычно воспринимается как более негативный, чем он есть на самом деле. Это обычная проблема с электронной почтой в компаниях, как один пример.


Это основа области обработки естественного языка, называемой анализом чувств . Хотя ваш вопрос является общим, это, конечно, не глупо - такие исследования проводятся Amazon по тексту в обзорах продуктов, например.

Если вы серьезно относитесь к этому, тогда простая версия может быть достигнута путем:

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

  2. Разделите свой набор данных на предложения как положительные, так и отрицательные . Для тела полярности чувств вы можете разделить каждый обзор на его составные предложения, а затем применить общий тег полярности настроения (положительный или отрицательный) ко всем этим предложениям. Разделите этот корпус на две части - 90% должны быть предназначены для обучения, 10% - для тестирования. Если вы используете Weka, тогда он может справиться с расщеплением корпуса для вас.

  3. Примените алгоритм машинного обучения (например, SVM, Naive Bayes, Maximum Entropy) к учебному корпусу на уровне слов. Эта модель называется мешочком модели слов , которая просто представляет предложение как слова, из которых он состоит. Это та же модель, на которой работают многие спам-фильтры. Для хорошего введения в алгоритмы машинного обучения есть приложение под названием Weka которое реализует ряд этих алгоритмов и дает вам графический интерфейс для игры с ними. Затем вы можете проверить производительность модели, изученной машиной, на ошибках, возникающих при попытке классифицировать ваш тестовый корпус с помощью этой модели.

  4. Примените этот алгоритм обучения к вашим сообщениям пользователей . Для каждого сообщения пользователя отделите пост в предложениях и затем классифицируйте их с помощью модели, изученной машиной.

Так что да, если вы серьезно относитесь к этому, то это достижимо - даже без прошлого опыта в вычислительной лингвистике. Это будет довольно много работы, но даже с использованием моделей на основе слов могут быть достигнуты хорошие результаты.

Если вам нужна дополнительная помощь, не стесняйтесь обращаться ко мне - я всегда рад помочь другим, заинтересованным в НЛП =]

Маленькие заметки -

  1. Простое разделение сегмента текста на предложения - это поле НЛП - определение границы предложения . Существует множество инструментов, OSS или бесплатно, доступных для этого, но для вашей задачи простой разброс по пробелам и пунктуации должен быть прекрасным.
  2. SVMlight также является другим учеником для SVMlight , и на самом деле их индуктивный SVM выполняет аналогичную задачу, на что мы смотрим, - пытаясь классифицировать статьи Reuter о «корпоративных приобретениях» с 1000 положительными и 1000 отрицательными примерами.
  3. Включение предложений в функции для классификации может занять определенную работу. В этой модели каждое слово - это особенность - для этого требуется токенизация предложения, что означает разделение слов и знаков препинания друг от друга. Еще один совет - записать все отдельные лексемы слова так, чтобы «Я НЕНАВИЖУ ВАС» и «Я ненавижу ВАС», оба они считаются одинаковыми. С большим количеством данных вы можете попробовать, а также включить ли капитализацию в классификацию того, кто-то злится, но я считаю, что слов должно быть достаточно, по крайней мере, для первоначальных усилий.

редактировать

Я только что обнаружил LingPipe, который на самом деле имеет учебник по анализу настроений с использованием Боя Панга и Lillian Lee Sentiment Polarity corpus, о котором я говорил. Если вы используете Java, который может быть отличным инструментом для использования, и даже если он не пройдет через все этапы, о которых я говорил выше.


Я не могу поверить, что отношусь к этому серьезно ... при условии одномерного пространства настроения:

  • Если текст содержит слово проклятия, -10 настроение.
  • Я думаю, что восклицания будут иметь тенденцию быть отрицательными, поэтому -2 настроение.
  • Когда я расстраиваюсь, я набираю Very. Короткий. Предложения. -5 настроение.

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


Я согласен с ojblass, что это серьезный вопрос.

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

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

Здесь есть «мультимодальная» область исследования эмоций. Представьте себе веб-интерфейс, с которым вы также можете поговорить (в соответствии с реализацией прототипа прототипа IBM / Motorola / Opera XHTML + Voice Profile ). Обнаружение эмоций может быть основано на сочетании сигналов речевого и визуального ввода.







nlp