基于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之Python文档
Oct 10 Python
利用Python的Django框架中的ORM建立查询API
Apr 20 Python
Python2.x版本中maketrans()方法的使用介绍
May 19 Python
详解Python自建logging模块
Jan 29 Python
用TensorFlow实现戴明回归算法的示例
May 02 Python
Windows下将Python文件打包成.EXE可执行文件的方法
Aug 03 Python
对python3 中方法各种参数和返回值详解
Dec 15 Python
python ipset管理 增删白名单的方法
Jan 14 Python
python 实现多线程下载视频的代码
Nov 15 Python
pyinstaller打包程序exe踩过的坑
Nov 19 Python
在python中使用pymysql往mysql数据库中插入(insert)数据实例
Mar 02 Python
python实现数据结构中双向循环链表操作的示例
Oct 09 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 获取远程文件内容的函数代码
2010/03/24 PHP
php+curl 发送图片处理代码分享
2015/07/09 PHP
php 多继承的几种常见实现方法示例
2019/11/18 PHP
PHP7 弃用功能
2021/03/09 PHP
日期 时间js控件
2009/05/07 Javascript
jQuery中的bind绑定事件与文本框改变事件的临时解决方法
2010/08/13 Javascript
chrome浏览器不支持onmouseleave事件的解决技巧
2013/05/31 Javascript
JavaScript动态插入script的基本思路及实现函数
2013/11/11 Javascript
jQuery判断checkbox是否选中的3种方法
2014/08/12 Javascript
JavaScript中使用arguments获得函数传参个数实例
2014/08/27 Javascript
基于jquery实现的自动补全功能
2015/03/12 Javascript
JS获取及设置TextArea或input文本框选择文本位置的方法
2015/03/24 Javascript
AngularJS中$interval的用法详解
2016/02/02 Javascript
基于Bootstrap使用jQuery实现简单可编辑表格
2016/05/04 Javascript
浅谈js基本数据类型和typeof
2016/08/09 Javascript
微信小程序-横向滑动scroll-view隐藏滚动条
2017/04/20 Javascript
vue按需引入element Transfer 穿梭框
2017/09/30 Javascript
如何使用puppet替换文件中的string
2018/12/06 Javascript
NVM安装nodejs的方法实用步骤
2019/01/16 NodeJs
对Layer弹窗使用及返回数据接收的实例详解
2019/09/26 Javascript
vue常用高阶函数及综合实例
2021/02/25 Vue.js
python处理文本文件并生成指定格式的文件
2014/07/31 Python
今天 平安夜 Python 送你一顶圣诞帽 @微信官方
2017/12/25 Python
Python中sort和sorted函数代码解析
2018/01/25 Python
python解决pandas处理缺失值为空字符串的问题
2018/04/08 Python
python3.X 抓取火车票信息【修正版】
2018/06/19 Python
python实现汉诺塔算法
2021/03/01 Python
Python谱减法语音降噪实例
2019/12/18 Python
Python selenium环境搭建实现过程解析
2020/09/08 Python
人力资源管理专业应届生求职信
2013/09/28 职场文书
《在家里》教后反思
2014/03/01 职场文书
文明村镇申报材料
2014/05/06 职场文书
四川省传达学习贯彻党的群众路线教育实践活动总结大会精神新闻稿
2014/10/26 职场文书
厉害!这是Redis可视化工具最全的横向评测
2021/07/15 Redis
Python Numpy库的超详细教程
2022/04/06 Python
基于Python实现nc批量转tif格式
2022/08/14 Python