Почему бы просто не заполнить массив несколькими символами и выбрать случайным образом их количество? Вы можете разделить их на группы, чтобы быть уверенными, что они включают буквы, цифры и специальные символы.
Вам также нужно будет выбрать правильную длину и количество из каждой группы символов для включения и все. Я не думаю, что вам нужны сложные формулы.
Это основа области обработки естественного языка, называемой анализ настроений . Хотя ваш вопрос носит общий характер, он определенно не глуп - например, Amazon проводит подобные исследования текстов обзоров продуктов.
Если вы серьезно относитесь к этому, то простой вариант может быть достигнут с помощью -
Получите корпус положительных / отрицательных настроений . Если бы это был профессиональный проект, вы могли бы потратить некоторое время и вручную аннотировать корпус, но если вы торопились или просто хотели сначала поэкспериментировать, то я бы посоветовал взглянуть на корпус полярности настроений из исследования Бо Пэна и Лилиан Ли. Проблема с использованием этого корпуса в том, что он не адаптирован для вашего домена (в частности, в корпусе используются обзоры фильмов), но он все равно должен быть применим.
Разделите свой набор данных на предложения, положительные или отрицательные . Для корпуса полярности настроения вы можете разбить каждый отзыв на составные предложения, а затем применить тег общей полярности настроения (положительный или отрицательный) ко всем этим предложениям. Разделите этот корпус на две части - 90% для обучения, 10% для тестирования. Если вы используете Weka, то он может обработать разделение корпуса за вас.
Примените алгоритм машинного обучения (такой как SVM, Naive Bayes, Maximum Entropy) к учебному корпусу на уровне слов. Эта модель называется моделью мешка слов , которая просто представляет предложение как слова, которые оно ' s состоит из. Это та же модель, на которой работают многие спам-фильтры. Для хорошего знакомства с алгоритмами машинного обучения существует приложение под названием Weka , которое реализует ряд этих алгоритмов и предоставляет вам графический интерфейс для игры с ними. Затем вы можете проверить производительность модели машинного обучения на основе ошибок, допущенных при попытке классифицировать тестовый корпус с помощью этой модели.
Примените этот алгоритм машинного обучения к своим сообщениям пользователей . Для каждого сообщения пользователя разделите сообщение на предложения и затем классифицируйте их, используя модель машинного обучения.
Так что да, если вы серьезно относитесь к этому, то это достижимо - даже без прошлого опыта в компьютерной лингвистике. Это потребует значительных усилий, но даже с использованием текстовых моделей можно добиться хороших результатов.
Если вам нужна дополнительная помощь, не стесняйтесь обращаться ко мне - я всегда рад помочь другим, интересующимся НЛП =]
Маленькие заметки -
Изменить
Я только что обнаружил LingPipe, который на самом деле имеет учебник по анализу настроений с использованием корпуса Полярности настроений Бо Пана и Лилиан Ли, о котором я говорил. Если вы используете Java, это может быть отличным инструментом, и даже если вы не используете его, он проходит через все шаги, которые я обсуждал выше.
Править
Я только что обнаружил LingPipe, в котором на самом деле есть учебник по анализу настроений с использованием корпуса Полярности настроений Бо Панга и Лилиан Ли, о котором я говорил. Если вы используете Java, это может быть отличным инструментом, и даже если вы не используете его, он проходит через все шаги, которые я обсуждал выше.
Править
Я только что обнаружил LingPipe, в котором на самом деле есть учебник по анализу настроений с использованием корпуса Полярности настроений Бо Панга и Лилиан Ли, о котором я говорил. Если вы используете Java, это может быть отличным инструментом, и даже если вы не используете его, он проходит через все шаги, которые я обсуждал выше.
I can't believe I'm taking this seriously... assuming a one-dimensional mood space:
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.
Несомненно, можно судить о настроении пользователя по набранному им тексту, но это было бы нетривиально. Вещи, которые я могу придумать:
Вы можете захотеть посмотрите Достижения в области анализа письменного текста или даже Определение настроения для блога путем объединения нескольких источников доказательств .
Наконец, стоит отметить, что письменный текст обычно воспринимается как более негативный чем есть на самом деле. Это обычная проблема с электронной почтой в компаниях, как один пример.
Моя память не очень хороша по этому вопросу, но я думаю, что видел некоторые исследования о грамматическая структура текста и общий тон. Это может быть так же просто, как более короткие слова и слова для выражения эмоций (ну, ругательства довольно очевидны).
Править : Я заметил, что у первого ответившего был в основном похожий пост. Действительно, может существовать серьезное представление о более коротких предложениях.
Анализ настроения и поведения - очень серьезная наука. Несмотря на другие насмешливые ответы на этот вопрос, правоохранительные органы годами занимаются категоризацией настроений. Использование в компьютерах, о которых я слышал, обычно было более контекстным (информация о времени, шаблон голоса, скорость переключения каналов). Я думаю, что вы могли бы - с некоторым успехом - определить, находится ли пользователь в определенном настроении, обучив нейронную сеть с образцами из двух известных групп: злой и не злой. Удачи в ваших усилиях.
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.
Я согласен с 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 ). Обнаружение эмоций может быть основано на комбинации сигналов от речи и модальности визуального ввода.Я думаю, мой алгоритм довольно прост, но почему бы не вычислить smilics через текст :) vs: (
Очевидно, что текст ":) :) :) :)" разрешается счастливому пользователю, а ":( :( :(" "обязательно превращается в грустного. Наслаждайтесь!
Если вы поддерживаете шрифты, жирный красный текст, вероятно, рассердит пользователя. Зеленые тексты обычного размера с картинками в виде бабочек.
Думаю, подойдет нечеткая логика. В любом случае будет довольно легко начать с нескольких правил определения настроения пользователя, а затем расширить и объединить «движок» с более точными и сложными.