Имитация беседы
Как уже упоминалось ранее, чат-боты — это упрощенные версии диалоговых систем. Диалоговые системы отличаются многоступенчатой архитектурой, в то время как в чат-ботах часть модулей становится триви- альной.
На первом этапе работы чат-бот системы может иметь место подобие упрощенной системы понимания языка: разбиение высказываний на пред- ложения, исправление опечаток, замена слов на стандартные. После того, как текст преобразован в более понятную структуру, производится его анализ с помощью набора правил, цель которого заключается в нахожде- нии или генерировании реакции бота путем определения нужного прави- ла. Эта реакция может представлять собой как словесный ответ пользова-
телю, так и некоторое внеязыковое действие (для чат-ботов, совмещенных с системой голосового управления, например, мобильных ассистентов и систем типа «умный дом»), или действие, направленное на получение оп- ределенной реакции от пользователя — например, для чат-ботов, исполь- зуемых в интерактивных системах обучения.
Важная область применения чат-ботов — это виртуальные ассистен- ты, разработанные для мобильных приложений. Чаще всего, такие про- граммы сочетают в себе развлекательную функцию с возможностями го- лосового управления устройством. Наиболее известной является система Siri, разработанная компанией Apple. Она положила начало целому ряду похожих приложений и теперь каждая уважающая себя крупная техноло- гическая компания старается выпустить свой улучшенный вариант Siri. Существует множество приложений под Android, которые предлагают по- мощь виртуального ассистента: Maluuba, Robin, Iris, Vlingo, Skyvi. Не ме- нее известны приложения, разработанные другими крупными компаниями: Voice Mate (LG), S-Voice (Samsung), Google Now, Cortana (Microsoft). Наи- большего внимания заслуживает последняя диалоговая система — Cortana, поскольку она обладает индивидуальностью, и разработчики потратили долгое время, чтобы приблизить ее к живым секретарям.
Самой простой технологией, используемой для анализа входящих текстов, является применение шаблонов (pattern matching), которые ис- пользуются практически во всех существующих системах.
Количество предложений, которые может сформулировать пользова- тель, очень велико, потому подобные системы лучше всего работают в ограниченных областях знания.
Сегодня большинство чат-ботов в своей основе используют специ- альный язык — Artificial Intelligence Markup Language (AIML). Это вариа- ция XML, разработанная Ричардом Уэллесом и мировым сообществом программистов между 1995 and 2002 годами. AIML лежал в основе широ- ко известного чат-бота под названием «A.L.I.C.E.» («Artificial Linguistic Internet Computer Entity»), который трижды (в 2000, 2001, 2004 годах) за- воёвывал премию Лёбнера.
AIML позволяет определять правила для анализа текста и генерации ответов. Наиболее важными элементами AIML являются:
: тэг, который начинает и заканчивает AIML документ;
: тэг обозначающий «элемент знаний» в базе знаний;
: содержит простой шаблон, который может быть сопостав- лен с тем, что пользователь может сказать чат-боту;
: содержит ответ, который генерирует система.
Существуют также еще 20 тэгов, которые используются для даль- нейшего уточнения шаблонов и для сохранения контекста беседы.
Рассмотрим простой пример вопросно-ответной структуры:
WHAT ARE YOU
I am the latest result in artificial intelligence, which can reproduce the capabilities of the human brain with greater speed and accuracy.
Весь текст между и является категорией. Кате- гория может содержать один шаблон (pattern) и один ответ (template). Данный шаблон (pattern) сможет узнать только точную фразу «what are you» (заглавные буквы используются исключительно в шаблоне). Соот- ветствующий ответ будет показан пользователю, если данный шаблон бу- дет идентичен входному тексту.
В данном примере правила расширены за счет использования специ- альных символов, которые позволяют ставить в соответствие («узнавать») большее количество предложений. Например, звездочка * используется для обозначения одного или нескольких заранее неопределенных слов: модифицированное правило со звездочкой
* WHAT ARE YOU *
«узнает» фразу «WHAT ARE YOU» и все те предложения, в ко- торых это предложение является подмножеством. Например, следующие предложения будут также покрыты данным шаблоном:
Таким образом, разработчики AIML-правил должны соблюдать ба- ланс между желанием сделать правило достаточно общим, чтобы оно мог- ло «узнать» большое количество текста, и стремлением сохранить правило достаточно точным, чтобы оно не приводило к неточным ответам.
Набор AIML правил A.L.I.C.E. находится в широком доступе и рас- пространяется под GNU GPL лицензией, а большинство интерпретаторов AIML предлагаются бесплатно или с open source лицензией, поэтому было создано большое количество «Alicebot клонов». Эти чат-боты дополняли изначальный набор правил, и теперь в Интернете можно найти правила для чат-ботов на нескольких языках. Кроме того, AIML интерпретаторы
написаны на многих других языках, включая Java, Ruby, Python, C++ and C#.
Полуформальная спецификация и W3C XML схема для AIML суще- ствует с 2013 года, и A.L.I.C.E foundation работает над новой версией AIML 2.0.
Доступность ресурсов и легкость языка AIML объясняют популяр- ность чат-ботов, и то, почему многие компании предпочитают использо- вать чат-боты, а не тратить годы разработок на более совершенные диало- говые системы.
Создатели интерактивной игры Façade с нелинейным сюжетом, вы- брали путь, отличный от стандартного использования языка AIML. В их системе входящие фразы пользователя не соотносятся напрямую с реак- цией бота, а проецируются на дискурсивные акты, такие как согласие, несогласие, критика и флирт, каждый из которых изменяет состояние пер- сонажей внутри системы: например, если пользователь критикует одного из участников разговора, это изменяет и состояние другого персонажа.
Создатели Façade уходят от идеи полного понимания входящей фразы к тому, чтобы понять, к какому из 50 актов дискурса она относится, и вы- дать соответствующую реакцию системы — при этом в случае ошибки пользователь, зачастую ее не замечает.
Дискурс в игре построен на основе так называемых битов (beats), за- дающих контекст определенного участка разговора и определяющих по- ведение персонажей и то, как они интерпретируют слова пользователя. Примерами таких битов являются, например, приветствие или спор между персонажами
Достарыңызбен бөлісу: |