基于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中黄金分割法实现方法
May 06 Python
python基础教程之匿名函数lambda
Jan 17 Python
Python实现将json文件中向量写入Excel的方法
Mar 26 Python
Python中函数的基本定义与调用及内置函数详解
May 13 Python
python实现字符串完美拆分split()的方法
Jul 16 Python
python requests指定出口ip的例子
Jul 25 Python
python 定时器每天就执行一次的实现代码
Aug 14 Python
python利用递归方法实现求集合的幂集
Sep 07 Python
Python实现哲学家就餐问题实例代码
Nov 09 Python
python dir函数快速掌握用法技巧
Dec 09 Python
Python的Tqdm模块实现进度条配置
Feb 24 Python
Django框架中模型的用法
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
Adodb的十个实例(清晰版)
2006/12/31 PHP
从一个不错的留言本弄的mysql数据库操作类
2007/09/02 PHP
pw的一个放后门的方法分析
2007/10/08 PHP
php扩展ZF――Validate扩展
2008/01/10 PHP
php根据年月获取当月天数及日期数组的方法
2016/11/30 PHP
作为PHP程序员你要知道的另外一种日志
2018/07/30 PHP
PHP常见的序列化与反序列化操作实例分析
2019/10/28 PHP
javascript实现简单的二级联动
2015/03/19 Javascript
js实现文本上下来回滚动
2017/02/03 Javascript
使用vue.js实现checkbox的全选和多个的删除功能
2017/02/17 Javascript
bootstrap是什么_动力节点Java学院整理
2017/07/14 Javascript
js遍历添加栏目类添加css 再点击其它删除css【推荐】
2018/06/12 Javascript
在vue2.0中引用element-ui组件库的方法
2018/06/21 Javascript
详解JavaScript修改注册表的方法
2020/01/05 Javascript
python单链表实现代码实例
2013/11/21 Python
Python中内建函数的简单用法说明
2016/05/05 Python
Python 类与元类的深度挖掘 I【经验】
2016/05/06 Python
Python 中 list 的各项操作技巧
2017/04/13 Python
Python设计模式之中介模式简单示例
2018/01/09 Python
python实现字符串和字典的转换
2018/09/29 Python
python 常见字符串与函数的用法详解
2018/11/23 Python
python 自动重连wifi windows的方法
2018/12/18 Python
解决python3 安装不了PIL的问题
2019/08/16 Python
Python 3.8正式发布重要新功能一览
2019/10/17 Python
python绘制雪景图
2019/12/16 Python
python判断变量是否为int、字符串、列表、元组、字典的方法详解
2020/02/13 Python
彻底弄明白CSS3的Media Queries(跨平台设计)
2010/07/27 HTML / CSS
CSS3实现swap交换动画
2016/01/19 HTML / CSS
TripAdvisor斯洛伐克:阅读评论、比较价格和酒店预订
2018/04/25 全球购物
协议书样本
2014/04/23 职场文书
疾病防治方案
2014/05/31 职场文书
商业企业管理专业求职信
2014/07/10 职场文书
2014广电局实施党的群众路线教育实践活动方案思想汇报
2014/09/22 职场文书
看雷锋电影观后感
2015/06/10 职场文书
2016年教师节贺卡寄语
2015/12/04 职场文书
MySQL数据库事务的四大特性
2022/04/20 MySQL