我想知道如何创建与此会话相匹配的AIML:
User: What's my name?
Bot: Right now I don't know. Tell me, what's your name?
User: Gandalf.
Bot: Hello Gandalf.所以我试着用这两种分类。
<category>
<pattern>WHAT'S MY NAME?</pattern>
<template>
<condition name="name_set" value="S"> <get name="name"/></condition>
<condition name="name_set" value="">Right now I don't know.Tell me, what's your name?</condition>
</template>
</category>
<category>
<pattern>*</pattern>
<that>Right now I don't know.Tell me, what's your name?</that>
<template><think><set name="name"><star/></set><set name="name_set">S</set></think>Hello <srai>WHAT'S MY NAME?</srai>.</template>
</category>但是,我的bot没有选择最后定义的模式,而是不断地回答默认答案,使用*模式而不是标记设置在另一个类别中。我做错什么了?
附加问题:您可能已经注意到,我使用name_set全局变量来查看是否存储了用户名:空的意思是NO,S的意思是是的。我之所以使用这种伪装,是因为在Program中,AIML验证器不允许我使用存在属性。如果有人知道更多的事情来解决这个问题,或者有什么建议,请做我的客人。
谢谢。
发布于 2017-01-26 20:44:21
在我看来,这个类别中的<that>是不正确的。如果我是对的,那是指你的机器人输出的最后一句。那这可能对你更有好处。
<category>
<pattern>*</pattern>
<that>Tell me *</that>
<template>
<think>
<set name="name"><star/></set>
<set name="name_set">S</set>
</think>
Hello <srai>WHAT'S MY NAME?</srai>.
</template>
</category>https://stackoverflow.com/questions/41847654
复制相似问题