Действительно ли возможно предположить настроение пользователя на основе структуры текста?

Почему бы просто не заполнить массив несколькими символами и выбрать случайным образом их количество? Вы можете разделить их на группы, чтобы быть уверенными, что они включают буквы, цифры и специальные символы.

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

56
задан David Brown 1 June 2009 в 01:23
поделиться

10 ответов

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

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

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

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

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

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

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

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


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

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

Изменить

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


Править

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


Править

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

65
ответ дан 26 November 2019 в 17:25
поделиться

I can't believe I'm taking this seriously... assuming a one-dimensional mood space:

  • If the text contains a curse word, -10 mood.
  • I think exclamations would tend to be negative, so -2 mood.
  • When I get frustrated, I type in Very. Short. Sentences. -5 mood.

The more I think about this, the more it's clear that a lot of these signifiers indicate extreme mood in general, but it's not always clear what kind of mood.

3
ответ дан 26 November 2019 в 17:25
поделиться

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

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

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

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

12
ответ дан 26 November 2019 в 17:25
поделиться

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

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

2
ответ дан 26 November 2019 в 17:25
поделиться

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

1
ответ дан 26 November 2019 в 17:25
поделиться

Yes.

Whether or not you can do it is another story. The problem seems at first to be AI complete.

Now then, if you had keystroke timings you should be able to figure it out.

0
ответ дан 26 November 2019 в 17:25
поделиться

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

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

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

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

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

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

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

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

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

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

1
ответ дан 26 November 2019 в 17:25
поделиться

Я думаю, мой алгоритм довольно прост, но почему бы не вычислить smilics через текст :) vs: (

Очевидно, что текст ":) :) :) :)" разрешается счастливому пользователю, а ":( :( :(" "обязательно превращается в грустного. Наслаждайтесь!

1
ответ дан 26 November 2019 в 17:25
поделиться

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

3
ответ дан 26 November 2019 в 17:25
поделиться

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

0
ответ дан 26 November 2019 в 17:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: