AIML 2.0 - <pattern> 中的多个 <set>

AIML 2.0 - multiple <set> in <pattern>

我的问题是我试图在 <pattern> 标签中使用多个 <set> 但我的核心(在本例中为 Pandorabots)无法识别我写的内容。我认为问题出在 pattern 标签中的 multiple set 标签。只要一个,它就可以工作。

所以这是 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"]
]

我的目标是匹配像“我的引擎坏了”这样的字符串,或者更一般地说:“something CAR PART something ADJECTIVE something

documentation 不指定支持或不支持在 <pattern>...</pattern> 中使用多个 <set>...</set> 语句。

您可以放置​​多个设置标签。以下是示例 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")

我不认为你可以将 <set> 标签放在 <pattern> 标签中,如果这是你的要求的话。

我尝试使用以下代码在“下创建”colors.txt”和“modify.txt”文件设置”文件夹。

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>

当我输入 green modify

输出为正在修改绿色