Aiml就是一个xml兼容的文本文档,现简单介绍一下xml规范:
xml每一个型如<aiml topic=”电影”>叫做一个元素,每个元素都是闭合的,也就是说要只要有<aiml>开头就必定有</aiml>相对应与之闭合;topic=”电影”称为改元素的属性,一个元素可以有多个属性没有限制。元素和元素之间可以嵌套,但必须闭合
一个最简单的aiml文件如下:
<?xml version=”1.0″ encoding=”GB2312″?> <aiml> <category> <pattern>你好</pattern>
</category> </aiml>
<?xml version=”1.0″ encoding=”GB2312″?>这个是所有xml文档都必须申明的,如果是中文这里要申明编码为:GB2312,如果是英文则一般申明为:UTF-8
category表示一个目录,表示一个一问一答匹配和一问多种应答匹配,但不允许多中提问匹配。
pattern表示匹配模式,表示用户的输入匹配,以上例子,用户一旦输入你好,那机器人就找到这个匹配,然后取出应答“好”;
template表示应答,这里应答一个“好”字。
注意:aiml所有元素属性都是大小写敏感的!!!aiml的pattern元素里面的英文必须大写!!!
高阶用法介绍
3.1 <star>
可以用*表示1个或多个任意字符
晚安*
好的,晚安,做个好梦哈~
output:
user: 晚安啦/晚安哦,宝贝/晚安,亲/晚安晚安...
bot: 好的,晚安,做个好梦哈~
*的元素可以取出
我是*
哈哈, 最近怎么样呀?
output:
user:我是老师
bot:哈哈,老师最近怎么样啊
有大于一个*时,可根据索引提取,索引从1开始
*介绍一下*
是阿里老板
output
user: 能介绍一下马云吗
bot: 马云是阿里老板
3.2 <srai>
把srai作为输入如下图例子中匹配到* 不聊 * 则相当于用户输入再见再次匹配得到返回”好,回聊哈”
再见
好,回聊哈!
*不聊*
再见
output
user: 再见
bot: 好,回聊哈!
user: 太晚了,不聊了哦
bot: 好,回聊哈!
谁是马云
马云是阿里巴巴的老板
谁是马化腾
马化腾是腾讯的老板
你知道谁是*吗
谁是 !
谁是
output
user: 谁是马云
bot: 马云是阿里巴巴的老板
user: 你知道谁是马云吗
bot: 马云是阿里巴巴的老板
3.3 <random>
<li>
HELLO
Hi~Dear~.
您好呀.
在呢在呢.
臣妾在,圣上有何指示.
嗨,您好,我是王小草机器人,我的主人不在,有什么悄悄话可以和我说哦~
output
li中的随机一个作为返回
3.4 <set>
<get>
我叫*
哈哈, ,别来无恙啊
user: 我叫李莫愁
bot: 哈哈,李莫愁,别来无恙啊
*我是谁*
你是 呀,把你放在心里面
, , ,重要的名字说三遍
output
user: 还记得我是谁吗?
bot: 李莫愁,李莫愁,李莫愁,重要的名字说三遍
3.4 <think>
下图与get、set配合使用 表示把变量记在p1中
没有
那你有打火机吗
true
那你为什么点燃了我的心?
3.5 <that>
没有
那你有打火机吗
true
那你为什么点燃了我的心?
output
bot: 你有打火机吗?
user: 没有
bot: 那你为什么点燃了我的心?
3.6 <condition>
比较name中存储的变量与value值是否相等,相等则输出对应的话语
ASKUSERAQUESTION
小哥哥你多大了?
那你有打火机吗?
你猜我是什么做的?
有没有计划过什么时候结婚?
你知道为什么我的眼睛特别美吗?
给你一样东西你要不要?
哈哈哈,不套路你了,要不咱们聊点别的吧?
HOW ARE YOU FEELING TODAY
happy
I am happy!
I am sad!
3.7 <topic>
给category一个标识
*聊*吧
true
OK, ,我喜欢!
我喜欢苹果
我比较喜欢华为,想问苹果的前置摄像头拍出来的到底是什么鬼
我喜欢苹果
我比较喜欢芒果,苹果我吃厌了
3.8 <learn>
学习指定的aiml文件
3.9 其他
<date>
返回系统时间
几点了
现在是:date
<formal>
格式化
FORMAL *
<gender>
性别转换
DOES IT BELONG TO *
No, it belongs to
<input>
获取用户输入的语句
你能跟我说一样的话吗
你还记得我上一句话吗
<size>
获取规则的数目
你懂多少 *
我懂 条规则.
<version>
你的版本 *
我已经 了.
output
user: 几点了
bot: 现在是: Thu Feb 1 20:15:25 CST 2018
user: FORMAL wang xiao cao
bot: Wang Xiao Cao
user: DOES IT BELONG TO him?
bot: No, it belongs to her
user: 你能跟我说一样的话吗
bot: 你能跟我说一样的话吗
user: 你还记得我上一句话吗
bot: 你能跟我说一样的话吗
user: 你懂多少问答模式了? bot: 我懂 70 条规则. user: 你的版本是什么 bot: 我已经 PyAIML 0.8.6 了.
Comments NOTHING