基于Python如何使用AIML搭建聊天机器人


Posted in Python onJanuary 27, 2016

借助 Python 的 AIML 包,我们很容易实现人工智能聊天机器人。AIML,全名为Artificial Intelligence Markup Language(人工智能标记语言),是一种创建自然语言软件代理的XML语言,是由Richard Wallace和世界各地的自由软件社区在1995年至2002年发明的。

AIML 是什么?

AIML由Richard Wallace发明。他设计了一个名为 A.L.I.C.E. (Artificial Linguistics Internet Computer Entity 人工语言网计算机实体) 的机器人,并获得了多项人工智能大奖。有趣的是,图灵测试的其中一项就在寻找这样的人工智能:人与机器人通过文本界面展开数分钟的交流,以此查看机器人是否会被当作人类。AIML是一种为了匹配模式和确定响应而进行规则定义的 XML 格式。

AIML的官方网站:ALICE。

本文简单介绍下如何用Python编写简单的聊天机器人。

1. 安装Python aiml库

pip install aiml

2. 获取alice资源

Python aiml安装完成后在Python安装目录下的 Lib/site-packages/aiml下会有alice子目录,将此目录复制到工作区。
或者在Google code上下载alice brain: aiml-en-us-foundation-alice.v1-9.zip

3. Python下加载alice

取得alice资源之后就可以直接利用Python aiml库加载alice brain了:

import aiml
os.chdir('./res/alice') #切换工作目录到alice文件夹下,视具体情况而定
alice = aiml.Kernel()
alice.learn("startup.xml")
alice.respond('LOAD ALICE')

注意加载时需要切换工作目录到alice下。

4. 与alice聊天

加载之后就可以与alice聊天了,每次只需要调用respond接口:

alice.respond('hello') #这里的hello即为发给机器人的信息

5. 用Tornado搭建聊天机器人网站

利用Tornado可以很方便地搭建一个web接口的聊天机器人。具体的代码可以在此链接下在:web接口的聊天机器人。
下载此代码之后直接运行main.py即可,然后可以通过浏览器访问url与聊天机器人,url类似http://localhost/aiml?req=hello的形式(req参数即为发给机器人的信息)。

注意要运行此代码,需要安装Python 的aiml与Tornado库。

lwons.com上已经搭建了这样的web接口,可以访问http://lwons.com/aiml?req=hello来测试下。

6. 搭建聊天机器人微信订阅号

上一步的web接口可以很方便地改造成一个微信订阅号,实现的效果可以添加微信订阅号 CuriousGuys 后直接发送消息。如果需要微信订阅号的代码可以私信我。

订阅号效果截图:

基于Python如何使用AIML搭建聊天机器人

以上所述给大家介绍了基于Python如何使用AIML搭建聊天机器人的相关内容,希望本文所述对大家有所帮助。

Python 相关文章推荐
合并Excel工作薄中成绩表的VBA代码,非常适合教育一线的朋友
Apr 09 Python
python实现的udp协议Server和Client代码实例
Jun 04 Python
python同时给两个收件人发送邮件的方法
Apr 30 Python
Python通过poll实现异步IO的方法
Jun 04 Python
Python实现包含min函数的栈
Apr 29 Python
Python优化技巧之利用ctypes提高执行速度
Sep 11 Python
python实现旋转和水平翻转的方法
Oct 25 Python
python+selenium实现QQ邮箱自动发送功能
Jan 23 Python
对python生成业务报表的实例详解
Feb 03 Python
From CSV to SQLite3 by python 导入csv到sqlite实例
Feb 14 Python
python中关于数据类型的学习笔记
Jul 19 Python
Python爬虫基础之爬虫的分类知识总结
May 13 Python
使用Python写个小监控
Jan 27 #Python
基于Python实现通过微信搜索功能查看谁把你删除了
Jan 27 #Python
Python图像灰度变换及图像数组操作
Jan 27 #Python
让python在hadoop上跑起来
Jan 27 #Python
CentOS安装pillow报错的解决方法
Jan 27 #Python
python实现文本去重且不打乱原本顺序
Jan 26 #Python
举例讲解Python设计模式编程中的访问者与观察者模式
Jan 26 #Python
You might like
在win系统安装配置 Memcached for PHP 5.3 图文教程
2015/03/03 PHP
ThinkPHP的常用配置选项汇总
2016/03/24 PHP
PHP性能测试工具xhprof安装与使用方法详解
2018/04/29 PHP
PHP正则表达式函数preg_replace用法实例分析
2020/06/04 PHP
项目实践之javascript技巧
2007/12/06 Javascript
js下通过prototype扩展实现indexOf的代码
2010/12/08 Javascript
JavaScript原型继承之基础机制分析
2011/08/26 Javascript
ExtJS下 Ext.Direct加载和提交过程排错小结
2013/04/02 Javascript
没有document.getElementByName方法
2013/08/19 Javascript
兼容主流浏览器的iframe自适应高度js脚本
2014/01/10 Javascript
使用js操作css实现js改变背景图片示例
2014/03/10 Javascript
freemarker判断对象是否为空的方法
2015/08/13 Javascript
JS判断字符串变量是否含有某个字串的实现方法
2016/06/03 Javascript
微信小程序之ES6与事项助手的功能实现
2016/11/30 Javascript
原生js实现水平方向无缝滚动
2017/01/10 Javascript
js实现自动图片轮播代码
2017/03/22 Javascript
JS实现简单的星期格式转换功能示例
2018/07/23 Javascript
axios 实现post请求时把对象obj数据转为formdata
2019/10/31 Javascript
在vue项目中 实现定义全局变量 全局函数操作
2020/10/26 Javascript
[01:06]欢迎来到上海,TI9
2018/08/26 DOTA
Python内置数据类型详解
2014/08/18 Python
tensorflow训练中出现nan问题的解决
2018/02/10 Python
python解决js文件utf-8编码乱码问题(推荐)
2018/05/02 Python
python如何查看微信消息撤回
2018/11/27 Python
2021年值得向Python开发者推荐的VS Code扩展插件
2021/01/25 Python
详解Python中openpyxl模块基本用法
2021/02/23 Python
CSS3解析抖音LOGO制作的方法步骤
2019/04/11 HTML / CSS
CSS3 中filter(滤镜)属性使用详解
2020/04/07 HTML / CSS
PHP使用Redis队列执行定时任务实例讲解
2021/03/24 PHP
党员干部廉洁承诺书
2014/05/28 职场文书
幼儿园门卫岗位职责范本
2014/07/02 职场文书
病人写给医生的感谢信
2015/01/23 职场文书
表扬信范文
2015/05/04 职场文书
追悼词范文大全
2015/06/23 职场文书
MySQL实现配置主从复制项目实践
2022/03/31 MySQL
python中pd.cut()与pd.qcut()的对比及示例
2022/06/16 Python