基于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将多个文本文件合并为一个文本的代码(便于搜索)
Mar 13 Python
Python列表和元组的定义与使用操作示例
Jul 26 Python
使用python实现ANN
Dec 20 Python
Pycharm 创建 Django admin 用户名和密码的实例
May 30 Python
Python tkinter的grid布局及Text动态显示方法
Oct 11 Python
便捷提取python导入包的属性方法
Oct 15 Python
从0开始的Python学习014面向对象编程(推荐)
Apr 02 Python
Django实现微信小程序的登录验证功能并维护登录态
Jul 04 Python
用Python实现BP神经网络(附代码)
Jul 10 Python
python内置函数sorted()用法深入分析
Oct 08 Python
python 实现按对象传值
Dec 26 Python
Python面向对象之多态原理与用法案例分析
Dec 30 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
蝙蝠侠:侠影之谜
2020/03/04 欧美动漫
PHP Ajax中文乱码问题解决方法
2009/02/27 PHP
php 中文字符入库或显示乱码问题的解决方法
2010/04/12 PHP
zf框架的zend_cache缓存使用方法(zend框架)
2014/03/14 PHP
PHP安装memcached扩展笔记
2015/05/28 PHP
PHP中十六进制颜色与RGB颜色值互转的方法
2019/03/18 PHP
基于thinkphp5框架实现微信小程序支付 退款 订单查询 退款查询操作
2020/08/17 PHP
9个javascript语法高亮插件 推荐
2009/07/18 Javascript
jQuery html() in Firefox (uses .innerHTML) ignores DOM changes
2010/03/05 Javascript
Jquery Validate 正则表达式实用验证代码大全
2013/08/23 Javascript
根据表格中的某一列进行排序的javascript代码
2013/11/29 Javascript
Js表格万条数据瞬间加载实现代码
2014/02/20 Javascript
javascript实现表格排序 编辑 拖拽 缩放
2015/01/02 Javascript
jQuery获取某天的农历日期并判断是否除夕或新年的方法
2016/03/01 Javascript
JavaScript必知必会(十) call apply bind的用法说明
2016/06/08 Javascript
防止Node.js中错误导致进程阻塞的办法
2016/08/11 Javascript
vue中的非父子间的通讯问题简单的实例代码
2017/07/19 Javascript
微信{"errcode":48001,"errmsg":"api unauthorized, hints: [ req_id: 1QoCla0699ns81 ]"}
2018/10/12 Javascript
python 实现调用子文件下的模块方法
2018/12/07 Python
wxPython之wx.DC绘制形状
2019/11/19 Python
python对指定字符串逆序的6种方法(小结)
2020/04/02 Python
如何打包Python Web项目实现免安装一键启动的方法
2020/05/21 Python
芬兰攀岩、山地运动和户外活动用品购物网站:Bergfreunde
2016/10/06 全球购物
美国最大的袜子制造商和零售商:Renfro Socks
2017/09/03 全球购物
idealfit英国:世界领先的女性健身用品和运动衣物品牌
2017/11/25 全球购物
俄罗斯购买剧院和演唱会门票网站:Parter.ru
2019/11/09 全球购物
中国好声音华少广告词
2014/03/17 职场文书
青年志愿者先进事迹
2014/05/06 职场文书
班主任师德师风自我剖析材料
2014/10/02 职场文书
大学军训的体会
2014/11/08 职场文书
2014年电信员工工作总结
2014/12/19 职场文书
2016秋季小学开学寄语
2015/12/03 职场文书
职业生涯规划书之大学四年
2019/08/07 职场文书
小学四年级作文之最感动的一件事
2019/11/01 职场文书
Win11安全功能升级:内置防网络钓鱼功能
2022/04/08 数码科技
Go语言编译原理之变量捕获
2022/08/05 Golang