基于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 相关文章推荐
Linux下编译安装MySQL-Python教程
Feb 02 Python
python通过正则查找微博@(at)用户的方法
Mar 13 Python
举例讲解Python中is和id的用法
Apr 03 Python
python查看FTP是否能连接成功的方法
Jul 30 Python
Python制作爬虫采集小说
Oct 25 Python
Python图像处理之识别图像中的文字(实例讲解)
May 10 Python
python模块smtplib学习
May 22 Python
Python实现二维曲线拟合的方法
Dec 29 Python
Django实现分页显示效果
Oct 31 Python
python pygame实现滚动横版射击游戏城市之战
Nov 25 Python
TensorFlow2.0:张量的合并与分割实例
Jan 19 Python
推荐值得学习的12款python-web开发框架
Aug 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
Smarty foreach控制循环次数的实现详解
2013/07/03 PHP
Parse正式发布开源PHP SDK
2014/08/11 PHP
Yii中的relations数据关联查询及统计功能用法详解
2016/07/14 PHP
php和nginx交互实例讲解
2019/09/24 PHP
php设计模式之迭代器模式实例分析【星际争霸游戏案例】
2020/04/07 PHP
Jquery插件之打造自定义的select标签
2011/11/30 Javascript
简单漂亮的js弹窗可自由拖拽且兼容大部分浏览器
2013/10/22 Javascript
用js判断输入是否为中文的函数
2014/03/10 Javascript
JavaScript实现经典排序算法之插入排序
2016/12/28 Javascript
浅谈Node.js 子进程与应用场景
2018/01/24 Javascript
vue几个常用跨域处理方式介绍
2018/02/07 Javascript
简述JS浏览器的三种弹窗
2018/07/15 Javascript
layui的表单验证支持ajax判断用户名是否重复的实例
2019/09/06 Javascript
Vue3新特性之在Composition API中使用CSS Modules
2020/07/13 Javascript
整理Python中的赋值运算符
2015/05/13 Python
python实现的正则表达式功能入门教程【经典】
2017/06/05 Python
Python中Selenium模拟JQuery滑动解锁实例
2017/07/26 Python
Python引用传值概念与用法实例小结
2017/10/07 Python
python线程中同步锁详解
2018/04/27 Python
python3使用smtplib实现发送邮件功能
2018/05/22 Python
Python爬虫文件下载图文教程
2018/12/23 Python
解决Python中回文数和质数的问题
2019/11/24 Python
使用Matplotlib 绘制精美的数学图形例子
2019/12/13 Python
Python异步编程之协程任务的调度操作实例分析
2020/02/01 Python
TensorFlow2.0矩阵与向量的加减乘实例
2020/02/07 Python
Python HTMLTestRunner测试报告view按钮失效解决方案
2020/05/25 Python
飞利浦比利时官方网站:Philips比利时
2016/08/24 全球购物
这段代码难道不该打印出56吗
2013/02/27 面试题
医学生个人求职信范文
2013/09/24 职场文书
2014年上半年工作自我评价
2014/01/18 职场文书
小区停车场管理制度
2014/01/27 职场文书
高中生期末评语大全
2014/01/28 职场文书
2014年医务科工作总结
2014/12/18 职场文书
2014年小学美术工作总结
2014/12/20 职场文书
2015年主婚人婚礼致辞
2015/07/28 职场文书
详细聊聊MySQL中慢SQL优化的方向
2021/08/30 MySQL