model_aiml--aiml对话执行主文件

# -*- coding: utf-8 -*-
import aiml
import sys
import osdef get_module_dir(name):path = getattr(sys.modules[name], '__file__', None)if not path:raise AttributeError('module %s has not attribute __file__' % name)return os.path.dirname(os.path.abspath(path))# alice_path = get_module_dir('aiml') + '/botdata/alice'
alice_path = '/Users/admin/Desktop/Study_aiml'
# 切换到.aiml所在工作目录
os.chdir(alice_path)
alice = aiml.Kernel()
# 通过std-startup.xml启动aiml
alice.learn("std-startup.xml")
# aiml文件有修改时可以通过load aiml b(在xml中pattern配置)进行修改
alice.respond('LOAD AIML B')while True:# 对话接入位置print(alice.respond(input("Enter your message >> ")))
std-startup.xml--固定写法,可配置多个aiml
<aiml version="1.0.1" encoding="UTF-8"><!-- std-startup.xml --><!-- Category是一个自动的AIML单元 --><category><!-- Pattern用来匹配用户输入 --><!-- 如果用户输入 "LOAD AIML B" --><pattern>LOAD AIML B</pattern><!-- Template是模式的响应 --><!-- 这里学习一个aiml文件 --><template><learn>basic_chat.aiml</learn><learn>stude.aiml</learn><!-- 你可以在这里添加更多的aiml文件 --><!--<learn>more_aiml.aiml</learn>--></template></category></aiml>

basic_chat.aiml--机器人对话内容储存文件

<aiml version="1.0.1" encoding="UTF-8">
<!-- basic_chat.aiml --><category><pattern>HELLO</pattern><template>Well, hello!</template></category><!--that使用方法,在于承上启下,当前回复内容查找aiml中所有that,有则可以根据输入内容进行pattern匹配,无则进行新一轮问答--><category><pattern>你是男生吗?</pattern><template>先告诉我你是么?</template></category><category><pattern>是</pattern><that>先告诉我你是么?</that><template>我也是</template></category><category><pattern>不是</pattern><that>先告诉我你是么?</that><template>我也不是</template></category><!--srai使用方法:srai会根据整句去查找整个aiml中的pattern,匹配到后template返回--><category><pattern>张的性别是</pattern><template>男</template></category><category><pattern>李的性别是</pattern><template>女</template></category><category><pattern>你知道*的性别是*</pattern><template><srai><star index="1"/>的性别是</srai></template></category><!--random+li标签随机选取一个进行回复--><category><pattern>你好</pattern><template><random><li>你好1</li><li>你好2</li><li>你好3</li><li>你好4</li><li>你好5</li><li>你好6</li></random></template></category><!--set,get标签get根据name获取set的值--><category><pattern>我是*</pattern><template><set name = "name1"> <star/></set>你好</template></category><category><pattern>我的姓名是*</pattern><template>你的姓名是<get name = "name1"/></template></category><!--think标签,记录变量值不返回给用户--><category><pattern>think我是*</pattern><template><think><set name = "name"> <star/></set></think>你好</template></category><category><pattern>我的姓名是*</pattern><template>你的姓名是<get name = "name"/></template></category><!--condition使用方法,根据输入信息返回不同的结果--><category><pattern>我*</pattern><template><think><set name = "state"><star index = "1"/></set></think><condition name = "state" value = "开心">我也开心</condition><condition name = "state" value = "不开心">我也不开心</condition></template></category><category><pattern>WHAT ARE YOU</pattern><template>I'm a bot, silly!</template></category></aiml>

stude.aiml --机器人自我学习

<aiml version="1.0.1" encoding="UTF-8"><!-- std-startup.xml --><!-- Category是一个自动的AIML单元 --><category><!-- Pattern用来匹配用户输入 --><!-- 如果用户输入 "LOAD AIML B" --><pattern>* 答案是 *</pattern><!-- Template是模式的响应 --><!-- 这里学习一个aiml文件 --><template><!--system可以调用python命令,从而往aiml中写入对话--><system>python3 learn.py '<star index="1"/>' '<star index="2"/>'</system><learn>basic_chat.aiml</learn>好的我学会了<!-- 你可以在这里添加更多的aiml文件 --><!--<learn>more_aiml.aiml</learn>--></template></category></aiml>

learn.py--写入aiml方法

# -*- coding: utf-8 -*-
import sys
# print(sys.argv)
template = """<category><pattern>{}</pattern><template>{}</template></category>"""
file = open("basic_chat.aiml","rb+")
content = file.read()
# seek定位至aiml中最后一行之前,删除</aiml>
file.seek(-7,1)
file.truncate()
file.close()
file1 = open("basic_chat.aiml","a")
file1.write(template.format(sys.argv[1],sys.argv[2])+"\n"+"</aiml>")
file1.close()

python3.8使用aiml总结相关推荐

  1. 聊天机器人-AIML人工智能标记语言

    目录 <span style="color:#333333"><span style="background-color:#f5f5f5"&g ...

  2. Python AIML搭建聊天机器人(附遇到的问题及解决)

    Python AIML搭建聊天机器人(附遇到的问题及解决) AIML全名为Artificial Intelligence Markup Language(人工智能标记语言),是一种创建自然语言软件代理 ...

  3. pip 无法卸载 pillow 解决方案 Not uninstalling pillow at /usr/lib/python3/dist-packages

    1. 问题现象 使用 pip 卸载 pillow 时无法卸载,报如下错误: $ sudo pip3 uninstall pillow Not uninstalling pillow at /usr/l ...

  4. Python2 与 Python3 区别

    Python2.x 与 Python3.x 区别 1. print 函数 Python2 中 print 是语句(statement),Python3 中 print 则变成了函数.在 Python3 ...

  5. Anaconda3+python3.7.10+TensorFlow2.3.0+PyQt5环境搭建

    Anaconda3+python3.7.10+TensorFlow2.3.0+PyQt5环境搭建 一.Anaconda 创建 python3.7环境 1.进入 C:\Users\用户名 目录下,找到 ...

  6. python2转python3文件

    python37 -m 2to3.py -w C:\Users\Administrator\Desktop\搜狗细胞词库处理.py 命令 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA ...

  7. Python3:ImportError: No module named 'compiler.ast'

    from compiler.ast import flatten 上面这条语句好像在python3 以后就废除了,如果使用的话就会报错. Traceback (most recent call las ...

  8. 安装win下的Anaconda ----针对python3.6.4版本

    我的python版本是3.6.4, Anaconda下载地址: Anaconda官网:https://repo.anaconda.com/archive/ 清华大学镜像站:https://mirror ...

  9. Python3 reversed 函数

    描述 reversed 函数返回一个反转的迭代器. 语法 以下是 reversed 的语法: reversed(seq)(seq) 参数 seq -- 要转换的序列,可以是 tuple, string ...

  10. Python3 try-except、raise和assert解析

    20220221 案例 def product(x):result = 1print(x)count = 0for i in x:try:result *= float(i)except Except ...

最新文章

  1. 端到端TVM编译器(上)
  2. 亿级PV超大型网站集群架构图形深度揭秘讲解
  3. 武汉专科计算机学校排名2015,武汉前十名的大专:2021武汉职校排名榜
  4. 秒杀系统必须考虑的 3 个技术问题!
  5. Ubuntu16.04LTS安装ROS Kinetic
  6. capslock键英语怎么读_刚开始读英文原版书该怎么做?商务英语专业有前途吗?...
  7. 实体词典 情感词典_tidytextpy包 | 对三体进行情感分析
  8. PHP案例:数组用法演示
  9. 449A - Jzzhu and Chocolate 贪心
  10. 王者荣耀登录显示换服务器是不是封号,王者荣耀这么查看封号原因?千万不要这么做!...
  11. android room详解
  12. 雀巢咖啡旗下感CAFÉ品牌正式推出全新单品--感CAFÉ鎏光咖啡
  13. 面部表情识别---学习笔记
  14. 51单片机-RGB灯带
  15. 软考高级之系统架构设计师系列【2】考试说明及考点分析
  16. java 拼音 联想_solr6.6.2之拼音联想
  17. python爬取pubmed的文献_使用python來調用pubmed API快速整理文獻
  18. 第一次出国旅行的启示录 —— 关于旅行与人生的思考
  19. apk ipa sis 各是什么东西
  20. 51单片机汇编学习笔记4——子函数

热门文章

  1. 【进大厂必学】3W字180张图学习Linux基础总结
  2. FishC笔记—21 讲 函数:lambda表达式
  3. xposed微信长视频转发_微信万能转发模块xposed下载-微信万能转发模块最新版下载2.2.0-西西软件下载...
  4. 览沃livox_大疆览沃浩界(Livox Horizon)激光雷达测评
  5. 深圳大学C C++ 数据结构题目答案清单完整题库(含期中模拟 期末模拟 期末真题 考前练习)
  6. c语言正确声明的格式,c语言函数声明(c语言函数声明格式)
  7. 共轭梯度法Matlab的实现
  8. CTF|逆向工程软件之IDA
  9. 方舟服务器物品代码,方舟:生存进化 全物品代码ID一览 物品修改代码大全
  10. JavaScript表单验证示例