基于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入门之语句(if语句、while语句、for语句)
Jan 19 Python
python通过装饰器检查函数参数数据类型的方法
Mar 13 Python
Python psutil模块简单使用实例
Apr 28 Python
介绍Python中的文档测试模块
Apr 28 Python
Django框架会话技术实例分析【Cookie与Session】
May 24 Python
django-allauth入门学习和使用详解
Jul 03 Python
Python爬取视频(其实是一篇福利)过程解析
Aug 01 Python
Python中xml和dict格式转换的示例代码
Nov 07 Python
Python导入模块包原理及相关注意事项
Mar 25 Python
详解pandas获取Dataframe元素值的几种方法
Jun 14 Python
Python基于execjs运行js过程解析
Nov 27 Python
如何利用python实现列表嵌套字典取值
Jun 10 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中,文件上传
2006/12/06 PHP
IIS7.X配置PHP运行环境小结
2011/06/09 PHP
PHP图片水印类的封装
2017/07/06 PHP
Laravel 连接(Join)示例
2019/10/16 PHP
jquery 操作DOM案例代码分享
2012/04/05 Javascript
js格式化货币数据实现代码
2013/09/04 Javascript
javascript自定义函数参数传递为字符串格式
2014/07/29 Javascript
用javascript关闭本窗口技巧小结
2014/09/05 Javascript
jquery实现一个简单的表单验证实例
2016/03/30 Javascript
Bootstrap安装环境配置教程分享
2016/05/27 Javascript
Javascript中的数组常用方法解析
2016/06/17 Javascript
JavaScript实现拖拽元素对齐到网格(每次移动固定距离)
2016/11/30 Javascript
JavaScript适配器模式详解
2017/10/19 Javascript
JavaScript类的继承多种实现方法
2020/05/30 Javascript
原生js中运算符及流程控制示例详解
2021/01/05 Javascript
基于OpenCV python3实现证件照换背景的方法
2019/03/22 Python
django的settings中设置中文支持的实现
2019/04/28 Python
解决Pyinstaller 打包exe文件 取消dos窗口(黑框框)的问题
2019/06/21 Python
解决Python内层for循环如何break出外层的循环的问题
2019/06/24 Python
Python 多线程搜索txt文件的内容,并写入搜到的内容(Lock)方法
2019/08/23 Python
python读文件的步骤
2019/10/08 Python
PyTorch 随机数生成占用 CPU 过高的解决方法
2020/01/13 Python
python支持多继承吗
2020/06/19 Python
详解Python 循环嵌套
2020/07/09 Python
Python使用pickle进行序列化和反序列化的示例代码
2020/09/22 Python
俄罗斯韩国化妆品网上商店:Cosmasi.ru
2019/10/31 全球购物
上海雨人软件技术开发有限公司测试题
2015/07/14 面试题
小学生美德少年事迹材料
2014/08/24 职场文书
知识就是力量演讲稿
2014/09/13 职场文书
用人单位终止解除劳动合同证明书
2014/10/06 职场文书
财务工作失职检讨书
2014/11/21 职场文书
2014年小班保育员工作总结
2014/12/23 职场文书
2015建军节87周年演讲稿
2015/03/19 职场文书
详解如何使用Node.js实现热重载页面
2021/05/06 Javascript
MySQL 分页查询的优化技巧
2021/05/12 MySQL
MySQL如何构建数据表索引
2021/05/13 MySQL