【问题标题】:AIML, recognizing a saved variable in a patternAIML,识别模式中保存的变量
【发布时间】:2018-12-06 16:48:46
【问题描述】:

嘿,我刚刚学习 AIML,我想给我的聊天机器人一个词,然后它会保存并在我稍后回复时识别出来

这是我的尝试:

   <?xml version = "1.0" encoding = "UTF-8"?>
   <aiml>
       <category>
         <pattern> secret word is *</pattern>
         <template>
           <set name = "secretWord"><star/></set>? Ok got it.
         </template>
       </category>

       <category>
       <pattern> <get name = "secretWord"/> </pattern>
       <template>Thats the secret word</template>
       </category>
   </aiml>

到现在,只要我说出密语,它就没有反应

也许有更好/更标准的方法来做到这一点?或者这在aiml中是不可能的?

【问题讨论】:

    标签: templates design-patterns get set aiml


    【解决方案1】:

    使用不同的方法可以实现您想要的。基本问题是您不能在&lt;pattern&gt; 元素中使用&lt;get name="secretWord"/&gt;,因此您需要使用纯文本和星号(*) 的不同模式。因此,您将编辑您的第二个类别以提出问题,如下所示:

    <category>
    <pattern> IS MY SECRET WORD * </pattern>
    <template>
      <condition>
        <li name="secretWord"><value><get name="secretWord"/></value>
          That's the secret word
        </li>
        <li>
          Sorry, "<star/>" is not the secret word
        </li>
      </condition>
    </template>
    </category>
    

    这需要客户输入“我的密码是 FOO 吗?”。验证他们的秘密词,类别将确认或不确认。 &lt;condition&gt; 元素根据其当前值检查“secretWord”属性,如果匹配,则说“这是秘密词”。默认的&lt;li&gt; ... &lt;/li&gt; 会在客户端输入密码错误时显示“对不起...”文本。

    另外,请注意这依赖于使用 value 子元素的 AIML v2,并且通常以大写形式编写模式。

    【讨论】:

      【解决方案2】:

      您可以使用 AIML 中的学习标签来做到这一点。它允许机器人设置一个新类别。这就是多少 AIML 机器人从其用户那里学习新信息的数量。

      <category>
      <pattern>SECRET WORD IS *</pattern>
      <template>
      The secret word is <star/>? Ok got it.
      
          <learn>
              <category>
                  <pattern>
                  <eval><uppercase><star/></uppercase></eval>
                  </pattern>
                  <template>
                  SECRET CATEGORY ACTIVATED!!!
                  </template>
              </category>
          </learn> 
      
      </template>
      </category>
      

      机器人创建的新类别将如下所示(假设您说“秘密单词是 foo”):

      <category>
          <pattern>FOO</pattern>
          <template>SECRET CATEGORY ACTIVATED!!!</template>
      </category>
      

      【讨论】:

        猜你喜欢
        • 2017-06-10
        • 2022-11-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-20
        • 2012-09-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多