Как стать автором
Обновить

Изучаем AIML

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

Итак файл AIML — содержит набор категорий (category). Категория открывается тегом &lt category&gt и закрывается тегом &lt /category&gt.Как и HTML каждому тегу открытия должен соответствовать тег закрытия. Иначе структура AIML будет нарушена и бот говорить не сможет.Категория(category) включает паттерны (pattern) и темплейты (template). И слово pattern и слово template переводится на русский язык одинаково — как образец или шаблон. Поэтому, чтобы не путаться, мы так и будем их называть: паттерны и темплейты.
Паттерн пишется большими буквами. Для определения произвольного слова или группы слов используется знак *
Примеры паттернов:
&lt pattern&gt ПРИВЕТ&lt /pattern&gt
&lt pattern&gt ПРИВЕТ *&lt /pattern&gt
&lt pattern&gt * ПРИВЕТ *&lt /pattern&gt
&lt pattern&gt * ПРИВЕТ&lt /pattern&gt
&lt /code&gt
Паттерн 1 подойдет только для входящей реплики содержащей единственное слово «Привет» — и ни для какой другой.
Паттерн 2 подойдет только для входящей реплики, начинающейся со слова «Привет» и содержащей еще какие-нибудь слова после слова «Привет», например, «Привет Бот!».
Паттерн 3 подойдет только для входящей реплики, начинающейся с 1 или нескольких слов, за которым следует слово «Привет» и содержащей еще какие-нибудь слова после слова «Привет», например, «Эй ты привет красавчик!».
Паттерн 4 подойдет только для входящей реплики, начинающейся с 1 или нескольких слов, за которым следует слово «Привет», например, «Бот, привет!».

Темплейт может включать одну реплику, например:

&lt template&gt Добрый день!&lt /template&gt

Или несколько реплик. В этом случае необходимо использовать дополнительный тег &lt random&gt. Пример:

&lt template&gt
&lt random&gt
&lt li&gt Добрый день! &lt /li&gt
&lt li&gt Здравствуйте &lt /li&gt
&lt li&gt Приветик… &lt /li&gt
&lt /random&gt
&lt /template&gt

В этом случае в качестве ответной реплики будет произвольно выбрана одна из реплик, находящаяся между тегами &lt li&gt &lt /li&gt.
Рандом можно комбинировать с обычной репликой. Например:
&lt template&gt
&lt random&gt
&lt li&gt Добрый день! &lt /li&gt
&lt li&gt Здравствуйте &lt /li&gt
&lt li&gt Приветик… &lt /li&gt
&lt /random&gt
Как дела?
&lt /template&gt

В этом случае бот ответит «Добрый день! Как дела?» или «Здравствуйте Как дела?» или «Приветик… Как дела?»
Итак, давай сделаем тупого бота который на любое предложение будет отвечать :" привет":
&lt category&gt
&lt pattern&gt *&lt /pattern&gt
&lt template&gt привет&lt /template&gt
&lt /category&gt
Используя эти простейшие тэги, ну и еще пару сложных( о которых я расскажу в следующем уроке, если это же пост получит хорошие оценки :) ), можно создать бота вроде A.L.I.C.E., который был лауреатом теста тьюринга.
Всем спасибо, скоро выйдет новый урок, если же этот будет Вам интересен… там больше расскажу про истjрию AIML, про тест Тьюринга
P.S еще пробела на самом деле перед template пробела нет, перед другими тегами тоже, просто кодировка хабра не позволяет мне( как новичку) сделать все правильно, просто, перед template две t сливаются и выходит полная чушь.кто может помочь с проблемой — буду рад.кому надо AIML в правильном виде — пишите в инбокс, с радость вышлю txt
Теги:
Хабы:
Всего голосов 50: ↑34 и ↓16+18
Комментарии33

Публикации