基于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 相关文章推荐
基于scrapy实现的简单蜘蛛采集程序
Apr 17 Python
python 多线程实现检测服务器在线情况
Nov 25 Python
python脚本替换指定行实现步骤
Jul 11 Python
使用Python读取安卓手机的屏幕分辨率方法
Mar 31 Python
Python简单获取网卡名称及其IP地址的方法【基于psutil模块】
May 24 Python
python实现requests发送/上传多个文件的示例
Jun 04 Python
使用NumPy和pandas对CSV文件进行写操作的实例
Jun 14 Python
Python可迭代对象操作示例
May 07 Python
通过python实现windows桌面截图代码实例
Jan 17 Python
NumPy排序的实现
Jan 21 Python
jupyter notebook 增加kernel教程
Apr 10 Python
python 基于opencv实现图像增强
Dec 23 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
这东西价格,可以买几台TECSUN S-2000
2021/03/02 无线电
php在线打包程序源码
2008/07/27 PHP
PHP实现全角字符转为半角方法汇总
2015/07/09 PHP
PHP 中使用explode()函数切割字符串为数组的示例
2017/05/06 PHP
基于PHP实现的多元线性回归模拟曲线算法
2018/01/30 PHP
PHP实现二维数组(或多维数组)转换成一维数组的常见方法总结
2019/12/04 PHP
js 动态选中下拉框
2009/11/26 Javascript
Javascript 设计模式(二) 闭包
2010/05/26 Javascript
Prototype源码浅析 String部分(三)之HTML字符串处理
2012/01/15 Javascript
轻松创建nodejs服务器(1):一个简单nodejs服务器例子
2014/12/18 NodeJs
javascript正则表达式中的replace方法详解
2015/04/20 Javascript
判断访客终端类型集锦
2015/06/05 Javascript
jquery实现网站列表切换效果的2种方法
2016/08/12 Javascript
vue.js利用Object.defineProperty实现双向绑定
2017/03/09 Javascript
基于JavaScript实现的折半查找算法示例
2017/04/14 Javascript
vue用Object.defineProperty手写一个简单的双向绑定的示例
2018/07/09 Javascript
MockJs结合json-server模拟后台数据
2020/08/26 Javascript
uni app仿微信顶部导航条功能
2019/09/17 Javascript
Python编码时应该注意的几个情况
2013/03/04 Python
python实现从字典中删除元素的方法
2015/05/04 Python
关于pytorch多GPU训练实例与性能对比分析
2019/08/19 Python
深入了解python中元类的相关知识
2019/08/29 Python
Python类中方法getitem和getattr详解
2019/08/30 Python
python 对任意数据和曲线进行拟合并求出函数表达式的三种解决方案
2020/02/18 Python
Python3 filecmp模块测试比较文件原理解析
2020/03/23 Python
python+selenium+chromedriver实现爬虫示例代码
2020/04/10 Python
Django 实现 Websocket 广播、点对点发送消息的代码
2020/06/03 Python
日本必酷网络直营店:Biccamera
2019/03/23 全球购物
法学毕业生自我鉴定
2013/11/08 职场文书
晚归检讨书
2014/02/19 职场文书
工作过失检讨书
2014/02/23 职场文书
投标担保书范文
2014/04/02 职场文书
委托公证书
2014/04/08 职场文书
新员工实习期个人工作总结
2015/10/15 职场文书
写一个Python脚本自动爬取Bilibili小视频
2021/04/24 Python
Mysql官方性能测试工具mysqlslap的使用简介
2021/05/21 MySQL