我正在努力学习AIML并且无法理解我出错的地方:
<aiml>
<category>
<pattern>I LIKE * ROME</pattern>
<template>
I love talking about
<set name="topic">rome</set>
too!
<random>
<li>Did you know that slaves made up 40% of the population of Ancient Rome?</li>
<li>Did you know the Colosseum could sit 250'000 people?</li>
</random>
</template>
</category>
<topic name="rome">
<category>
<pattern>No *</pattern>
<that>Did you know that slaves made up 40% of the population of Ancient Rome?</that>
<template>So I've taught you something!</template>
</category>
</topic>
</aiml>
第一部分工作正常,如果我输入类似:“我喜欢罗马的历史”,我会得到预期的默认答案和随机答案之一。
但是如果他给我“奴隶”随机答案并且我说“不,我不知道那个”,他就不会给我“所以我已经教你一些”回答“。他正在接受从他的代码中的其他地方回答,但考虑到我已经设置了“主题”和&lt; that&gt;标记,我已经非常具体,并期望我的自定义答案。
答案 0 :(得分:1)
有
<pattern>No _</pattern>
你的目标档案中的某些地方。
答案 1 :(得分:0)
使用<that>
标记是您的阻塞点。对于图片的价值,我在初始模板中更改了您的响应,并且它有效。
关于机器人的第二个回复。如果使用它,则罗马主题中的类别将永远不会起作用,因为<that>
标记中的40个$&#39; ers必须是机器人的最后一个响应。
聊天机器人的回复可能会有些混乱。在主题总是更改为&#34; rome&#34;之前,但为了主题中的模式&#34; rome&#34;为了工作,聊天机器人不得不谈论40%的人。我只是将两者结合起来得到了相同的结果。
另请注意,<that>
标记中的问号未放在那里。机器人将其剥离并存储剩余的结果。
<?xml version="1.0" encoding="UTF-8"?>
<aiml>
<category>
<pattern>I LIKE * ROME</pattern>
<template>
<random>
<li>Did you know that slaves made up 40% of the population of Ancient <set name="topic">Rome</set>?</li>
<li>Did you know the Colosseum in could sit 250'000 people?</li>
</random>
</template>
</category>
<topic name="rome">
<category>
<pattern>No *</pattern>
<that>Did you know that slaves made up 40% of the population of Ancient Rome</that>
<template>
So I've taught you something!
</template>
</category>
</topic>
</aiml>
答案 2 :(得分:0)
您可以在*
标记中使用通配符(<that>
),这样您就可以只匹配机器人答案的一部分(例如“您知道丢弃了”)。
另请注意,该主题可以在<think>
标记内设置,该标记不显示其内容。
我使用Python AIML解释器测试了以下代码。它按预期工作,但当<that>
和<pattern>
标记的主题名称和内容为小写时,它不起作用。
<aiml>
<category>
<pattern>I LIKE * ROME</pattern>
<template>
I love talking about Rome too!
<think><set name="topic">ROME</set></think>
<random>
<li>Did you know that slaves made up 40 of the population of Ancient Rome?</li>
<li>Did you know the Colosseum could sit 250'000 people?</li>
</random>
</template>
</category>
<topic name="ROME">
<category>
<pattern>NO</pattern>
<that>* DID YOU KNOW THAT SLAVES MADE UP *</that>
<template>So I've taught you something!</template>
</category>
</topic>
</aiml>