基于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 相关文章推荐
编写Python脚本来获取Google搜索结果的示例
May 04 Python
python中__call__内置函数用法实例
Jun 04 Python
Python的Django框架安装全攻略
Jul 15 Python
Python实现一个简单的验证码程序
Nov 03 Python
Flask教程之重定向与错误处理实例分析
Aug 01 Python
python实现简单井字棋游戏
Mar 04 Python
Python自动重新加载模块详解(autoreload module)
Apr 01 Python
在服务器上安装python3.8.2环境的教程详解
Apr 26 Python
python的Jenkins接口调用方式
May 12 Python
基于Python 的语音重采样函数解析
Jul 06 Python
python实现马丁策略回测3000只股票的实例代码
Jan 22 Python
详解用selenium来下载小姐姐图片并保存
Jan 26 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
模板引擎Smarty深入浅出介绍
2006/12/06 PHP
yii2.0整合阿里云oss上传单个文件的示例
2017/09/19 PHP
快速解决PHP调用Word组件DCOM权限的问题
2017/12/27 PHP
javascript当onmousedown、onmouseup、onclick同时应用于同一个标签节点Element
2010/01/05 Javascript
JS DOM 操作实现代码
2010/08/01 Javascript
高效的获取当前元素是父元素的第几个子元素
2013/10/15 Javascript
使用Sticker.js实现贴纸效果
2015/01/28 Javascript
jQuery中$.each使用详解
2015/01/29 Javascript
JS实现鼠标点击展开或隐藏表格行的方法
2015/03/03 Javascript
详细解读AngularJS中的表单验证编程
2015/06/19 Javascript
js中substr,substring,indexOf,lastIndexOf,split,replace的用法详解
2015/11/09 Javascript
基于javascript实现泡泡大冒险网页版小游戏
2016/03/23 Javascript
快速使用Bootstrap搭建传送带
2016/05/06 Javascript
如何在 Vue.js 中使用第三方js库
2017/04/25 Javascript
anime.js 实现带有描边动画效果的复选框(推荐)
2017/12/24 Javascript
基于Express框架使用POST传递Form数据
2019/08/10 Javascript
微信小程序 wx:for遍历循环使用实例解析
2019/09/09 Javascript
解决layui轮播图有数据不显示的情况
2019/09/16 Javascript
js刷新页面location.reload()用法详解
2019/12/09 Javascript
javascript 代码是如何被压缩的示例代码
2020/05/06 Javascript
vue+Element中table表格实现可编辑(select下拉框)
2020/05/21 Javascript
JS图片懒加载技术实现过程解析
2020/07/27 Javascript
总结python实现父类调用两种方法的不同
2017/01/15 Python
实用自动化运维Python脚本分享
2018/06/04 Python
Python logging模块用法示例
2018/08/28 Python
Django使用消息提示简单的弹出个对话框实例
2019/11/15 Python
pytorch读取图像数据转成opencv格式实例
2020/06/02 Python
Python计算矩阵的和积的实例详解
2020/09/10 Python
魅力惠奢品线上平台:MEI.COM
2016/11/29 全球购物
Jeep牧马人、切诺基和自由人零配件:4 Wheel Drive Hardware
2017/07/02 全球购物
致标枪运动员广播稿
2014/02/06 职场文书
十佳标兵事迹材料
2014/08/18 职场文书
2014年幼儿园教研工作总结
2014/12/04 职场文书
门球健将观后感
2015/06/16 职场文书
2016应届毕业生就业指导课心得体会
2016/01/15 职场文书
2019公司管理制度
2019/04/19 职场文书