aiml介绍
AIML是Richard Wallace开发的。 他开发了一个叫A.L.I.C.E(Artificial Linguistics Internet Computer Entity)的机器人并且赢了几个人工智能的奖项。 有趣的是, 其中一个图灵测试是让一个人在文本界面跟一个机器人聊几分钟,看看人们是否认为它是个人类。 AIML是一种定义了匹配模式和决定响应的规则的一种XML。
要看完整的AIML入门,可以看一下 Alice Bot’s AIML Primer.你可以在AIML wiki页学更多关于AIML的知识并知道它能做什么。 我们先写一些AIML文件并用Python给它一点生命。
安装
|
|
aiml自带简易英文语料库
Python aiml安装完成后在Python安装目录下的 site-packages/aiml下会有alice子目录,这个是系统自带的一个简单的语料库。
创建标准启动文件 std-startup.xml
std-startup.xml用于加载aiml文件到大脑。
注:采用learn标签来学习aiml文件。这里通过load aiml b命令来匹配,当用户输入这个命令的时候会自动执行重新加载操作。匹配多个aiml文件可以将配置改成 *.aiml
创建aiml文件
|
|
注:pattern标签中,英文必须大写
随机响应
相信这个大伙都是很容易理解的,就是随机从中抽取一个答案回答用户
使用已存在的aiml
编写你自己的AIML文件是一个很有趣的事,但是它将花费很大的功夫。我觉得它需要大概10,000个模式才会开始变得真实起来。幸运的是,ALICE基金会提供了大量免费的AIML文件。在Alice Bot website上浏览AIML文件。
新建一个机器人
这里我们就不累赘这个过程讲解了,如果想了解可以看下面的参考链接,这里我们直接上最终代码
启动程序
|
|
这里为了做测试我做了下修改,通过输入包含session字符串信息来设置session,测试session记录信息的分离,我们来看下测试结果
看我们的session分离的效果出来了。但是很遗憾的是,当我save之后关闭程序重新启动,session的信息并没有被保存下来。
缺点
- 中文aiml语料库过少,人工制作语料库成本太高
- session信息并未作保存,这个是需要自己去优化修改的
参考链接:
http://www.devdungeon.com/content/ai-chat-bot-python-aiml
https://www.pandorabots.com/botmaster/en/tutorial
http://www.alicebot.org/aiml/aaa/
https://www.biaodianfu.com/python-aiml.html
http://www.alicebot.org/documentation/aiml101.html
https://www.tutorialspoint.com/aiml/index.htm