基于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 相关文章推荐
在Django框架中设置语言偏好的教程
Jul 27 Python
用Python的Flask框架结合MySQL写一个内存监控程序
Nov 07 Python
Python程序中用csv模块来操作csv文件的基本使用教程
Mar 03 Python
python发送邮件功能实现代码
Jul 15 Python
Python cookbook(数据结构与算法)找到最大或最小的N个元素实现方法示例
Feb 13 Python
python实现屏保计时器的示例代码
Aug 08 Python
Python中的枚举类型示例介绍
Jan 09 Python
Python实现的爬取百度文库功能示例
Feb 16 Python
django中ORM模型常用的字段的使用方法
Mar 05 Python
python统计字符串中字母出现次数代码实例
Mar 02 Python
Python web框架(django,flask)实现mysql数据库读写分离的示例
Nov 18 Python
使用Python实现音频双通道分离
Dec 25 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
咖啡的传说和历史
2021/03/03 新手入门
php与mysql建立连接并执行SQL语句的代码
2011/07/04 PHP
为何说PHP引用是个坑,要慎用
2018/04/02 PHP
PHP字符串与数组处理函数用法小结
2020/01/07 PHP
javascript一些不错的函数脚本代码
2008/09/10 Javascript
js中settimeout方法加参数
2014/02/28 Javascript
Node.js模块加载详解
2014/08/16 Javascript
JavaScript常用的返回,自动跳转,刷新,关闭语句汇总
2015/01/13 Javascript
.NET微信公众号开发之创建自定义菜单
2015/07/16 Javascript
JavaScript的字符串方法汇总
2016/07/31 Javascript
jQuery实现拖拽可编辑模块功能代码
2017/01/12 Javascript
通过命令行生成vue项目框架的方法
2017/07/12 Javascript
iview table render集成switch开关的实例
2018/03/14 Javascript
vue iView 上传组件之手动上传功能
2018/03/16 Javascript
解决vue中监听input只能输入数字及英文或者其他情况的问题
2018/08/30 Javascript
在Vue中使用icon 字体图标的方法
2019/06/14 Javascript
基于vue写一个全局Message组件的实现
2019/08/15 Javascript
layui使用label标签的方法
2019/09/14 Javascript
[01:08:17]2018DOTA2亚洲邀请赛3月29日 小组赛B组 EG VS VGJ.T
2018/03/30 DOTA
Scrapy框架CrawlSpiders的介绍以及使用详解
2017/11/29 Python
python切片(获取一个子列表(数组))详解
2019/08/09 Python
使用pandas实现连续数据的离散化处理方式(分箱操作)
2019/11/22 Python
Python 剪绳子的多种思路实现(动态规划和贪心)
2020/02/24 Python
如何查看Django ORM执行的SQL语句的实现
2020/04/20 Python
HTML5 canvas实现移动端上传头像拖拽裁剪效果
2016/03/14 HTML / CSS
涉外文秘个人求职的自我评价
2013/10/07 职场文书
酒店拾金不昧表扬信
2014/01/18 职场文书
中式婚礼主持词
2014/03/13 职场文书
2014年社区卫生工作总结
2014/12/18 职场文书
2015年民主评议党员工作总结
2015/05/19 职场文书
幽灵公主观后感
2015/06/09 职场文书
推广普通话的宣传语
2015/07/13 职场文书
中学图书馆工作总结
2015/08/11 职场文书
golang 实现时间戳和时间的转化
2021/05/07 Golang
教你用Python matplotlib库制作简单的动画
2021/06/11 Python
Python采集股票数据并制作可视化柱状图
2022/04/04 Python