«РАЗРАБОТКА
AIML – БОТА
ДЛЯ ПОДДЕРЖКИ ЕСТЕСТВЕННО-ЯЗЫКОВОГО ДИАЛОГА С ПОЛЬЗОВАТЕЛЕМ В WEB –
ПРИЛОЖЕНИЯХ»
Цель урока
Изучить
язык разметки AIML и создать бота, позволяющего определить уровень английского
языка учащегося, привлечь учащихся к изучению английского языка.
Опорный
материал урока
Бот, а
также интернет-бот, www-бот – специальная программа,
выполняющая автоматически и/или по заданному расписанию какие-либо действия
через те же интерфейсы, что и обычный пользователь.
1. Применение
ботов
Полезное
применение.
Боты
находят применение в условиях, где требуется лучшая реакция, чем возможности
человека (то есть, игровые боты, боты для интернет-аукционов и т.п.) или, что
менее обычно, для имитации действий человека (то есть боты для чатов,
онлайн-консультанты, развлекательные и т.п.).
Вредоносные
боты.
Спам-боты,
собирающие адреса E-mail из контактных форм и гостевых книг; программы,
загружающие интернет-канал потоком ненужной информации (как правило, рекламного
характера); сайты, собирающие информацию о безвредных сайтах; некоторые вирусы
и черви; ботнеты и компьютеры-зомби.
2. Язык разметки AIML
Язык
разметки AIML (Artificial
Intelligence Markup Language) — язык разметки для искусственного
интеллекта. AIML — подмножество (диалект) XML, он предназначается для создания
виртуальных собеседников. Построить бота можно в текстовом редакторе или
в XML редакторе, позволяющем генерировать AIML-код(интерпретатор), сохраняя это
файл с расширением *.aiml.
3. Элементы AIML
Язык
разметки AIML состоит из категорий, а категории в свою очередь состоят из
шаблонов и ответов, т.е.
<aiml>
<category>
<pattern>Шаблон</pattern>
<template>Ответ</template>
</category>
</aiml>
Pattern(шаблон) – это
искомая в предложении конструкция.
Template(ответ)- это
ответ на искомый Pattern(шаблон).
Шаблон пишется
большими буквами на английском языке. Для определения произвольного слова или
группы слов используется знак *.
Примеры
паттернов:
1. <pattern>HELLO</pattern>
.
2. <pattern>
HELLO *</pattern>
3. <
pattern
>*
HELLO
*</
pattern
>
4.
<pattern>*
HELLO </pattern>
Ответ
может
включать одну реплику:
<
template
>
GOOD MORNING
</
template
>
Или
несколько реплик. В этом случае необходимо использовать дополнительный
тег <random>, произвольно выбирается реплика, находящаяся между тегами
< li> </li>. Пример:
<
template
>
<
random
>
<
li
> GOOD MORNING
</
li
>
<
li
>
HELLO
</
li
>
<
li
>HI ...
</
li
>
</
random
>
</
template
>
4. Редактор AIML - GaitoBotAIML-editor
5. ДОПОЛНИТЕЛЬНЫЙ
МАТЕРИАЛ
Шаблоны
обозначают ответы на распознанные образцы.
Шаблон
может быть и простым: Моё имя-Настя.
А
может и содержать переменные:
Моё
имя-<bot name= «имя»/>.
Вы
сказали, что Вам <
get
name
= «возраст
пользователя»/> лет.
В
пером случае интерпретатор подставит своё «имя», а во втором возраст
пользователя(если возраст пользователя известен).
Шаблоны
могут содержать базовое текстовое форматирование, словные и случайные части.
Возможны также перенаправления (задаются элементом srai). Это
может использоваться для обозначения синонимии и эквивалентности фраз:
<aiml>
<category>
<pattern>
КАКОЕ
ВАШЕ
ИМЯ
</pattern>
<template>
Моё
имя
-<bot name= «
имя
»/></template>
<pattern>
КАК
ВАС
ЗОВУТ
</pattern>
<template> < srai >
какое
ваше
имя
< /srai
></template>
</category>
</aiml>
Как
же можно разнообразить диалог с ботом?
·
Тег
<star/>- это тег,
благодаря которому, мы можем обращаться к определенной части реплики, введенной
пользователем, а затем повторить эту часть в ответе. Например, «Поговорим о
кошках?». Ответ бота: «О кошках, так о кошках». Пример кода:
<
category
>
<
pattern
>
ПОГОВОРИМ
О
*</
pattern
>
<
template
>
Ок
,
о
<
star
/>,
так
о
<
star
/></
template
>
</
category
>
·
Тег
<sr/> - это
сокращенная запись <srai><star/></srai>, то
есть ссылка на звездочку, помогающая «откидывать лишние слова». Бот не будет
обращать внимания на лишние слова, сосредотачиваясь непосредственно на ключевой
фразе.
<category>
<pattern>Я ДУМАЮ *</pattern>
<template><sr/></template>
</category>
<category>
<pattern>ТЫ *</pattern>
<template>Я <star/>?</template>
</category>
<category>
<pattern>ДА</pattern>
<template>Не буду спорить.</template>
</category>
УДАЧИ!
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.