Python 的 AIML
来源:互联网 发布:淘宝鞋店排行榜 编辑:程序博客网 时间:2024/05/21 08:42
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搭建聊天机器人
- aiml语言python对话系统构建
- 我对基于AIML聊天机器人的一点点看法
- AIML 参考
- AIML Overview
- AIML 参考
- Aiml简介
- AIML技术
- AIML标签
- 第二周的随笔,感觉还行,简单介绍了下AIML和及相关技术
- aiml规范研究文档
- aiml规范研究文档
- 人工智能机器人(aiml语言)
- AIML介绍(中文版)
- 聊天机器人文档(AIML)
- aiml语言获取时间,日期
- 人工智能:用AIML写一个机器人
- 还款冷知识,你不问,银行也不会说!
- 任务调度--Quartz的cron表达式
- java中的匿名内部类总结
- github的SSH配置
- 平衡二叉树
- Python 的 AIML
- 复制迁移数据库表数据程序
- 初创公司:大数据时代,如何靠数据挣钱
- IDEA 快速搭建springboot项目,返回HTML首页
- 基于R的数据挖掘方法与实践(1)——数据准备
- 《Springboot极简教程》 Springboot plus Kotlin :Hello,World
- 《Springboot极简教程》使用Spring Boot, JPA, Mysql, ThymeLeaf,gradle, Kotlin快速构建一个CRUD Web App
- 《Kotlin极简教程》第一章 Kotlin简介
- linux shell脚本执行错误:bad substitution