AIML 2.0 - несколько ‹set› в ‹pattern›

Моя проблема в том, что я пытаюсь использовать несколько <set> в теге <pattern>, но мое ядро ​​(в данном случае Pandorabots) не распознает то, что я написал. Я думал, что проблема в теге множественного набора в теге шаблона. С одним - работает.

Итак, вот фрагмент aiml:

<category>
    <pattern>^ <set>components</set> ^ <set>desc_broken</set></pattern>
    <template>Test answer</template>
</category>

И относительные наборы:

components.set

[
    ["ENGINE"],
    ["FILTERS"],
    ["CARBURETORS"]
]

desc_broken.set

[
    ["BROKEN"]
]

Моя цель - сопоставить такие строки, как «Мой двигатель сломан» или, в более общем смысле: «что-то CAR PART что-то ADJECTIVE something»


person enriquo    schedule 14.02.2017    source источник


Ответы (4)


В документации не указывается, поддерживает ли она или не поддерживает использование нескольких операторов <set>...</set> в <pattern>...</pattern>.

person A. Kootstra    schedule 14.02.2017

Вы можете разместить несколько наборов тегов. Ниже приведен образец AIML:

<?xml version = "1.0" encoding = "UTF-8"?>
<aiml version = "1.0.1" encoding = "UTF-8">

<category>
      <pattern>I WANT TO KNOW * AND *</pattern>
      <template>
        <think> <set name="topic"> <star index = "1"/></set></think>
        <think> <set name="topic1"> <star index = "2"/></set></think>
       Ok. Please Wait...
       </template>
</category>
</aiml>

Ниже приведен код Python для ознакомления с этими разделами и получения желаемых результатов:

bot = Kernel()
category= "Some text"
bot.respond(category) 
bot.getPredicate("topic")
bot.getPredicate("topic1")
person Rahul Agarwal    schedule 01.09.2017
comment
Я думаю, что исходный вопрос касается использования наборов и карт в шаблонах, а не использования элемента ‹set› .. ‹/set› для обновления свойств. - person Ubercoder; 19.10.2017

Я не думаю, что вы можете поместить тег <set> в тег <pattern>, если это то, о чем вы спрашиваете.

person Mason L.    schedule 06.09.2017
comment
То, что вы говорите, верно для AIML v1. В AIML v2 есть концепция наборов и карт, и члены набора могут использоваться в шаблонах. Синтаксис показан в исходном вопросе, и мне он кажется допустимым AIML v2. - person Ubercoder; 22.11.2017

Я попытался использовать приведенный ниже код, создав файлы "colors.txt" и "modify.txt" в папке "sets".

colors.txt имеет

зеленый

красный

И в файле modify.txt

изменить

изменить

<category>
     <pattern># <SET>colors</SET> <SET>modify</SET> #</pattern>
     <template>Working on <star index = "2" /> color <star index = "3" /></template>
</category>

Когда я даю ввод как изменить зеленый

вывод как Работа над изменением зеленого цвета

person jettimadhuChowdary    schedule 15.11.2017