Python 的 AIML
AIML 指的是 Artificial Intelligence Markup Language (人工智能标记语言)
1、AIML 是什么?
AIML由Richard Wallace发明。他设计了一个名为 A.L.I.C.E. (Artificial Linguistics Internet Computer Entity 人工语言网计算机实体) 的机器人,并获得了多项人工智能大奖。
首先将创建 AIML 文件,并用 Python 赋予它生命。
AIML的常用标签:
1:pattern tag:支持模式匹配(正则表达式,模糊匹配),及基于template的返回
2:random tag:支持随机回答(一对多)
4:think,system tag: 支持简单逻辑记忆及自定义函数(本来打算扩展一下AIML, 搞一个支持Groovy语言的标签, 结果看到了它的(system)标签, 遂作罢)
5:javascript tag: 支持嵌入js脚本(适用于web chat开发,比如根据情绪改变表情等)。
6:srai tag: 支持多对一回答.
2、创建标准的启动文件
创建一个启动文件 std-startup.xml 作为读取AIML文件的主入口点是标准做法。在这里,将创建了一个初始文件用来匹配一种模式和进行一个动作。我们想匹配模式 load aiml b ,并且使它载入我们的 aiml 大脑作为响应。我们将即时创建 basic_chat.aiml 文件。
<aiml version="1.0.1" encoding="UTF-8"><!-- std-startup.xml --><!-- <category> 作为AIML的原子级单元 --><category><!-- 匹配用户输入的模式 --><!-- 如果用户输入 "LOAD AIML B" --><pattern>LOAD AIML B</pattern><!-- <Template> 用来响应模式 --><!-- <learn>是一个aiml文件 --><template><learn>basic_chat.aiml</learn><!-- 在这下面你能添加更多的aiml文件 --><!--<learn>more_aiml.aiml</learn>--></template></category></aiml>
3、创建 AIML 文件
上面我们已经创建了只有一种模式句柄的 AIML 文件,load aiml b。当我们通过命令行运行这个机器人,它会尝试读取 basic_chat.aiml。除非我们已经完成创建,否则载入失败。下面的示例代码将告诉你 basic_chat.aiml 文件可以加入什么。我们将匹配两种基础的模式和响应。
<aiml version="1.0.1" encoding="UTF-8">
<!-- basic_chat.aiml --><category><pattern>HELLO</pattern><template>Well, hello!</template></category><category><pattern>WHAT ARE YOU</pattern><template>I'm a bot, silly!</template></category></aiml>
4、随机响应
你同样可以像下面的示例代码一样添加随机响应。当接收到“One time I”开头的信息(message),通配符“*”可以进行模糊匹配。
<category><pattern>ONE TIME I *</pattern><template><random><li>Go on.</li><li>How old are you?</li><li>Be more specific.</li><li>I did not know that.</li><li>Are you telling the truth?</li><li>I don't know what that means.</li><li>Try to tell me that another way.</li><li>Are you talking about an animal, vegetable or mineral?</li><li>What is it?</li></random></template>
</category>
5、运用 Python
首先用 pip 安装 aiml 包
sudo pip install aiml
创建了 aiml 类,学习启动文件,然后读取其余 aiml 文件。
import aiml# 创建Kernel()和 AIML 学习文件
kernel = aiml.Kernel()
kernel.learn("std-startup.xml")
kernel.respond("load aiml b")# 按组合键 CTRL-C 停止循环
while True:print kernel.respond(raw_input("Enter your message >> "))
加速大脑载入
当你渐渐有了许多 AIML 文件,机器人就需要很多时间去学习。这就需要大脑文件的介入了。在机器人学习完所有 AIML 文件后,它可以直接以文件形式存储大脑,再次运行时可以大大提升载入时间。
这里写代码片
参考备注:
http://python.jobbole.com/82007/
https://en.wikipedia.org/wiki/AIML
http://www.alicebot.org/documentation/aiml-primer.html
http://www.alicebot.org/aiml/aaa/
http://blog.csdn.net/lcllcl987/article/details/4575779
https://www.biaodianfu.com/python-aiml.html
Python 的 AIML相关推荐
- Python基于AIML智能聊天机器人实战(4)- 机器人自学习能力集成
一.前言 本文是<Python基于AIML智能聊天机器人实战>第四篇:AIML自学习能力集成: AIML是智能对话机器人具有里程碑意义的开源项目,曾斩获多项国际大奖,是基于检索技术的闲聊式 ...
- Python基于AIML智能聊天机器人实战视频教程-张子良-专题视频课程
Python基于AIML智能聊天机器人实战视频教程-244人已学习 课程介绍 Python基于AIML的智能聊天机器人开发实战课程,包括典型案例.基础理论.功能拓展.源码框架解读四个方 ...
- python对话机器人框架_长篇文讲解:使用Python AIML搭建聊天机器人的方法示例(收藏)...
本文内容主要介绍了使用Python AIML搭建聊天机器人的方法示例,我觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随我过来看看吧 AIML全名为Artificial Intelligenc ...
- python aiml_使用Python AIML搭建聊天机器人的方法示例
AIML全名为Artificial Intelligence Markup Language(人工智能标记语言),是一种创建自然语言软件代理的XML语言,是由RichardS. Wallace 博士和 ...
- AIML元素详细说明
目录 前言: 1.简介 2.详细说明 总结: 目录 前言: 智能客服客户咨询功能的实现主要依靠的就是Python的AIML库,这里就先介绍下AIML. 详细的使用教程可参考:https://githu ...
- Python搭建聊天机器人
Python用AIML搭建聊天机器人 AIML,全名为Artificial Intelligence Markup Language(人工智能标记语言),是一种创建自然语言软件代理的XML语言,是由R ...
- chatbot聊天机器人技术路线汇总
版权声明:博主原创文章,转载请注明来源,谢谢合作!! https://mp.csdn.net/mdeditor/84481818 聊天机器人实现的技术途径 大约可分为4种:1. 第一种是属于" ...
- chatbot聊天机器人技术路线
聊天机器人实现的技术途径大约可分为以下4种: (其中第一种是属于"调用第三方API",也就是说核心代码和数据库不掌握在自己手里)(第二.三.四种属于开源框架,也就是说我们可以下载其 ...
- 转载:chatbot聊天机器人技术路线
转载&备份: https://blog.csdn.net/tian_panda/article/details/80664578 聊天机器人实现的技术途径大约可分为以下4种: (其中第一种是属 ...
最新文章
- boost::range_const_iterato相关的测试程序
- java中如何确定是数字_java中怎么判断指定的数据是字符串是否是数字?
- 关于第三周——回顾与修正
- 免费SSL申请:(各大服务商资源综合)- 免费获取
- 11、classmethod和staticmethod
- 在浏览的地址栏中,直接调用js「javascript:alert(hello wrold);」。
- 数据库设计是否应该允许空值的存在
- 「leetcode」40.组合总和II【回溯算法】详解!
- 4.剑指Offer --- 解决面试题的思路
- Python零基础学习笔记(三十九)—— time
- 计算机office demo,办公软件应用(Office2007)中级 DEMO盘-2013.doc
- 病毒、蠕虫、木马学习笔记
- 随机出题 php,asp.net/net/c#随机出题在线考试系统
- 什么是IPFS - BlockChain Storage 区块链存储 (1)
- 《从零开始的 RPG 游戏制作教程》第十五期:地图发布,以及再见
- 2023二建建筑施工备考第二天Day02
- 第十五章 宏观经济政策
- http://localhost:8080/../[object%20Object]
- DTC管理DTB和DTS
- SSM框架项目【米米商城】69-93:多条件查询