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相关推荐

  1. Python基于AIML智能聊天机器人实战(4)- 机器人自学习能力集成

    一.前言 本文是<Python基于AIML智能聊天机器人实战>第四篇:AIML自学习能力集成: AIML是智能对话机器人具有里程碑意义的开源项目,曾斩获多项国际大奖,是基于检索技术的闲聊式 ...

  2. Python基于AIML智能聊天机器人实战视频教程-张子良-专题视频课程

    Python基于AIML智能聊天机器人实战视频教程-244人已学习 课程介绍         Python基于AIML的智能聊天机器人开发实战课程,包括典型案例.基础理论.功能拓展.源码框架解读四个方 ...

  3. python对话机器人框架_长篇文讲解:使用Python AIML搭建聊天机器人的方法示例(收藏)...

    本文内容主要介绍了使用Python AIML搭建聊天机器人的方法示例,我觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随我过来看看吧 AIML全名为Artificial Intelligenc ...

  4. python aiml_使用Python AIML搭建聊天机器人的方法示例

    AIML全名为Artificial Intelligence Markup Language(人工智能标记语言),是一种创建自然语言软件代理的XML语言,是由RichardS. Wallace 博士和 ...

  5. AIML元素详细说明

    目录 前言: 1.简介 2.详细说明 总结: 目录 前言: 智能客服客户咨询功能的实现主要依靠的就是Python的AIML库,这里就先介绍下AIML. 详细的使用教程可参考:https://githu ...

  6. Python搭建聊天机器人

    Python用AIML搭建聊天机器人 AIML,全名为Artificial Intelligence Markup Language(人工智能标记语言),是一种创建自然语言软件代理的XML语言,是由R ...

  7. chatbot聊天机器人技术路线汇总

    版权声明:博主原创文章,转载请注明来源,谢谢合作!! https://mp.csdn.net/mdeditor/84481818 聊天机器人实现的技术途径 大约可分为4种:1. 第一种是属于" ...

  8. chatbot聊天机器人技术路线

    聊天机器人实现的技术途径大约可分为以下4种: (其中第一种是属于"调用第三方API",也就是说核心代码和数据库不掌握在自己手里)(第二.三.四种属于开源框架,也就是说我们可以下载其 ...

  9. 转载:chatbot聊天机器人技术路线

    转载&备份: https://blog.csdn.net/tian_panda/article/details/80664578 聊天机器人实现的技术途径大约可分为以下4种: (其中第一种是属 ...

最新文章

  1. boost::range_const_iterato相关的测试程序
  2. java中如何确定是数字_java中怎么判断指定的数据是字符串是否是数字?
  3. 关于第三周——回顾与修正
  4. 免费SSL申请:(各大服务商资源综合)- 免费获取
  5. 11、classmethod和staticmethod
  6. 在浏览的地址栏中,直接调用js「javascript:alert(hello wrold);」。
  7. 数据库设计是否应该允许空值的存在
  8. 「leetcode」40.组合总和II【回溯算法】详解!
  9. 4.剑指Offer --- 解决面试题的思路
  10. Python零基础学习笔记(三十九)—— time
  11. 计算机office demo,办公软件应用(Office2007)中级 DEMO盘-2013.doc
  12. 病毒、蠕虫、木马学习笔记
  13. 随机出题 php,asp.net/net/c#随机出题在线考试系统
  14. 什么是IPFS - BlockChain Storage 区块链存储 (1)
  15. 《从零开始的 RPG 游戏制作教程》第十五期:地图发布,以及再见
  16. 2023二建建筑施工备考第二天Day02
  17. 第十五章 宏观经济政策
  18. http://localhost:8080/../[object%20Object]
  19. DTC管理DTB和DTS
  20. SSM框架项目【米米商城】69-93:多条件查询

热门文章

  1. 数据,数据对象,数据元素,数据项的关系图
  2. git如何新建分支进行开发
  3. js通用判断指定日期是周几,是否是周六、周日
  4. 1.第三章 选择结构(一)
  5. 聚类算法——kmeans和meanshift
  6. matlab怎么读取simulink中的时序数据?
  7. Java中append方法和add方法的区别
  8. C语言实现wav文件的读写
  9. 世界最大射电望远镜(Arecibo)用于探测地外文明
  10. Python中的文件路径