基于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 相关文章推荐
php使用递归与迭代实现快速排序示例
Jan 23 Python
Python设计模式之代理模式实例
Apr 26 Python
python图片验证码生成代码
Jul 02 Python
Pandas实现数据类型转换的一些小技巧汇总
May 07 Python
pandas 小数位数 精度的处理方法
Jun 09 Python
Python使用pyodbc访问数据库操作方法详解
Jul 05 Python
Django model反向关联名称的方法
Dec 15 Python
pyqt5实现俄罗斯方块游戏
Jan 11 Python
解决使用export_graphviz可视化树报错的问题
Aug 09 Python
python实发邮件实例详解
Nov 11 Python
Python+OpenCV图像处理——实现直线检测
Oct 23 Python
Python的property属性详细讲解
Apr 11 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
用PHP实现的生成静态HTML速度快类库
2007/03/31 PHP
PHP抓取淘宝商品的用户晒单评论+图片+搜索商品列表实例
2016/04/14 PHP
PHP使用pdo实现事务处理操作示例
2018/09/05 PHP
提高代码性能技巧谈—以创建千行表格为例
2006/07/01 Javascript
js确定对象类型方法
2012/03/30 Javascript
精心挑选的15个jQuery下拉菜单制作教程
2012/06/15 Javascript
Javascript事件实例详解
2013/11/06 Javascript
简单的JavaScript互斥锁分享
2014/02/02 Javascript
Nodejs实现的一个静态服务器实例
2014/12/06 NodeJs
JS实现响应鼠标点击动画渐变弹出层效果代码
2016/03/25 Javascript
基于JS+Canves实现点击按钮水波纹效果
2016/09/15 Javascript
JS实现焦点图轮播效果的方法详解
2016/12/19 Javascript
详解Angular中的自定义服务Service、Provider以及Factory
2017/04/22 Javascript
jQuery Pagination分页插件_动力节点Java学院整理
2017/07/17 jQuery
Mongoose实现虚拟字段查询的方法详解
2017/08/15 Javascript
深入理解ES7的async/await的用法
2017/09/09 Javascript
angularjs 获取默认选中的单选按钮的value方法
2018/02/28 Javascript
vscode中Vue别名路径提示的实现
2020/07/31 Javascript
[48:22]VGJ.S vs VG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python下载网络文本数据到本地内存的四种实现方法示例
2018/02/05 Python
Django项目中包含多个应用时对url的配置方法
2018/05/30 Python
Python中实例化class的执行顺序示例详解
2018/10/14 Python
Python常用编译器原理及特点解析
2020/03/23 Python
Python Json数据文件操作原理解析
2020/05/09 Python
HTML5 预加载让页面得以快速呈现
2013/08/13 HTML / CSS
乐天旅游台湾网站:Rakuten Travel TW
2017/06/01 全球购物
英国内衣连锁店:Boux Avenue
2018/01/24 全球购物
纬创Java面试题笔试题
2014/10/02 面试题
学生实习自我鉴定
2013/10/11 职场文书
音乐系毕业生自荐信
2013/10/27 职场文书
汽车维修与检测专业应届生求职信
2013/11/12 职场文书
幼儿园毕业寄语
2014/04/03 职场文书
协会周年庆活动方案
2014/08/26 职场文书
小学教师节活动总结
2015/03/20 职场文书
配置nginx 重定向到系统维护页面
2021/06/08 Servers
探讨Java中的深浅拷贝问题
2021/06/26 Java/Android