Interested Article - AIML

AIML (Artificial Intelligence Markup Language) язык разметки для искусственного интеллекта . AIML — подмножество (диалект) XML , он предназначается для создания виртуальных собеседников .

Разработка

Первым виртуальным собеседником была программа Элиза , разработанная в 1966 году . Её создатель, Джозеф Вейценбаум, построил её базу знаний по принципу шаблонных ответов (см. ). Подобный метод был использован в программе A.L.I.C.E. в 1995 году , но теперь база знаний стала более структурированной. Для построения такой базы как раз и был создан AIML. Этот язык разрабатывался Ричардом Уолессом — инициатором проекта ALICE — и всемирным сообществом свободного ПО с 1995 по 2002 год .

Версия AIML, используемая в ALICE, распространяется под лицензией GNU GPL , поэтому существует много свободных реализаций этого языка , а также программ, использующих этот язык ( интерпретаторов ). Наиболее активно используемая версия интерпретатора — , написанная на языке Java. Существуют также языка и , данная консорциумом W3C .

Элементы AIML

Категории

Категории (category) в AIML — основная структурная единица. Категория состоит по крайней мере из двух элементов: образца (pattern) и шаблона (template) . Простой пример:

  <category>
    <pattern>Какое ваше имя</pattern>
    <template>Моё имя - Олег</template>
  </category>

Если эта категория содержится в базе знаний, интерпретатор на вопрос «Какое ваше имя?» будет отвечать «Моё имя — Олег».

Образцы

Образец — символьная строка, соответствующая одному или нескольким пользовательским запросам. Такие образцы, как:

 КАКОЕ ВАШЕ ИМЯ

будут соотноситься только с одним вопросом (причём без учёта регистра). Однако образцы могут содержать , заменяющие одно или несколько слов. Образец:

 КАКОЕ ВАШЕ *

будет соответствовать бесчисленному множеству вопросов, например: «Какое ваше имя», «Какое ваше отчество», «Какое ваше мнение об этом» и т. д.

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

Шаблоны

Шаблоны обозначают ответы на распознанные образцы. Шаблон может быть и простым:

  Моё имя - Олег.

а может и содержать переменные :

  Моё имя - <bot name="имя"/>.
  Вы сказали, что Вам <get name="возраст пользователя"/> лет.

В первом случае интерпретатор подставит своё «имя», а во втором — возраст пользователя (если возраст известен).

Шаблоны могут содержать базовое текстовое форматирование, условные и случайные части. Возможны также перенаправления (задаются элементом srai ). Это может использоваться для обозначения синонимии и эквивалентности фраз:

  <category>
    <pattern>КАКОЕ ВАШЕ ИМЯ</pattern>
    <template>Моё имя - <bot name="имя"/>.</template>
  </category>
  <category>
    <pattern>КАК ВАС ЗОВУТ</pattern>
    <template>
      <srai>какое ваше имя</srai>
    </template>
  </category>

Шаблоны могут содержать форматирование, нацеленное на специфический пользовательский интерфейс, и обрабатываемое конкретным интерпретатором (например, HTML -теги).

См. также

Ссылки

  • — сайт, посвящённый ALICE.
Источник —

Same as AIML