所以我正在尝试使用AIML上的正向链接创建一个聊天机器人。到目前为止,我所知道的是仅在特定语句上设置变量值,而这不是简单的。
所以这就是我现在所拥有的:
<category>
<pattern>THE COLOR OF THE * IS *</pattern>
<template>I will remember that
<learnf>
<category>
<pattern>WHAT COLOR IS THE <eval><star/></eval></pattern>
<template><eval><star index= "2"/></eval></template>
</category>
</learnf>
</template>
我正在使用<learnf>
标签,以便机器人将用星号(*)保存用户的输入。这只是保存输入的基本方法,对多个语句来说都不可行。
我想要做的是将输入保存到变量中,以便不知何故,机器人可以演绎出一些内容,如果我问过它,例如说 “法律规定,如果你偷了东西,你就是罪犯” 如果你问机器人“如果偷了什么,法律会说什么?” 它会回答:“你是罪犯”。
<category>
<pattern>THE LAW SAYS IT IS A * FOR AN * TO * TO *</pattern>
<template>So... for an <set name= "race"><star index= "2"/></set> to <set name= "action"><star index= "3"/></set> to <set name= "relation"><star index= "4"/></set>, it is a <set name= "law"><star/></set>?
Ok...</template>
</category>
<category>
<pattern>What law</pattern>
<template>it is a <get name= "law"></get>.</template>
</category>
这段代码是我对Forward Chaining的尝试,如果你们可以帮助我在使用机器人时让FC的“算法”更“可见”,那就太好了。
谢谢!