Обзор технологий создания чат-ботов

Аннотация

Д.А. Потапов. Обзор технологий создания чат-ботов В 2016 году в области искусственного интеллекта произошёл резкий рост интереса к умным собеседникам, сленговое название которых чат-бот. Рост обусловлен двумя факторами: рост спроса со стороны бизнес-заказчиков и появлением достаточного количества испытанных инструментов для создания чат-ботов. При чём оба фактора повышаются циклически в зависимости друг от друга: чем больше появляется инструментов создания чат ботов, тем дешевле обходится их разработка и внедрение, и тем больше охват аудитории, что ведёт к повышению интереса бизнес-заказчиков, п повышение кол-ва бизнес-заказчиков ведёт к повышению объёма инвестиций и как следствие увеличению опыта разработчиков и внедренцев. В данной статье будет произведён обзор технологий работы чат ботов и инструментов их реализации, актуальных на март 2017 г.

Архитектура

Верхнеуровнево архитектуру чатбота можно представить поделить на части:

  • интерфейс взаимодействия с пользователями;
  • система обработки входящего текста;
  • система поиска ответа;
  • система самоконтроля.

Описанная архитектура является наиболее популярной и эффективной, однако возможны и другие варианты Так например эксперементируются чат-боты, производящие морфологический анализ текста, в таком случае система обработки текста и система поиска ответа являются одним блоком системы, не имеющим чётких границ перехода.

Инструменты

На рынке разнообразие инструментов для разработки чатбота определяется потребностями бизнеса. Инструменты можно поделить на 3 явные категории:

  • комплексное решение – платформа, позволяющая полностью создать чатбота;
  • модуль – отвечает за конкретную функциональность;
  • средства разработки – набор методов и технологий програмирования.

Комплексные решения

Примеры комлексных решений:

  • Messenger Platform
  • Chatfuel
  • Smooch
  • Botsify
  • Beep Boop
  • Pandorabots
  • Microsoft Bot Framework
  • Motion AI
  • Dexter
  • Morph.ai
  • Flow XO
  • API.AI
  • Manybot
  • Recast
  • Meya.ai
  • Wit.ai

Все перечисленные инструменты позволяют произвести настройки программы из пользовательского web-интерфейса, между собой они разнятся набором технологий с помощью которых реализуется бот и условиями использования (1).

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

Модули

Модули редко носят коммерческий характер, т.к. их целевая аудитория исследователи и разработчики продуктов с открытым программным кодом. Те модули, которые разрабатываются внутри компаний предоставляющих платформы по созданию/поддержке чат-бота, остаются внутри компаний.

В частности можно найти конвертированные наборы данных для машинного обучения и программный код реализованных сетей для машинного обучения (2). Однако эти модули работают с англоязычным текстом: классифицируют слова, предложения, выделяют токены, формируют белые и чёрные списки слов. Производятся успешные испытания новых алгоритмов и методов машинного обучения тоже почти всегда на английском языке.

Иностранный опыт можно переносить на русский язык, для успешного переноса очень важно иметь качественный набор обучающих данных. Но качественные обучающие даннные на русском языке получить сложно, качество определяется естественностью и современностью языка. Так например литературный текст великих отечественных писателей будет отличаться от современной формы общения людей, таким образом он будет естественным, но не современным. Обратный результат можно получить при обучении на результатах диалогов пользователей соц. сетей и форумов – русский язык позволяет использовать большое количество сложных речевых констукций, например метонимы, которые повлияют на естественность языка.

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

Средства разработки

Самый рациональный способоб реализации чатбота – это применение машинного оучения. Машинное обучение применяется на всех шагах работы бота:

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

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

Список использованной литературы

  • Sabeer Shaikh, 9 Tools To Create Your Own Chatbots. Codecondo, http://codecondo.com/9-tools-tocreate-your-own-chatbots/, October 25, 2016
  • Пожарский Александр, Реализация классификации текста свёрточной сетью на keras, https://habrahabr.ru/post/315118/, 13 ноября 2016