CLASSIFICATION AND METHODS FOR CREATING CHATBOT
APPLICATIONS Urayev D.A. (Republic of Belarus) Email: Urayev564@scientifictext.ru
Urayev Denis Aleskeyevich — Master, INFORMATION TECHONLOGY SOFTWARE DEPARTMENT, BELARUSIAN STATE UNIVERSITY OF INFORMATICS AND RADIOELECTRONICS, MINSK, REPUBLIC OF BELARUS
Abstract: the article analyzes various methods for classifying chatbot applications depending on the level considered. It also analyzes the methods of creating chat bot applications, their main parts and their relationship. This area is relatively young and is gaining more and more popularity in areas such as ecommerce services, call centers, and the gaming industry. Therefore, the topic is relevant, international and uniform approaches to classification and creation methods have not yet been developed. Keywords: chat bots, process automation, creation methods, chat bots classification.
КЛАССИФИКАЦИЯ И МЕТОДЫ СОЗДАНИЯ ЧАТ-БОТ ПРИЛОЖЕНИЙ Ураев Д.А. (Республика Беларусь)
Ураев Денис Алексеевич — магистрант, кафедра программного обеспечения информационных технологий, Белорусский государственный университет информатики и радиоэлектроники, г. Минск, Республика Беларусь
Аннотация: в статье анализируются различные способы классификации чат-бот приложений в зависимости от рассматриваемого уровня. Также проанализированы методы создания чат-бот приложений, их основные части и их взаимосвязь. Данное направление является относительно молодым и набирает всё большую популярность в таких областях, как сервисы электронной коммерции, колл-центры, игровая индустрия. Поэтому тема является актуальной, международные и единые подходы в классификации и в методах создания еще не выработаны.
Ключевые слова: чат-боты, автоматизация процессов, методы создания, классификация чат-ботов.
Чат-бот - это программа-собеседник, имитирующая человеческое общение при помощи текста или голоса. Чат-боты помогают автоматизировать задачи, работая по заданному алгоритму. Они ведут диалог с пользователем, выполняя его просьбы, отвечая на запросы или развлекая своими ответами. Первые программы, имитирующие общение людей, появились в далёком 1966 году. Виртуальный собеседник Elisa достаточно убедительно пародировал диалог с психотерапевтом. С ростом популярности мессенджеров в 2010-х чат-боты обрели новую жизнь. Большинство работает на платформах популярных мессенджеров: Facebook Messenger, Telegram, Viber, "ВКонтакте", Skype, Slack. Боты могут работать в виде отдельных приложений или быть встроенными в функционал поисковиков [1].
Чат-боты используются в таких областях, как сервисы электронной коммерции, колл-центры, игровая индустрия. Использование чат-ботов для таких целей обычно ограничено узкой специализацией, и они не могут быть использованы для широкого спектра общения с человеком.
Различные компании имеют различное видение в том, как классифицировать чат-ботов. Однако можно выделить 2 вида классификации: бизнес-классификация чат-бот приложений и классификация чат-бот приложений по техническому типу.
Диаграмма бизнес-классификации чат-ботов приведена на рисунке 1.
Разговорные чат-боты
г Бизнес- Ж Г 1 Чат-боты
классификация я ассистенты
Q&A чат-боты
Рис. 1. Бизнес-классификация чат-бот приложений
Рассмотрим каждый из типов подробнее:
1. Разговорные чат-боты. Созданы для общения наподобие разговора с человеком, не имеют конкретной цели.
2. Чат-боты ассистенты. Имеют конкретную заранее определённую цель. Из пользовательских ответов извлекаются данные, которые необходимы для достижения этих целей. Могу служить заменой или помощниками (ассистентами) в заполнении Web-форм, таких как получение банковской выписки, оформление ипотеки online.
3. Q&A (questions and answers). Чат-боты созданные давать простые ответы по принципе 1 вопрос - 1 ответ. Могут служить заменой FAQ (frequently asked questions) разделов различных сайтов.
Технические типы чат-бот приложений представлены на рисунке 2.
Основанные на бизнес-правилах
Техническая-классификация
Основанные на искусственом интелекте
Гибридные
Рис. 2. Технические типы чат-ботов
Рассмотрим каждый из типов подробнее:
1. Основанные на бизнес-правилах. Имеют дерево-подобную структура разговора. Разговор с пользователем идёт по определённому пути, который был заранее предопределён разработчиком. Пользователь, как главный герой чата, принимает решения в таком разговоре, но никогда не может отойти от заранее определённого пути. Обычно чат-боты такого типа избегают вопросы, требующих ответов в свободной форме, а вместо этого содержат большое количество кнопок как альтернатива.
2. Основанные на искусственном интеллекте. Такие чат-боты построены полностью на использовании искусственного интеллекта (МЬР, N1/0, NN и т.д.). Как противоположность основанным на бизнес-правилах чат-ботах, не имеют заранее определённого пути разговора. Вместо этого, путь разговора определён неявным образом на основе тренировочных данных, использованных для обучения модели машинного обучения. Какой вопрос спросить и что ответить, чат-бот решает на основе прошлых диалогов, использованных в обучении. Это приводит нас к основному минусу ИИ чат-ботов - они требуют огромных наборов данных для того, чтобы начать говорить «умно». На данный момент существуют только прототипы таких чат-ботов.
3. Гибридные. Гибридные чат-боты - это комбинация чат-ботов первых двух типов. Чат-боты такого типа ведут разговор с пользователем по заранее определённому пути, но использует ИИ для
распознавания пользовательских намерений, а также для извлечения ценных данных из пользовательских сообщений (ФИО, дата, период и т.д.). Данный тип чат-ботов самый широко-используемый в коммерческих приложениях.
Кратко схему взаимодействия пользователя и чат-бота можно представить следующим образом.
Первоначально пользователь адресует свой запрос в какой-либо из доступных ему каналов. За запросом стоит некое намерение, интент, т.е. желание получить ответ на вопрос, получить услугу, товар или какой-либо контент, например, музыку или видео. В качестве каналов могут выступать умные устройства, ассистенты, встроенные в устройства или мобильные телефоны, привычный звонок на номер телефона, мессенджеры или вебчаты.
Далее, может потребоваться дополнительная обработка или конвертация формата сообщения. Диалоговые платформы всегда работают с текстом, в то время как ряд каналов предполагают голосовое общение. За эту конвертацию отвечают платформы ASR (распознавание речи), TTS (синтез речи), системы интеграции с телефонией. Отдельные каналы, например, мессенджеры или ассистент Алиса в мобильном телефоне, позволяют совмещать визуальные интерактивные элементы (например, кнопки или карточки товаров, на которые можно нажать) и естественный язык. Для работы с ними необходима интеграция с соответствующими API.
Запрос, преобразованный в текст, поступает в диалоговую платформу. Ее задача - понять смысл сказанного, уловить пользовательский интент и эффективно обработать его, отдав результат. Для этого диалоговые платформы используют множество технологий, таких как нормализация текста, морфологический анализ, анализ семантической близости сказанного, ранжирование гипотез, выделение именованных сущностей и, наконец, формирование запросов уже на машинном языке, через совокупность API к внешним базам данных и информационным системам. Примером таких внешних систем может быть 1С, Битрикс24, SAP, CRM системы, базы контента или сервисы, наподобие Deezer или Google Play Music. Получив данные, диалоговая платформа генерирует ответ -текст, голосовое сообщение (с помощью TTS), включает стриминг контента или уведомляет о совершенном действии (например, размещении заказа в электронном магазине). Если в первоначальном запросе данных для принятия решений по дальнейшему действию недостаточно, платформа NLU инициирует уточняющий диалог, чтобы получить все недостающие параметры и снять неопределенность.
Основной цикл обработки запроса клиента состоит из следующих событий и действий:
1. Система получает запрос клиента в модуль управления диалогом - DialogManager.
2. DialogManager загружает контекст диалога из базы данных.
3. Запрос клиента (вместе с контекстом) отправляется на обработку в NLU-модуль, в результате чего определяется интент (намерение) клиента и его параметры. В случае обработки не текстовых событий (кнопки и т.п.) этот шаг пропускается.
4. На основе сценария диалога и извлечённых данных, DialogManager определяет следующее наиболее подходящее состояние (блок, экран, страницу диалога), наиболее полно соответствующее высказыванию клиента.
5. Выполнение бизнес-логики (скриптов) в соответствии с заданным сценарием чат-бота.
6. Вызов внешних инфосистем, если таковые запрограммированы в бизнес-логике.
7. Генерация текстового ответа с использованием макроподстановок и функций согласования слов на естественном языке.
8. Отправка ответа клиенту.
Важной частью процесса работы системы является управление ходом диалога (DialogManager), в рамках которого определяется общий контекст сказанного и связь с предыдущими и последующими высказываниями. Благодаря этому процессу та или иная фраза будет восприниматься по-разному, в зависимости от того, в какой момент она сказана, кто ее сказал, какие дополнительные данные были переданы в систему вместе с запросом (например, местоположение пользователя). В некоторых системах DialogManager так же управляет наполнением контекста фразы необходимыми данными (slot filling), которые могут быть получены либо из фразы клиента, либо из контекста предыдущих фраз, либо явно запрошены у клиента.
Наиболее сложным этапом работы диалоговой платформы является процесс разбора высказывания клиента. Данный процесс называется NLU - Natural Language Understanding, понимание смысла запроса.
В самом упрощённом виде, процесс «понимания» языка состоит из следующих крупных этапов:
- Предварительная обработка текста,
- Классификация запроса, соотнесение с одним из классов, известных системе,
- Извлечение параметров запроса.
И именно в этом месте, наверное, кроются наиболее значительные различия в платформах различных поставщиков. Кто-то использует глубокие нейронные сети, кому-то хватает регулярных выражений или формальных грамматик, кто-то полагается на сторонние сервисы.
Архитектура системы чат-бот приложения может представлять следующий подход к обработке запроса на естественном языке:
1. Разбиение текста на слова.
2. Исправление опечаток (при этом сохраняются оба варианта текста).
3. Пополнение текста морфологическими признаками - определение нормальной формы (леммы) слов и частей речи (граммем).
4. Расширение запроса с помощью словарей синонимов.
5. Расширение запроса информацией об «информационной значимости» (весов) отдельных слов.
6. Расширение запроса деревом синтаксического разбора.
7. Расширение запроса результатами разрешения кореферентности (разрешение местоимений).
8. Определение именованных сущностей.
9. Классификация запроса с помощью двух подходов (могут быть использованы параллельно): на основе примеров фраз и алгоритмов на базе машинного обучения и на основе формальных правил (шаблонов).
10. Ранжирование гипотез классификации в соответствии с текущим контекстом беседы.
11. Заполнение информационных «слотов» — параметров запроса, переданных во фразе пользователя.
Список литературы / References
1. Антонов С. Что такое чат-боты и зачем они нужны? // Inform Бюро [электронный ресурс]. 2018.
[Электронный ресурс]. Режим доступа: https://informburo.kz/cards/chto-takoe-chat-boty-i-zachem-om-
nuzhny.html/ (дата обращения: 04.11.2019).