Несколько 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>
Другие вопросы по тегам