首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Aiml 1.0 -*模式

Aiml 1.0 -*模式
EN

Stack Overflow用户
提问于 2017-01-25 09:18:58
回答 1查看 457关注 0票数 1

我想知道如何创建与此会话相匹配的AIML:

代码语言:javascript
复制
User: What's my name?
Bot:  Right now I don't know. Tell me, what's your name?
User: Gandalf.
Bot:  Hello Gandalf.

所以我试着用这两种分类。

代码语言:javascript
复制
<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验证器不允许我使用存在属性。如果有人知道更多的事情来解决这个问题,或者有什么建议,请做我的客人。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-26 20:44:21

在我看来,这个类别中的<that>是不正确的。如果我是对的,那是指你的机器人输出的最后一句。那这可能对你更有好处。

代码语言:javascript
复制
<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>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41847654

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档