新闻资讯
看你所看,想你所想

aiml

aiml

AIML,全名为Artificial Intelligence Markup Language(人工智慧标记语言),是一种创建自然语言软体代理的XML语言,是由Richard Wallace和世界各地的自由软体社区在1995年至2002年发明的。

基本介绍

  • 中文名:人工智慧标记语言
  • 外文名:Artificial Intelligence Markup Language
  • 简称:aiml
  • 发明时间:1995-2002

背景

它的雏形是一个名为"A.L.I.C.E." ("Artificial Linguistic Internet Computer Entity")的高度扩展的Eliza机器人。ALICE总共赢得3次每年度的Loebner奖,并且在2004年获得了Chatterbox Challenge的冠军。由于A.L.I.C.E. 的AIML设定是在GNU GPL协定下发布的,所以已经有许多基于该程式和AIML库的“克隆ALICE”出现。目前AIML已经有了Java,Ruby,Python, C ,C#,Pascal等语言的版本。

AIML的元素

category元素

category是AIML库中的基本单位,每个category元素都至少包含两个子元素:pattern和template元素。下面是个简单的例子:
<category>
<pattern>WHAT IS YOUR NAME</pattern>
<template>My name is Leo.</template>
</category>
当这个AIML库被载入之后,你问机器人“WHAT IS YOUR NAME”,机器人便会回答“My name is Leo.”。

Pattern元素

Pattern主要用来匹配用户输入,在原生的英文AIML语法中Pattern支持 _ 和 * 的模糊匹配。例如:
<category>
<pattern>WHAT IS YOUR *</pattern>
<template>My name is Leo.</template>
</category>
只要用户的输入是以“WHAT IS YOUR ”开头,机器人就会回复“My name is Leo.”。

Template元素

很明显Template元素是机器人的对用户提问的回答,当用户的输入和同一个category下的Pattern相匹配是,就会将此category元素下的Template输出。

That元素

机器人之所以有思考功能,主要就是that元素的作用。例如:
<category A>
<pattern>是的</pattern>
<that>你是程式设计师吗?</that>
<template>你最擅长的程式语言是什幺?</template>
</category>
<category B>
<pattern>是的</pattern>
<that>你是学生吗?</that>
<template> 你是哪个学校的</template>
</category>
机器人首先通过pattern匹配,匹配到了“是的”但是机器人的资料库中对应“是的”的回答必然非常多,比方有下面A和B两个categories。于是机器人便去匹配that标籤,也就是机器人自己上句说过的话,即“你是程式设计师吗?”这样它就可以确定应该匹配category A了,最后给出正确的回应“你最擅长的程式语言是什幺?”

相关推荐

声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:yongganaa@126.com