Метод определения эмоционального состояния человека при помощи чат-бота
Введение
В настоящее время вся жизнедеятельность человека связана с мобильными технологиями, в частности, смартфонами и мессенджерами. Данная информация подтверждена множеством статистических исследований [1, 2]. Большинство организаций обязаны в своей работе придерживаться данных тенденций. Например, достаточно часто необходимо учитывать обязанность вести деловую переписку или требования к поддержанию связи с сотрудниками, находящимися на дистанционной работе. Поэтому необходимо максимально эффективно расходовать трудовые ресурсы и высвобождать время сотрудников за счет автоматизации их работы. Для достижения данной цели, эффективнее всего использовать интеллектуальные системы, такие, как чат-боты.
Чат-бот – это программа-собеседник [3]. Такая программа, чаще всего, направлена на поиск информации или на ведение элементарных диалогов с пользователем/клиентом организации [4]. Её цель – максимально «разгрузить» сотрудников, автоматизировать их работу в тех вопросах, в которых это возможно. За счет узкой направленности, многие чат-боты обладают ограниченным набором словарного запаса бота (комплект вопросов и ответов), что делает их не универсальными. Это является первой проблемой ботов. Вторая проблема в том, что даже те чат-боты, которые разработаны для сферы услуг, преимущественно, не умеют определять эмоции текста собеседника. Такой робот не понимает состояния своего собеседника и совершенно не распознаёт, в какой момент человек может оказаться расстроен, начинает сердиться или раздражаться. А люди больше не захотят общаться с ботом, если его ответы/вопросы будут вызывать отрицательные эмоции. Для достижения максимально положительного восприятия приложения лучше всего использовать визуальное сопровождение. Технология дополненной реальности очень хорошо подходит для решения данного вопроса: эффект от взаимодействия с 3Dмоделью дополненной реальности вызывает интерес и положительные эмоции.
Целью работы является повышение эффективности коммуникации между человеком и виртуальным помощником.
Для достижения данной цели, авторами предложен метод, позволяющий определять эмоциональное состояние человека путем сочетания чат-бота и технологии дополненной реальности. Для этого разработано приложение, которое анализирует диалог, определяет тональность текста и подбирает для ответа соответствующую эмоциональную 3D-модель.
Актуальность темы подтверждается востребованностью используемых технологий и универсальностью предлагаемого решения.
Новизна работы заключается в разработке методов, объединяющих технологию дополненной реальности и виртуальных помощников, а также в подходе к определению эмоциональной составляющей текста путём разработки метода многокритериального анализа.
Предлагаемый метод обработки сообщений для определения эмоционального состояния диалога
Для достижения поставленной цели, необходимо решить задачи:
1) анализ предметной области; 
2) разработка метода обработки сообщений; 
3)  проектирование и разработка приложения, объединяющего технологии AR и чат-ботов.
Анализ предметной области описан во введении данной статьи и подтверждает актуальность работы.
Для решения 2 и 3 задач необходимо:
– осуществить выбор вида чат-бота (простой или обучающийся);
– выбрать средства реализации чат-бота;
– создать алгоритм обработки сообщений пользователей;
– спроектировать схему, объединяющую работу чат-бота и дополненной реальности;
– разработать приложения, учитывающего описанные требования. 
Авторами неоднократно были описаны виды чат-ботов [4], поэтому стоит отметить то, что для решения задачи простые боты не подходят ввиду их ограниченности. Определение эмоций – сложная задача, которую сможет решить только сложный, обучающийся чат-бот [5].
Наиболее подходящим инструментом для разработки обучающегося чат-бота является нейронная сеть [6, 7].
Существующие решения по определению тональности текста имеют недостаток ввиду того, что производят анализ процентного соотношения позитивных и негативных показателей [8]. Для больших текстов сложности данная проблема не вызовет. Но для небольших диалогов, следующих друг за другом, необходимо проводить анализ текста по нескольким критериям (многокритериальный), необходимо анализировать сообщения группами, друг за другом.
Таким образом, необходимо проводить не только нейросетевой анализ тональности каждого сообщения, но и анализ групп сообщений. Подобный анализ позволит учитывать изменения в ответах пользователя.
Для последовательного анализа сообщений и автоматической группировки их с целью анализа групп сообщений предложен алгоритм анализа и группировки, основанный на механизме нейронных сетей и их последовательного применения. Общая модель анализа диалога представлена на рис. 1.
Рис. 1. – Общая модель анализ диалога
Из описанной модели видно, что анализ можно представить в виде последовательной обработки сообщений.
На рис. 2 приведён общий алгоритм работы метода.
Пользовательский ввод обрабатывается на сервере (REST Webприложение на Django/Python) и передаётся в модуль чат-бота, где и происходит дальнейшая обработка смысла и эмоциональной окраски сообщений пользователя, а также рассчитывается реакция ответа бота.
Рис. 2. – Общий алгоритм работы метода
Общий алгоритм работы метода, представленного на рисунке 2:
1) Предобработка входящего сообщения, выделение ключевых слов и связей; 
2) Оценка целостности определения эмоции – выявление – достаточно ли данного сообщения для определения эмоции с учетом критериев; 
3) Считывание следующего сообщения и повторение шагов 1 и 2 для следующего сообщения; 
4) Связывание сообщений на основе времени отправки сообщения и на основе оценок приближения к эмоциональным критериям; 
5) Оценка текста сообщения и построение ответа; 
6) Проверка приближения к эмоциональному критерию – какой показатель выбирается для группы сообщений. Каждое последующее сообщение позволяет определить смысловую завершенность мысли пользователя и начале следующей; 
7) При принятии решения о завершении обработки одной мысли пользователя на основе группы сообщений формируется метаинформация для описания эмоции и сохранении времени эмоции и оценок по группе эмоциональных критериев для конкретного пользователя;
8) На основе оценок групп сообщений формируется общий набор эмоций за определенный период для последующей оценки - на этом этапе автоматически определяется средняя продолжительность переписки пользователя (на основе предыдущих переписок пользователя) для того, чтобы сформировать метаинформацию с определенными эмоциями за время переписки.
Существует множество подходов к определению эмоций текста. Наиболее распространённой считается модель Экмана, выделившего 6 базовых эмоций (гнев, отвращение, страх, счастье, печаль и удивление). Но авторами выбрана модель Роберта Плутчика, которая называется «Колесо эмоций» (рисунок 3). В данной модели выделены не только базовые эмоции, но и более сильные, а также менее сильные эмоции, схожие по происхождению, а также собраны по парам противоположности. Таким образом, данная модель точнее отражает эмоциональные состояния, а реакция робота должна ощущаться более живой.
Любая нейронная сеть должна проходить этап обучения [9]. Обучение нейросети проводится в два этапа: с учителем и автоматически, по разработанному алгоритму.
Рис. 3. – «Колесо эмоций» Плутчика
Для оценки ответа бота авторами анализируются критерии оценки сообщений, например валентность (положительные или отрицательные эмоции). Для определения данного критерия была разработана следующая формула: [формула], где Kв – коэффициент валентности, wi – вес эмоции, Р-радость, У-удивление, Пл-печаль, Г-гнев,От-отвращение, Пр-презрение, С-страх
Одним из ключевых моментов разрабатываемого метода является формирование унифицированного интерфейса для постобработки метаинформации об эмоциональном состоянии пользователя.
Для работы с дополненной реальностью использована, наиболее подходящая для данной задачи, среда Unity 3D [10] с фреймоврком дополненной реальности AR Vuforia. Разработанная 3D-модель представлена на рис. 4.
Рис. 4. – 3D-модель приложения
Заключение
Описанный метод объединяет технологии интеллектуальных чат-ботов и визуализации данных путем использования технологии дополненной реальности. Метод позволяет определять тональность сообщений и формировать ответ пользователю в автоматическом режиме в зависимости от просчитанных показателей. Работа направлена на повышение эффективности коммуникации между человеком и чат-ботом, которая достигается путем автоматизации определения тональности текста сообщений, а также визуального сопровождения диалога при помощи технологии AR. 