AIML 2.0 - <pattern>

时间:2017-02-14 14:35:55

标签: aiml

我的问题是我试图在<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"]
]

我的目标是匹配“我的引擎已损坏”之类的字符串,或更一般的字符串:“某些内容可以使某些内容成为某种东西

4 个答案:

答案 0 :(得分:1)

documentation如果支持或不支持在<set>...</set>内使用多个<pattern>...</pattern>语句,则不会指定任何一种方式。

答案 1 :(得分:1)

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

答案 2 :(得分:0)

如果您要问的话,我认为您不能在<set>代码中添加<pattern>代码。

答案 3 :(得分:0)

我尝试使用以下代码创建&#34; colors.txt &#34;和&#34; modify.txt &#34; &#34; &#34;下的文件文件夹中。

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>

当我输入绿色修改

输出为处理绿色修改