创建基本的AIML类别和模式

287 阅读4分钟

image.png

我们已经知道AIML这种标记语言了吗?

人工智能标记语言被称为AIML(不要与人工智能和机器学习[AI/ML]相混淆)。一种名为AIML的基于XML的标记语言,用于创建人工智能的聊天机器人和虚拟助手。AIML使人类界面的开发成为可能,同时使实施的编程、理解和维护要求保持在低水平。

创建类别、模式和模板

AIML由三个基本组成部分组成:类别、模式和模板。一个类别是AIML知识库的基本单位。每个类别由一个输入问题、一个输出答案和一个可选的上下文组成。一个类别又被进一步分类为模板和模式。

AIML的目标是使用刺激-反应方法使对话建模更加简单和容易。模式代表输入(通常是问题),也叫刺激,由AIML解释器接收。模板代表解释器对给定输入产生的响应(或答案)。

上下文元素是可选的,它指定了类别与输入相匹配时必须存在的背景。例如,一个类别可能有一个上下文元素,指定一个特定的主题或状态,聊天机器人或虚拟助理必须在这个类别中与输入匹配。它为开发更复杂的、对环境敏感的聊天机器人和虚拟助手提供了一种方式,能够以更细微的方式理解和回应自然语言输入。"那个 "和 "主题 "是两个主要类别的可选语境的名称。

基本例子

下面是一个非常简单的AIML类别的例子:

<aiml>  <category>    <pattern> WHEN SHOULD I PACK MY BAG </pattern>    <template>Well, college starts at 8.45. </template>  </category></aiml>

标签代表用户的输入。它应该是标签内的第一个标签。这个<模板>标记可以保存数据、调用另一个程序、给出条件性答案或委托给其它类别。它应该是标签内的第二个标签。

什么是标签?

标签作为插入聊天机器人的代码片断和指令的标识符。对话模式的建模是AIML定义的数据对象类型的任务,称为AIML对象。从技术上讲,AIML对象是语言标签,每个标签表示一个语言指令。

AIML模式语言中唯一的字符是单词、空格和通配符,如'_'和'*'。AIML解释器更喜欢带有'_'的模式而不是带有'*'的模式。

它们是如何工作的?

AIML聊天机器人在训练期间从模板中学习回复,然后更新并作为回复提供给用户。回复的文本格式、教给机器人的条件性回复,如多个if/else情况,以及随机回复--当机器人与用户接触时总是出现在使用中--构成了模板元素。

文本中的刺激-反应知识是由AIML组件封装的。在这些元素中,字符数据通常由AIML解释器处理,偶尔也会留下未解析的数据,供响应者稍后处理。

上下文的例子

<category>  <pattern>WHAT ARE THE FEATURES OF PRODUCT X</pattern>  <template>Here are the features of Product X: ...</template>  <that>PREVIOUSLY ASKED ABOUT PRODUCT X</that>  <topic>PRODUCTS</topic></category>

在这个例子中,类别对应于输入*"WHAT ARE THE FEATURES OF PRODUCT X",并提供关于产品X的特征的信息。然而,该类别还包括**<**that >< **topic>**元素,这就要求用户之前询问过产品X,并且在 "产品"主题中,该类别才能与输入匹配。这意味着,如果用户之前询问过产品X* ,并且目前在 "产品"主题中,该类别将只匹配输入。

结论

AIML中的其他基本标签,如和,允许在聊天机器人或虚拟助手中做出更复杂的反应和逻辑。AIML类别的可选上下文元素允许创建更复杂的、对上下文敏感的聊天机器人和虚拟助手,它们能以更细微的方式理解和响应自然语言输入。总的来说,AIML为开发能够识别和响应自然语言输入的聊天机器人和虚拟助手提供了一个多功能的、强大的框架。