Язык разметки искусственного интеллекта
Расширение имени файла | .aiml |
---|---|
Разработано | Доктор Ричард С. Уоллес |
Первоначальный выпуск | 16 июля 2001 г [1] |
Последний выпуск | |
Тип формата | Искусственный интеллект |
Расширено с | XML |
Открытый формат ? | Да |
Веб-сайт | www |
Язык разметки искусственного интеллекта ( AIML ) — это диалект XML для создания программных агентов на естественном языке .
История
[ редактировать ]Диалект XML под названием AIML был разработан Ричардом Уоллесом и мировым сообществом свободного программного обеспечения в 1995 году. [ нужна ссылка ] и 2002. AIML лег в основу того, что первоначально было расширенной версией Элизы под названием « АЛИСА » («Искусственный лингвистический компьютерный объект Интернета»), которая выиграла ежегодный конкурс премии Лебнера в области искусственного интеллекта. [3] три раза, а также был Chatterbox Challenge [4] Чемпион 2004 года.
Поскольку набор ALICE AIML был выпущен под лицензией GPL и поскольку большинство интерпретаторов AIML предлагаются по бесплатной лицензии или лицензии с открытым исходным кодом , многие «клоны Alicebot» были созданы на основе исходной реализации программы и ее базы знаний AIML. Бесплатные наборы AIML [5] на нескольких языках были разработаны и предоставлены сообществом пользователей. Существуют интерпретаторы AIML, доступные на Java , Ruby , Python , C++ , C# , Pascal и других языках (см. ниже). [ мертвая ссылка ] ). Полуформальная спецификация [6] и XML-схема W3C для AIML. [7] доступны.
С начала 2013 года фонд ALICE работает над проектом спецификации AIML 2.0. [8]
Элементы AIML
[ редактировать ]AIML содержит несколько элементов. Наиболее важные из них более подробно описаны ниже.
Категории
[ редактировать ]Категории в AIML образуют фундаментальную единицу знаний. Категория состоит как минимум из двух дополнительных элементов: элементов шаблона и шаблона . Вот простая категория:
<category>
<pattern>WHAT IS YOUR NAME</pattern>
<template>My name is Michael N.S Evanious.</template>
</category>
Когда эта категория загружена, бот AIML ответит на ввод «Как вас зовут» ответом «Меня зовут Майкл Н. С. Эваниус».
Узоры
[ редактировать ]Шаблон — это строка символов, предназначенная для соответствия одному или нескольким введенным пользователем данным. Буквальный шаблон, подобный
WHAT IS YOUR NAME
будет соответствовать только одному вводу, игнорируя регистр: «как тебя зовут». Но шаблоны также могут содержать подстановочные знаки, соответствующие одному или нескольким словам. Шаблон вроде
WHAT IS YOUR *
будет соответствовать бесконечному количеству входных данных, включая «как вас зовут», «какой у вас размер обуви», «какова ваша цель в жизни» и т. д.
Синтаксис шаблонов AIML — это очень простой язык шаблонов, существенно менее сложный, чем регулярные выражения , и поэтому ниже уровня 3 в иерархии Хомского . Чтобы компенсировать возможности простого сопоставления с образцом , интерпретаторы AIML могут предоставлять функции предварительной обработки для расширения сокращений, удаления орфографических ошибок и т. д.
Синтаксис AIML по крайней мере так же сложен, как и конечные автоматы , и поэтому относится как минимум к третьему уровню иерархии Хомского . Это происходит потому, что состояние соотносится с одной темой . Чтобы реализовать такое поведение, тема должна иметь шаблон «*», чтобы гарантировать, что состояние не будет случайно оставлено. Государственный транзит осуществляется с <think><set name="topic">state2</set></think>
Ярлык. Таким образом, бот сможет «запомнить» обсуждаемую тему или даже привилегии пользователя, полученные во время чата.
Шаблоны
[ редактировать ]Шаблон определяет ответ на соответствующий шаблон. Шаблон может быть таким же простым, как обычный текст, например
My name is John.
Шаблон может использовать переменные, как в примере
My name is <bot name="name"/>.
который заменит имя бота в предложении, или
You told me you are <get name="user-age"/> years old.
который заменит в предложении возраст пользователя (если он известен).
Элементы шаблона включают базовое форматирование текста, условный ответ (если-то/иначе) и случайные ответы.
Шаблоны также могут перенаправляться на другие шаблоны, используя элемент под названием srai (символическое сокращение в искусственном интеллекте). Это можно использовать для реализации синонимии, как в этом примере (где CDATA используется, чтобы избежать необходимости экранирования XML ):
<category>
<pattern>WHAT IS YOUR NAME</pattern>
<template><![CDATA[My name is <bot name="name"/>.]]></template>
</category>
<category>
<pattern>WHAT ARE YOU CALLED</pattern>
<template>
<srai>what is your name</srai>
</template>
</category>
Первая категория просто отвечает на ввод «как вас зовут» с указанием имени бота. Вторая категория, однако, говорит, что ввод «как вас зовут» должен быть перенаправлен в категорию, соответствующую вводу «как вас зовут» — другими словами, это означает, что эти две фразы эквивалентны.
Шаблоны могут содержать другие типы контента, которые могут обрабатываться любым пользовательским интерфейсом, через который разговаривает бот. Так, например, шаблон может использовать для форматирования HTML-теги, которые могут игнорироваться клиентами, не поддерживающими HTML.
Ссылки
[ редактировать ]- ^ «Пресс-релиз: Стандарт AIML 1.0 принят (ALICE AI Foundation)» . alicebot.org . Сан-Франциско, Калифорния. 16 июля 2001 года. Архивировано из оригинала 15 июля 2007 года . Проверено 1 декабря 2013 г.
- ^ Jump up to: а б «AIML 2.1 (Фонд AIML)» . цель.основание / . Архивировано из оригинала 14 мая 2019 года . Проверено 11 июня 2022 г.
- ^ "loebner.net - Informationen zum Thema loebner" . loebner.net . 26 октября 2007 г. Архивировано из оригинала 30 декабря 2010 г. Проверено 10 ноября 2010 г.
- ^ «Вызов болтуна» . http://chatterboxchallenge.com . Архивировано из оригинала 25 марта 2006 года . Проверено 10 ноября 2010 г.
- ^ «Бесплатные наборы AIML — aitoold.org» . aitools.org . 17 мая 2006 г. Архивировано из оригинала 9 октября 2006 г.
- ^ «AIML 1.0.1 (Фонд ALICE AI)» . alicebot.org . 13 октября 2011 года. Архивировано из оригинала 18 ноября 2013 года . Проверено 1 декабря 2013 г.
- ^ "AIML.xsd" . aitools.org . Архивировано из оригинала 17 марта 2006 года . Проверено 10 ноября 2010 г.
- ^ «Выпущен проект спецификации AIML 2.0» . alicebot.blogspot.com . 16 января 2013 года. Архивировано из оригинала 18 мая 2013 года . Проверено 19 июня 2014 г.