Несколько AIML, содержащие одинаковые шаблоны. Как получить его в соответствии с предпочтениями пользователя
Всем привет! У меня есть чат-бот, который содержит n
количество файлов AIML. Каждый файл AIML связан с различными темами. но он может содержать те же шаблоны, которые вызывают конфликт при получении ответа от чат-бота. Я хочу определить, какую тему ищет пользователь. Так как я могу настроить своего чат-бота в соответствии с этим требованием?
AIML файл 1
<category>
<pattern>ABC</pattern>
<template>abcdefghijklmnopqrstuvwxyz</template>
</category>
AIML файл 2
<category>
<pattern>ABC</pattern>
<template>1234567890ABCD</template>
</category>
Оба связаны с одним чатботом. Поэтому, как конечный пользователь, я хочу получить ответ от AIML file 2
, Как я могу сделать мой чат-бот, чтобы понять мои потребности, используя программу-о
2 ответа
Я думаю, что вам может понадобиться посмотреть на topic
тег.
Концепция заключается в том, что ботмастер использует
<set_topic>
теги для установки текущей обсуждаемой темы. Как только тема установлена, когда клиент вводит оператор для ALICE, чтобы найти ответ, категории, определенные в<topic>
теги, соответствующие текущей теме, будут искать в первую очередь - перед любой категорией, не относящейся к теме, или категориями по умолчанию. Если в текущей теме не определена соответствующая категория, то ищутся все категории, которые не определены в тегах темы. Как упоминалось ранее, вы можете создавать категории с одинаковыми<pattern>
фразы в разных темах, каждая с разными ответами, которые соответствуют текущей теме.
Смелый мой акцент.
Вы можете сделать это с темами, как описано в предыдущем ответе, хотя интерпретаторы AIML реализуют темы по-разному, в зависимости от того, используете ли вы Pandorabots, Alice или v1 или v2 AIML.
Посмотрите на эту проблему по-другому: когда вы загружаете больше категорий и файлов в чат-бота, они должны быть более конкретными. Поэтому, если возможно, сделайте ваши шаблоны ABC более конкретными в соответствии с типом вопроса, на который они отвечают.
Другой подход, аналогичный темам (но не использующий обработку тем в интерпретаторе AIML), заключается в установке глобального предиката в предыдущей категории для интересующей темы. Предположим, у вас есть глобальное свойство "subject", которое вы установили для "text" или "numbers" в других категориях. Затем вы можете объединить ваши шаблоны ABC следующим образом:
<category>
<pattern>ABC</pattern>
<template>
<condition>
<li name="subject" value="text">abcdef...</li>
<li name="subject" value="numbers">0123456789</li>
<li>?</li>
</condition>
</template>
</category>