Автономный чат бот на основе правил

Взаимодействие человека с программами, которое характеризует диалог между человеком и компьютером, набирает силу в технике взаимодействия с различными «умными» устройствами. Этот тип программы называется чат-бот. В этой статье представлен обзор методов, используемых для создания чат-бота. Авторы обсуждают сходства и различия в методах реализации чат-ботов и анализируют наиболее используемые языки с открытым исходным кодом, используемые при разработке чат-ботов (AIML и ChatScript). Цель этого документа — дать технический обзор этих двух языков и сравнить их по следующим параметрам: простота реализации и сложность языка, доступ к внешним ресурсам, получение знаний, ссылки на индивидуальные онтологии и возможность создания чата. -бот для мобильного приложения.
 
Ключевые слова: AIML, ChatScript, чат-бот, NLP, онтология

AIML расшифровывается как язык разметки искусственного интеллекта . AIML была разработана сообществом свободного программного обеспечения Alicebot и доктором Ричардом С. Уоллесом в 1995-2000 гг. AIML используется для создания или настройки Alicebot — приложения для чата, основанного на бесплатном программном обеспечении ALICE (Artificial Linguistic Internet Computer Entity).

Теги AIML:

В AIML обычно используется около 14 тегов. Есть намного больше и есть различия в AIML 1.0 и 2.0, пожалуйста, проверьте версию, прежде чем использовать другие специальные теги.

Основные теги:

  1. <aiml>: определяет начало и конец документа AIML
  2. <category>: определяет знания в базе знаний.
  3. <pattern>: определяет шаблон, соответствующий тому, что может ввести пользователь.
  4. <template>: определяет реакцию Алисбот на ввод пользователя.

Результат:

Больше тегов:

  1. <star>: используется для сопоставления с подстановочными символами * в теге <pattern>.
  2. <srai>: многоцелевой тег, используемый для вызова / сопоставления с другими категориями.
  3. <random>: используется функция random для получения случайных ответов.
  4. <li>: используется для представления нескольких ответов.
  5. <set>: используется для установки значения в переменной AIML.
  6. <get>: используется для получения значения, хранящегося в переменной AIML.
  7. <that>: используется для ответа в зависимости от контекста.
  8. <topic>: Используется для хранения контекста, чтобы можно было продолжить последующий разговор на основе этого контекста.
  9. <think>: используется для хранения переменной без уведомления пользователя.
  10. <condition>: похоже на операторы switch в языке программирования. Это помогает боту отвечать, чтобы соответствовать входу.

Для более подробного описания тегов нажмите здесьТеперь давайте перейдем к фактической реализации.

Шаги по созданию чат — бота на основе правил AIML :

  1. Установите модули AIML.
  2. Создать стандартный файл запуска
  3. Создание файлов AIML
  4. Включая случайные ответы в файлах AIML.
  5. Напишите программу на python с модулем мозга для более быстрого ответа.

1. Установите модули AIML:

2. Создание стандартного файла запуска:

Стандартным является создание файла запуска с именем std-startup.xml в качестве основной точки входа для загрузки файлов AIML. В этом случае мы создадим базовый файл, который соответствует одному шаблону и выполняет одно действие. Мы хотим сопоставить целевую нагрузку паттерна b и заставить ее загружать наш мозг в ответ.

3. Создание файлов AIML:

Выше мы создали файл AIML, который обрабатывает только один шаблон, загрузите цель b . Когда мы введем эту команду боту , он попытается загрузить basic_chat.aiml . Это не сработает, если мы на самом деле не создадим это. Вот что вы можете поместить в basic_chat.aiml . Мы сопоставим две основные модели и ответим.

4. Включение случайных ответов в файл AIML:

Вы также можете добавить случайные ответы, как это. Этот ответ будет случайным образом, когда он получит сообщение, которое начинается с «Один раз я». * Является подстановочным , который соответствует любому. Как я хотел бы назвать это дает более красочные ответы

Написание собственных файлов AIML может быть забавным, но это может быть много работы. Я думаю, что ему нужно около 10 000 паттернов, прежде чем он станет реалистичным. Поэтому не стесняйтесь использовать файлы AIML, доступные онлайн.

5. Проект и исходный код:

Он построен с использованием Python с flask как framework и AIML

Вот ссылка на репозиторий GitHub, где мы можем получить доступ к коду автономного чат-бота. https://github.com/chethangn/ChatbotAIML

Должен ли я действительно использовать AIML:

Последняя версия AIML была выпущена 6 лет назад. Существует проект спецификации v2, который был выпущен в 2013 году, но нет теперь новостей с тех пор.

ВВЕДЕНИЕ
В последние несколько лет наблюдается уникальный интерес к чат-ботам. Бот Microsoft «Tay» и решение Facebook интегрировать возможности чат-ботов в Messenger ускорили разработку многочисленных новых платформ чат-ботов. Некоторые из них:
Платформа Microsoft Bot — Microsoft объявила, что она предоставляет возможности чат-ботов в Skype, и запустила конструктор ботов для Node.js, фреймворк для создания ваших собственных ботов.
ChatScript — выпущен в 2011 году как язык для чат-ботов нового поколения. Движок ChatSript выиграл приз Лебнера четыре раза. Он предоставляет среду C ++ с открытым исходным кодом для разработки, создания и использования чат-ботов.
Pandorabots — это онлайн-сервис, который позволяет разработчикам создавать, размещать и развертывать чат-ботов. Pandorabots использует AIML (язык разметки искусственного интеллекта), который является открытым стандартом для написания чат-ботов и инфраструктуры Java с открытым исходным кодом.
Facebook Bots for Messenger — Facebook запустил этот инструмент, который позволяет разработчикам и компаниям создавать чат-ботов для своей платформы Messenger.
Rebot.me — это простой сервис, позволяющий пользователям создавать, обучать и развертывать чат-ботов на своих веб-сайтах.
Imperson — Disney Accelerator 2015, Imperson, созданный генератор чат-ботов для создания, развертывания и управления чат-ботами через Facebook, Skype, Twitter.
Технология чат-ботов не нова. Чат-боты появились почти десять лет назад, когда были определены их дизайн и метод использования. Поэтому разумно задать вопрос: «Почему в последнее время появился ряд инициатив по созданию чат-бота?»
Ответ следующий: технология изменена и развита. Компьютеры быстрее, а смартфоны доступны каждому. Многочисленные интернет-сервисы обеспечивают повсеместное соединение людей, информации и программного обеспечения. Большое количество человеческих знаний собрано и доступно. В связи с увеличением объема информации, методы автоматического анализа этой информации стали важной темой исследования.
Авторы [1] анализируют текущие чат-боты и утверждают, что любая машина, система или программа (чат-бот), демонстрирующие некоторые, но не все основы интеллекта, являются частично интеллектуальной системой. Поэтому чат-боты являются частично интеллектуальными системами. Более того, современный машинный интеллект в значительной степени ограничен частичной разведкой.
Возникает вопрос: «Какие темы исследований и технологии не используют нынешние чат-боты самым оптимальным образом»?
Исследования в области обработки естественного языка (NLP) достигли своего пика после широкого распространения коммерческих приложений для чат-ботов. Эти приложения chat-bot-NLP в настоящее время испытывают трудности в понимании намерений пользователей в их разнообразии синтаксиса и семантики. В чат-ботах «Понимание естественного языка» (NLU) называется единицей, в которой система извлекает значение из входного текста. НЛУ включает в себя все, что связано с пониманием машинного чтения. В приложениях чат-бота компонент NLU представляет собой способ преобразования ввода в семантическое представление.
Существует множество проектов в области онтологий, организации знаний и представления знаний. Эти инициативы направлены на применение функциональности рассуждений в движках чат-ботов. Семантические рассуждения могут вывести логические последствия из набора утвержденных фактов или аксиом. Понятие семантического мышления обобщает понятие механизма вывода, предоставляя более богатый набор механизмов для работы. Многочисленные проекты работают над организацией знаний.

Обработка естественного языка, понимание естественного языка, организация знаний и представление знаний — это то, что современные чат-боты не используют в достаточной мере для достижения наилучших результатов.
Сегодня использование чат-ботов представляет различные типы коммерческих приложений, таких как: личные помощники; Турагенты; Представители службы поддержки клиентов; Техническая поддержка; Автоматическая маршрутизация звонков. Чат-боты в этом приложении улучшены с обработкой речи.
Существует несколько технологий, доступных для создания чат-бота. Выбор между языком разметки или написания сценариев зависит от навыков, опыта и функциональности, которых вы хотите достичь.
Наша цель в этом исследовании состояла в том, чтобы определить технологию создания чат-бота, отвечающего техническим требованиям современных повсеместных вычислений. Идеальная технология должна отвечать следующим требованиям: быть основанной на платформе с открытым исходным кодом; Быть достаточно простым и простым в реализации; Чтобы иметь возможность подключаться с настроенными онтологиями и иметь поддержку сообщества свободного источника. Выбранная технология должна позволять создавать и внедрять чат-ботов на платформе Android и iOS, чтобы их можно было использовать в мобильных приложениях.
В этой статье мы проанализируем два наиболее часто используемых языка с открытым исходным кодом, используемых при разработке чат-ботов. У каждого из этих двух языков есть свои плюсы и минусы, и предпочтительный выбор определяется приложением, которое должен поддерживать чат-бот. Мы дадим технический обзор этих двух языков. Также мы обеспечим сравнение этих двух языков по следующим параметрам: простота реализации и сложность языка, доступ к внешним ресурсам, получение знаний, ссылки на настраиваемые онтологии и возможность создания чат-бота для мобильного приложения.
Работа организована следующим образом: во втором разделе описана технология чат-ботов. В третьем разделе представлен обзор AIML 1.0 и AIML 2.0. В четвертом разделе представлен обзор языка ChatScript. Пятый раздел представляет сравнение AIML и Chatscript языка. В заключительном, шестом разделе приводятся заключительные замечания.

II. ФОН
В 1950 году Алан Тьюринг опубликовал статью [2], предложив тест Тьюринга в качестве критерия интеллекта. Этот критерий оценивает способность компьютерной программы, которая в реальном времени общается с человеком, эффективно имитировать взаимодействие с человеком, достаточное для того, чтобы его можно было отличить от собеседника. Программа Джозефа Вайзенбаума «ELIZA», опубликованная в 1966 году, могла обмануть пользователей, заставив их поверить, что они разговаривают с настоящим человеком. Авторы [3] согласились с тем, что лучший способ облегчить взаимодействие человека с компьютером (HCI) — позволить пользователям «выражать свои интересы, пожелания или запросы напрямую и естественным путем, говоря, печатая и указывая».
Многочисленные архитектуры чат-ботов были разработаны с тех пор. Некоторые из них: MegaHAL [4], CONVERSE [5], ELIZABETH [6], HEXBOT [7] и ALICE.
A.L.I.C.E. (Фонд искусственного интеллекта) [8] — это искусственный лингвистический компьютерный интернет-объект, который был впервые внедрен Уоллесом в 1995 году. Знания Алисы о шаблонах разговорного английского языка хранятся в файлах AIML. AIML, или язык разметки искусственного интеллекта, является производной от расширяемой разметки
Язык (XML). Он был разработан Уоллесом и сообществом свободного программного обеспечения Alicebot с 1995 года, чтобы позволить людям вводить знания о шаблонах диалога в чат-ботов на основе A.L.I.C.E. технология программного обеспечения с открытым исходным кодом.
A.L.I.C.E. является предшественником чат-ботов третьего поколения с более продвинутыми методами распознавания образов.
Авторы [9] утверждают, что третье поколение чат-ботов основано на понятиях распознавания образов или техники сопоставления с образцом. Он применяется к моделированию на естественном языке для диалога между людьми и чат-ботами, которые следуют подходу стимул-реакция. Для этой цели моделируется набор возможных пользовательских вводов, и для каждого из этих предложений (стимулов) строятся предварительно запрограммированные ответы, которые должны быть показаны пользователю.
Чат-бот ALICE (Искусственный лингвистический интернет-компьютер) был первым, кто использовал язык и интерпретатор AIML. В ALICE технология AIML отвечала за сопоставление с образцом и связывала вводимые пользователем данные с ответом базы знаний чат-бота (KB).

III. AIML
A. AIML 1.0
По мнению автора [8], целью языка AIML является упрощение процесса моделирования диалога. Преимущества AIML — доступ к стимулу-ответу. Кроме того, AIML является языком разметки на основе XML. AIML определяет объект класса, который отвечает за моделирование моделей общения. AIML является наиболее часто используемым языком чат-ботов благодаря своей простоте, простоте изучения, простоте реализации и доступности предварительно созданных наборов AIML. Это простое слово-образец соответствия.
Робот AIML отвечает согласно связи между вопросами, заданными пользователем, и знаниями, содержащимися в файлах AIML. Разумное взаимодействие пользователей и компьютеров определяется посредством построения знаний.
 У AIML есть свои преимущества и недостатки. Вот некоторые из преимуществ: простота в освоении и реализации, простота и удобство системы диалога, использование XML для формального, машиночитаемого представления знаний.
Некоторые из недостатков: Знание представлено в качестве экземпляра AIML-файлов. Если знания создаются на основе данных, собранных из Интернета, они не будут автоматически обновляться и должны периодически обновляться. Оригинальный AIML не имеет возможности расширения.
AIML имеет сравнительно плохие схемы сопоставления, и его трудно поддерживать. Несмотря на то, что контент очень легко вводить, основная проблема заключается в большом количестве контента, который необходимо вводить вручную, чтобы создать функционального чат-бота.
В этой статье основное внимание будет уделено AIML 2.0. AIML 2.0 — это совершенно новый язык чат-ботов, который отвечает всем требованиям нового поколения чат-ботов.
B. AIML 2.0
AIML 2.0 мотивируется технологическими и социальными изменениями мобильной эры, ALICE A.I. Фонд выпустил спецификацию AIML 2.0 [10].
1) Простота реализации и сложность языка
AIML 2.0 — это попытка устранить недостатки, одновременно уравновешивая первоначальную цель — сделать язык как можно более простым. Спецификация AIML 2.0, по большей части, предназначена для обратной совместимости с AIML 1.0 и более ранними стандартами, таким образом, сохраняя простоту исходного языка.
Одним из наиболее важных улучшений в AIML 2.0 является сопоставление с образцом. В дополнение к символам подстановки _ и *, которые уже отображаются, теперь доступен символ #. Эти совпадения на 0-N словах и, таким образом, позволяют более компактное написание часто используемых правил сопоставления. Ранее, в отсутствие символов подстановки 0-N, необходимо было использовать несколько шаблонов для перехвата случаев, когда слово находится в начале или в конце предложения [10]. Наборы и карты, также представленные в версии 2.0 [11], используются для интеграции знаний из внешних файлов.
Наборы — это наборы объектов, которые построчно хранятся в виде простого текста во встроенном файле. Тег set используется для доступа к множеству по имени файла в шаблоне. В случае попадания это может быть включено в шаблон с уже известным звездным тегом. Наборы и карты имеют более высокий приоритет, чем и * при сопоставлении с образцом, но остальные операторы (включая точное попадание) имеют приоритет.
Карты содержат назначения от одного термина к другому, например, список стран и их основных городов. Особенно о наборах, есть мощная возможность определить много знаний и большое количество взаимодействий с чат-ботом в небольшом пространстве. В AIML 1.0 для достижения той же функциональности для каждой записи должна быть создана отдельная категория.
В качестве расширенной возможности вмешательства в поток управления в AIML 2.0 были введены явные циклы с тегом цикла. Синтаксис несколько нетрадиционный; По идее, это смесь Do-While-Loop и Go-ToStatement.

2) Доступ к внешним ресурсам
AIML 2.0 вводит теги <obb> — внеполосные команды для ответов устройства Virtual Assistant. Эти теги включают набор, отправку SMS, отправку электронной почты, поиск, карты и т. д. Кроме того, AIML 2.0 обеспечивает доступ к Wolfram Alpha, Trueknowledge.com, Answers.com, метеослужбе, магазинам, другим чат-ботам и Netbase. Netbase — это база данных семантической сети. Граф знаний Netbase содержит более 600 000 000 узлов и операторов из всех источников Интернета, включая Freebase, Wikidata, DBPedia, Yago, Wordnet, а также множество пользовательских GraphDB. Netbase — это нечто большее, чем тройное хранилище: он имеет встроенную онтологию Wordnet и его отношения, так что вы можете быстро выполнять запросы с помощью синонимов, транзитивных иерархий классов, меронимов деталей и т. Д. [12]. В AIML 2.1 есть средство для создания онтологий, которые позволяют чат-ботам использовать знания и рассуждать. AIML может извлекать знание предметной области из онтологий семантической сети, используя язык сценариев под названием OwlLang, и хранить новые знания, полученные из разговоров в онтологиях [13].

Листинг 1. Показывает код для доступа к внешним ресурсам.
<categoryя>
  <pattern> ЧТО ТАКОЕ ПОГОДА </ pattern>
  <template>
    <sraix service = «pannous»> ЧТО ТАКОЕ ПОГОДА
    </sraix>
  </template>
</category>
 
Элемент category определяет пару вопрос-ответ; вопрос определен в паре тегов шаблонов (<pattern> </ pattern>) и ответе в паре тегов шаблонов (<template> </ template>). Ответ бот-чата может быть из категорий в его собственной базе знаний, из других ботов или других источников знаний. Элемент sraix позволяет чат-боту вызывать категории, существующие в другом чат-боте, и возвращать ответ, как если бы он был его собственным. В коде, показанном в листинге 1. Чатбот сообщает о погодной информации, полученной из внешних источников, предоставляемых веб-службой. Веб-сервис Panonus объединяет знания от DbPedia, WordNet, Weather Service, магазинов и т. д.
3) приобретение знаний
Элемент обучения позволяет пользователю генерировать новые блоки категорий изнутри разговора. Эта мощная функциональность AIML 2.0 позволяет пользователям обучать бота новой информации. Категории, сгенерированные элементом обучения, хранятся в памяти, и они доступны только с именем клиента, которое использовалось для их создания [14].
Существует также инструмент под названием Pattern Suggester, который является частью Program AB, самой последней эталонной реализации AIML 2.0. Pattern Suggester помогает автоматизировать процесс создания новых шаблонов посредством неконтролируемого обучения [15].

Элемент learnf идентичен элементу learn в синтаксисе, однако сгенерированная категория записывается в файл AIML, который можно указать с помощью свойства learn filename. Пример обучения приведен в листинге 2.
Листинг 2. Пример обучения AIML 2.0
<category>
<pattern> * НРАВИТСЯ * </ pattern>
<template>
  Я буду помнить, что ты любишь кофе.
  <learn>
    <category>
    <pattern> ЧТО ДЕЛАТЬ * НРАВИТСЯ </ pattern>
      <template> Вам нравится <star />
      </ template>
    </ category>
  </ learn>
</ template>
</ category>
 
В коде, показанном в листинге 2. тег category определяет пару вопрос-ответ. Ключевое слово LEARN инструктирует чат-бота создать категорию для ответа на вопрос, указанного в элементе <learn>, чтобы впоследствии иметь возможность дать ответ на такой шаблон. Тег <star /> используется для получения переменных (обозначенных *), предоставленных пользователями чат-боту.
4) Ссылки на индивидуальные онтологии
Программа AB является Java-приложением. Программа AB структурирована, чтобы позволить разработчикам легко расширять AIML с помощью пользовательских тегов. В программе AB реализованы функции AIML 2.0, в том числе возможность подключения к удаленным ботам и веб-службам с помощью нового тега.
Программа AB реализует некоторые оптимизации памяти, которые позволяют запускать чат-бота на мобильном устройстве или встроенной системе. Программа AB служит эталонной реализацией AIML 2.0.
Внедрение личных записанных файлов онтологий в базу данных чат-бота — простая задача с библиотекой JENA.
Другой способ — использовать скрипт, показанный в листинге 3.
 
Листинг 3. Запрос настроенной онтологии

<category><pattern>SPEEDOF *</pattern>

<template>

<get var=“? x»>

<tuple><first><select>

<q><subj><star/></subj><pred>hasSpeed</pred><obj>

?x</obj></q>

</select></first></tuple>

</get>

</template>

</category>

В коде, показанном в листинге 3. Ключевое слово SPEEDOF, определенное в теге <pattern>, инициирует запрос, отклоненный в теге <template> для введенной переменной объекта (обозначается *). Переменная запроса инициализируется в <getv var = ”? тег x> В теге <q> представлен код запроса. Запрос возвращает значение атрибута hasSpeed ​​переменной сущности, введенной в тег <pattern>. Объекты и их атрибуты определены во внешнем файле с именем tripels.txt. это показано в листинге 4.

Listing 4. Triples.txt file

CEETAH:hasPurpose:to hunt wildlife CEETAH:hasSize:7

CHEETAH:hasSpeed:10

CHEETAH:hasSyllables:2

CHEETAH:isa:Animal

CHEETAH:isa:Wild Animal

CHEETAH:lifeArea:Physical

5) Возможность создания чат-бота для мобильного приложения
Приложение CallMom для Android — это первое мобильное приложение-помощник, которое включает в себя несколько вариантов индивидуального выбора чат-бота и сложную функцию обучения. В 2013 году приложение-преемник CallMom стало первым виртуальным помощником, который встроил функцию AI прямо на мобильном устройстве [10]. Спецификация AIML 2.0 включает несколько функций, которые поддерживают разработку мобильных приложений с функциями чат-ботов.
Внутривенно CHATSCRIPT
ChatScript — это язык сценариев, предназначенный для приема ввода текста пользователем и генерации текстового ответа. Чат продолжается в залпы, как теннис. Программа вводит одно или несколько предложений от пользователя и выводит одно или несколько предложений обратно. ChatScript — это система для управления естественным языком, а не только для создания чат-бота [16]. ChatScript начинается с преобразования входных слов с использованием файлов подстановок. Он содержит файлы для текстовых сообщений, правописания, типичных орфографических ошибок, сокращений, сокращений, шума и междометий, отображаемых как речевые акты. Все они находятся в реальных данных, то есть они не сохраняются в словаре, а загружаются при запуске. Конечная пунктуация удалена с битами, установленными для отражения статуса пунктуации (вопрос, утверждение, восклицательный знак) [17].
1) Простота реализации и сложность языка
Поскольку ChatScript является одновременно языком сценариев и движком, реализация может быть несколько сложнее, чем AIML.
По сути сценарий представляет собой серию правил. Полное правило имеет вид, метку, шаблон и вывод.
Правила могут быть ограничены вводом высказываний, вводом вопросов или только тогда, когда чат-бот берет под контроль разговор и хочет что-то добровольно (гамбиты). Правила объединяются в сборники, называемые темами [16].
Темы могут ссылаться на другие темы. Как именно обрабатывать ввод, контролирует управляющий скрипт, который сам по себе является темой.
Шаблон — это набор более конкретных условий, которые разрешают или запрещают это правило, обычно пытаясь сопоставить слова текущего входного предложения, но иногда с учетом предыдущей истории разговора, времени дня или чего-либо еще [16].
Вывод — это то, что делает это правило, если разрешено выполнять. Так как цель общего состоит в том, чтобы генерировать ответ, самый простой результат — просто слова, чтобы сказать.
Более сложные выходные данные могут выполнять условное выполнение, циклы, вызовы функций и т. д. Система обычно выполняет правила в указанном порядке до тех пор, пока человек не только не пройдет ограничения типа и шаблона, но и фактически создаст выходные данные, предназначенные для достижения пользователя. Как только у вас есть выход, система готова [16].
2) Доступ к внешним ресурсам
Встроенный словарь WordNet для онтологии и проверки орфографии. WordNet — это лексическая база данных английского языка, созданная и поддерживаемая в лаборатории когнитивных наук Принстонского университета. Он группирует слова в наборы синонимов — наборов — каждый из которых выражает отдельную концепцию. WordNet дает короткие общие определения и записывает семантические отношения между синтаксисами. ChatScript имеет возможность считывать структурированные данные JSON (нотации объектов JavaScript) с веб-сайтов, а Postgres поддерживает большие данные или чаты большого объема [16]. В ChatScript есть несколько процедур для вызова внешних ресурсов. Код сценария, показанный в листинге 5., позволяет получать и обрабатывать данные с любого URL-адреса (расположение единого ресурса) или из Интернета.

Листинг 5. Запрос данных из Интернета
^ tcpopen (функция добрых данных ‘)
3) приобретение знаний
ChatSript имеет опцию для запоминания определенных видов информации и использования этой информации в будущих разговорах. ChatScript запоминает части чата и сохраняет его в долгосрочных данных (переменные и факты). Когда переменная однажды установлена, она записывается с пользовательскими данными, если только они явно не удалены. Переменная может использоваться во всем чате. Переменная также остается для включения других правил.
4) Ссылки на индивидуальные онтологии
ChatScript может создавать факты — темы, глаголы, тройки объектов — и организовывать их в таблицы. Данные, сохраненные в виде фактов и в таблицах, затем могут быть вызваны с помощью запросов. Согласно нашим выводам, ChatSript имеет возможность подключаться к внешним онтологиям, получать знания из онтологии и записывать эти знания в локальные файлы концепций.
5) Возможность построить чат-бот для мобильного приложения
Чтобы создать мобильное приложение, ChatScript должен быть встроен в другую программу, что означает, что ChatScript не является основной программой. В этом контексте основная программа управляет мобильным приложением и вызывает ChatScript для ведения разговора или управления. В зависимости от платформы мобильных приложений память ChatScript должна быть уменьшена. Полный словарь может занять 25 МБ. Для мобильных приложений словарь должен быть свернут.
 V. СРАВНИТЕЛЬНЫЙ ОБЗОР AIML И ЧАТСКРИПТА
Поскольку целью этого исследования было определить лучшую технологию для создания нашего личного чат-бота, сначала мы выбрали языки чат-ботов, основанные на платформе с открытым исходным кодом. Следующим шагом было сравнение выбранных языков в соответствии с требованиями, которые определены в разделе введения.
 
Таблица 1. показывает сравнение AIML и ChatScript по следующим параметрам: быть достаточно простым и простым в реализации; Чтобы иметь возможность подключаться с настроенными онтологиями и иметь поддержку сообщества свободного источника. Выбранная технология должна позволять создавать и внедрять чат-ботов на платформе Android и iOS, чтобы их можно было использовать в мобильных приложениях.

Table 1. Comparative review AIML and ChatScript.

 

AIML 2.0

ChatScript

Ease of implementation  

Very simple process of dialogue modelling 

Implementation is more

difficult than

AIML

Complexity of language

Balancing between keeping the language as simple as possible and the technological and social perquisites of mobile era.

Complex, system for manipulating natural language and conversation agents

Connection to external resources

Freebase, Wikidata,

DBPedia, Yago,

Wordnet

WordNet, ConceptNet

Learning

Defined syntax for learning new patterns and templates.

Yes, variables and facts

Personal ontology implementation

JENA library

Yes, script code

Mobile App

YES

YES, but with restrictions

ChatScript создан, чтобы обеспечить возможности понимания естественного языка для персонажей в играх, но также использовался для чат-бота. ChatScript основан на значениях и имеет вспомогательные наборы слов, называемые понятиями для обозначения синонимов.
Если цель пользователя — создать иллюзию, что чат-бот понимает пользователя, это означает, что он попытается свести к минимуму моменты, когда чат-бот говорит что-то совершенно не связанное с тем, что сказал пользователь, и максимизировать моменты, когда чат-бот отвечает полностью. соответственно, тогда ChatScript — правильное решение.
AIML — это широко используемый язык разметки для определения чат-ботов. AIML 2.0 имеет множество новых функций, таких как [18]:
Тег <topic> теперь можно установить для категории, чтобы упростить добавление категорий к темам. Ноль или более символов подстановки — новые шаблоны символов ^ и #, которые соответствуют нулю или более словам. Приоритет шаблона — новый $ шаблонный маркер, чтобы слово шаблона соответствовало наивысшему приоритету. Теги атрибутов — любой атрибут тега шаблона теперь можно установить с помощью подэлемента. наборы
Новый тег <set> на стороне шаблона для оценки шаблона на основе слов, определенных в предопределенном наборе.
Новый тег <map> шаблона, позволяющий искать значение элемента в предопределенном отображении, возвращая сопоставленное значение.
Шаблоны условий — теперь подстановочные знаки могут использоваться в значениях условий для предоставления условий по умолчанию. Состояние петель
Новый шаблонный тег <loop> для зацикливания условного оператора. Локальные переменные
Новый атрибут <var> для переменных, относящихся к категории. Удаленные запросы:
Новый шаблонный тег <sraix> для удаленного запроса другого экземпляра бота или службы. Нормализация и денормализация — Новые теги <normalize> и <denormalize> для преобразования специального символа в слова и обратно. Форматы даты — Новые возможности форматирования даты. Запрос — новый тег <request> шаблона для возврата предыдущего запроса ввода пользователя. Response — Новый тег <response> шаблона, чтобы вернуть предыдущий ответ бота. Обучение — новые теги <learn>, <learnf> и <eval> для динамического обучения чат-бота с новыми ответами. Explode — новый шаблонный тег <explode> для разделения слова на символы. Мобильные теги — новый тег <oob> (вне диапазона) для поддержки команд клиентов и мобильных устройств.
AIML 2.0 представляет программу AB. В программе AB реализованы функции AIML 2.0, в том числе наборы и карты, подстановочные знаки Zero + и возможность подключения к удаленным ботам и веб-службам с помощью нового тега.
Программа AB реализует некоторые оптимизации памяти, которые позволяют запускать чат-бота на мобильном устройстве или встроенной системе. Программа AB уже запущена на Android телефонах и планшетах.
Если целью пользователя является создание настраиваемого чат-бота, который удовлетворяет техническим требованиям для вездесущих соединений между людьми, информацией, программным обеспечением и следит за социальными изменениями, вызванными мобильной эрой, то AIML 2.0 является логичным выбором.
VI. CONLUSION
В этой статье мы дали технический обзор двух наиболее используемых языков с открытым исходным кодом для создания чат-бота. Мы предоставили сравнения между этими двумя языками в соответствии со следующими параметрами: простота реализации и сложность языка, доступ к внешним ресурсам, получение знаний, ссылки на настраиваемые онтологии и возможность создания чат-бота для мобильного приложения. Спецификация AIML 2.0 удовлетворяет потребность в новых функциях, но делает AIML максимально простым, особенно для непрограммистов.
Из вышеприведенного опроса можно сказать, что технологии для разработки и внедрения чат-ботов по-прежнему широко распространены, и пока еще не найден общий подход. Использование технологии зависит от решения разработчика.
Изучение современных чат-ботов показывает, что чат-ботам нужны улучшения в дизайне, такие как усовершенствованные NLP и NLU, усовершенствованный подход к распознаванию образов, более широкие базы знаний, лучшая организация знаний и представление знаний.
Использование персональных настраиваемых онтологий, которые могут обеспечить функциональность рассуждений и определить конкретную личность как запись моделей поведения из истории разговора, должно стать предметом дальнейших исследований.

REFERENCES 

Journal Articles

  • Khanna, B.  Pandey, K.  Vashishta, K.  Kalia, B.  Pradeepkumar and T.  Das, «A Study of Today’s A.I. through Chatbots and Rediscovery of Machine Intelligence», IJUNESST, vol. 8, no. 7, pp. 277-284, 2015.
  • TURING, «I.—COMPUTING MACHINERY AND INTELLIGENCE», Mind, vol., no. 236, pp. 433-460, 1950.
[9] M.  Bruno Marietto, R.  Aguiar, G.  Barbosa, W.  Botelho, E.  Pimentel, R.  Franca and V.  da Silva, «Artificial Intelligence Markup Language: A Brief Tutorial», International Journal of Computer Science &

Engineering Survey, vol. 4, no. 3, pp. 1-20, 2013

Books & Book Chapters

[5] Batacharia, B., D. Levy, R. Catizone, A. Krotov, and Y. Wilks. «CONVERSE: a conversational companion.» In Machine conversations, pp. 205-215. Springer US, 1999

[15] M. McTear, C. Zoraida, and G. David. «Conversational Interfaces: Devices, Wearables, Virtual Agents, and Robots.» In The Conversational Interface, pp. 283-308

Springer International Publishing, 2016

Conference Proceedings

  • Shawar, Bayan Abu, and Eric Atwell. «Chatbots: are they really useful?.» In LDV Forum, vol. 22, no. 1, pp. 29-49. 2007
  • Hutchens, Jason L.; Alder, Michael D. (1998), «Introducing MegaHAL» (PDF), NeMLaP3 / CoNLL98 Workshop on Human-Computer Conversation, ACL

(271): 274

[13] Lundqvist KO, Pursey G, Williams S, “Design and implementation of conversational agents for harvesting feedback in eLearning systems”. In: Hernandez-Leo D, Ley T, Klamma R, Harrer A (eds) Scaling up learning for sustained impact. Lecture notes in computer science, vol 8095, pp 617–618., 2013

[17] Ramon López de Mántaras Badia, ARBOR Ciencia, Pensamiento y Cultura, Vol. 189-764, no 2013, a086

ISSN-L:        0210-1963,             doi: http://dx.doi.org/10.3989/arbor.2013.764n6009)

Technical Reports

[6] Abu Shawar B. and Atwell E. 2002. A comparison between ALICE and Elizabeth chatbot systems. School of Computing research report 2002.19, University of Leeds

Online Sources

  • HEXBOT chatbot website. http://www.hexbot.com/
  • Richard S. Wallace, The Elements of AIML Style, ALICE A. I. Foundation, Inc. March 28, 2003
  • Wallace, R. S. (2014a). AIML 2.0 Working Draft, https://docs.google.com/document/d/1wNT25hJRyupcG5

1aO89UcQEiG -HkXRXusukADpFnDs4/pub

  • (Wallace, AIML — Sets and Maps in AIML 2.0, https://docs.google.com/document/d/

1DWHiOOcda58CflDZ0Wsm1CgP3Es6dpicb4MBbbpw zEk/pub

  • NetBase API          documentation,

(https://market.mashape.com/pannous/netbase) 

[14] AIML 2.0 Reference, http://callmom.pandorabots.com/static/reference/#elemen ts/ltlearngt)

[16] Bruce Wilcox, ChatScript Basic User’s Manual,Revision

11/18/2013 cs3.73,

http://chatscript.sourceforge.net/Documentation/ChatScri pt%20Basic%20User%20Manual.pdf

[18] What’s new in AIML 2.0, https://www.botlibre.com/forumpost?id=1156738

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.