基于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实现探测socket和web服务示例
Mar 28 Python
使用Python对SQLite数据库操作
Apr 06 Python
解决安装tensorflow遇到无法卸载numpy 1.8.0rc1的问题
Jun 13 Python
Python3.5内置模块之os模块、sys模块、shutil模块用法实例分析
Apr 27 Python
python自动发微信监控报警
Sep 06 Python
django框架使用views.py的函数对表进行增删改查内容操作详解【models.py中表的创建、views.py中函数的使用,基于对象的跨表查询】
Dec 12 Python
PyQT5 emit 和 connect的用法详解
Dec 13 Python
python3 自动打印出最新版本执行的mysql2redis实例
Apr 09 Python
Django使用Profile扩展User模块方式
May 14 Python
Django设置Postgresql的操作
May 14 Python
使用Keras 实现查看model weights .h5 文件的内容
Jun 09 Python
Python使用socket_TCP实现小文件下载功能
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
thinkphp中空模板与空模块的用法实例
2014/11/26 PHP
php上传excel表格并获取数据
2017/04/27 PHP
PHP+JS实现的实时搜索提示功能
2018/03/13 PHP
从JavaScript 到 JQuery (1)学习小结
2009/02/12 Javascript
JAVASCRIPT style 中visibility和display之间的区别
2010/01/22 Javascript
extjs 04_grid 单击事件新发现
2012/11/27 Javascript
jQuery中remove()方法用法实例
2014/12/25 Javascript
js中日期的加减法
2015/05/06 Javascript
jQuery UI库中dialog对话框功能使用全解析
2016/04/23 Javascript
JS简单设置下拉选择框默认值的方法
2016/08/20 Javascript
Centos7 中安装 Node.js v4.4.4
2016/11/03 Javascript
javascript基于原型链的继承及call和apply函数用法分析
2016/12/15 Javascript
js遍历json的key和value的实例
2017/01/22 Javascript
JS中Safari浏览器中的Date
2017/07/17 Javascript
jQuery实现右侧抽屉式在线客服功能
2017/12/25 jQuery
BootStrap自定义popover,点击区域隐藏功能的实现
2018/01/23 Javascript
微信小程序人脸识别功能代码实例
2019/05/07 Javascript
vue使用混入定义全局变量、函数、筛选器的实例代码
2019/07/29 Javascript
Element-UI中关于table表格的那些骚操作(小结)
2019/08/15 Javascript
IE11下CKEditor在Bootstrap Modal中下拉问题的解决
2019/09/25 Javascript
使用Vant完成Dialog弹框案例
2020/11/11 Javascript
python转换摩斯密码示例
2014/02/16 Python
浅谈机器学习需要的了解的十大算法
2017/12/15 Python
Python函数装饰器实现方法详解
2018/12/22 Python
浅谈python之高阶函数和匿名函数
2019/03/21 Python
Python中查看变量的类型内存地址所占字节的大小
2019/06/26 Python
keras模型保存为tensorflow的二进制模型方式
2020/05/25 Python
基于tf.shape(tensor)和tensor.shape()的区别说明
2020/06/30 Python
基于Html5实现的react拖拽排序组件示例
2018/08/13 HTML / CSS
amazeui 验证按钮扩展的实现
2020/08/21 HTML / CSS
BNKR中国官网:带你感受澳洲领先潮流时尚
2018/08/21 全球购物
酒店管理专业学生求职信
2013/09/27 职场文书
音乐幼师求职信
2014/07/09 职场文书
化学专业毕业生求职信
2014/07/28 职场文书
关于Oracle12C默认用户名system密码不正确的解决方案
2021/10/16 Oracle
一条 SQL 语句执行过程
2022/03/17 MySQL