基于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使用reportlab画图示例(含中文汉字)
Dec 03 Python
python调用windows api锁定计算机示例
Apr 17 Python
深入解析Python中函数的参数与作用域
Mar 20 Python
Python基于回溯法子集树模板解决全排列问题示例
Sep 07 Python
Python对切片命名的实现方法
Oct 16 Python
代码实例讲解python3的编码问题
Jul 08 Python
Django中使用haystack+whoosh实现搜索功能
Oct 08 Python
numpy 声明空数组详解
Dec 05 Python
django admin 根据choice字段选择的不同来显示不同的页面方式
May 13 Python
使用pyecharts1.7进行简单的可视化大全
May 17 Python
pycharm sciview的图片另存为操作
Jun 01 Python
Pandas数据类型之category的用法
Jun 28 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
服务器web工具 php环境下
2010/12/29 PHP
PHP中使用localhost连接Mysql不成功的解决方法
2014/08/20 PHP
使用XHGui来测试PHP性能的教程
2015/07/03 PHP
ThinkPHP路由机制简介
2016/03/23 PHP
js技巧--转义符"\"的妙用
2007/01/09 Javascript
List all the Databases on a SQL Server
2007/06/21 Javascript
文本框回车提交与禁止提交示例
2013/09/27 Javascript
jquery Tab效果和动态加载的简单实例
2013/12/11 Javascript
javascript字符串替换及字符串分割示例代码
2013/12/12 Javascript
jQuery中;function($,undefined) 前面的分号的用处
2014/12/17 Javascript
js实现使用鼠标拖拽切换图片的方法
2015/05/04 Javascript
javascript实现简单的进度条
2015/07/02 Javascript
JavaScript中for循环的几种写法与效率总结
2017/02/03 Javascript
微信小程序实现移动端滑动分页效果(ajax)
2017/06/13 Javascript
关于JS与jQuery中的文档加载问题
2017/08/22 jQuery
jQuery实现html双向绑定功能示例
2017/10/09 jQuery
微信小程序上传多图到服务器并获取返回的路径
2019/05/05 Javascript
vue proxy 的优势与使用场景实现
2020/06/15 Javascript
Vue 实现对quill-editor组件中的工具栏添加title
2020/08/03 Javascript
[52:44]VGJ.T vs infamous Supermajor小组赛D组败者组第一轮 BO3 第一场 6.3
2018/06/04 DOTA
Python实现网站注册验证码生成类
2017/06/08 Python
Python基于Pymssql模块实现连接SQL Server数据库的方法详解
2017/07/20 Python
利用Python循环(包括while&for)各种打印九九乘法表的实例
2017/11/06 Python
python3判断url链接是否为404的方法
2018/08/10 Python
Django实现表单验证
2018/09/08 Python
使用python写的opencv实时监测和解析二维码和条形码
2019/08/14 Python
pytorch加载自己的图像数据集实例
2020/07/07 Python
Opodo意大利:欧洲市场上领先的在线旅行社
2019/10/24 全球购物
什么是触发器(trigger)? 触发器有什么作用?
2013/09/18 面试题
企业管理部经理岗位职责
2013/12/24 职场文书
共产党员公开承诺书范文
2014/03/28 职场文书
大学生自我评价200字(4篇)
2014/09/17 职场文书
党风廉政建设调研报告
2015/01/01 职场文书
违纪检讨书范文
2015/01/27 职场文书
求职信范文怎么写
2015/03/19 职场文书
Meta增速拉垮,元宇宙难当重任
2022/04/29 数码科技