Python实现聊天机器人的示例代码


Posted in Python onJuly 09, 2018

一、AIML是什么

AIML全名为Artificial Intelligence Markup Language(人工智能标记语言),是一种创建自然语言软件代理的XML语言,是由RichardS. Wallace 博士和Alicebot开源软件组织于1995-2000年间发明创造的。AIML是一种为了匹配模式和确定响应而进行规则定义的 XML 格式。

二、实现第一个聊天机器人

(一)安装Python aiml库

pip install aiml

(二)获取alice资源

Python aiml安装完成后在Python安装目录下的 site-packages的aiml下会有alice子目录(比如D:\Program Files\Python36\Lib\site-packages\aiml\botdata\alice),这个是系统自带的一个简单的英文语料库。

(三)编程实现机器人聊天

1 程序

# -*- coding: utf-8 -*-
import aiml
import sys
import os
 
 
def get_module_dir(name):
 print("module", sys.modules[name])
 path = getattr(sys.modules[name], '__file__', None)
 print(path)
 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'

os.chdir(alice_path)  # 切换到语料库所在工作目录

alice = aiml.Kernel()  # 创建机器人alice对象
alice.learn("startup.xml") # 加载...\\botdata\\alice\\startup.xml
alice.respond('LOAD ALICE') # 加载...\\botdata\\alice目录下的语料库
 
while True:
 message = input("Enter your message >> ")
 if("exit" == message):
  exit()
 response = alice.respond(message) # 机器人应答
 print(response)

2 运行结果

Python实现聊天机器人的示例代码

三、参考资料

https://3water.com/article/143395.htm

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python cookbook(字符串与文本)针对任意多的分隔符拆分字符串操作示例
Apr 19 Python
Python实现中一次读取多个值的方法
Apr 22 Python
python读取csv文件并把文件放入一个list中的实例讲解
Apr 27 Python
python中利用h5py模块读取h5文件中的主键方法
Jun 05 Python
Python采集猫眼两万条数据 对《无名之辈》影评进行分析
Dec 05 Python
python判断计算机是否有网络连接的实例
Dec 15 Python
Python利用lxml模块爬取豆瓣读书排行榜的方法与分析
Apr 15 Python
python中利用matplotlib读取灰度图的例子
Dec 07 Python
pyecharts绘制中国2020肺炎疫情地图的实例代码
Feb 12 Python
Python 删除List元素的三种方法remove、pop、del
Nov 16 Python
python实现登录与注册系统
Nov 30 Python
python井字棋游戏实现人机对战
Apr 28 Python
Atom的python插件和常用插件说明
Jul 08 #Python
Python中pip更新和三方插件安装说明
Jul 08 #Python
python中sys.argv函数精简概括
Jul 08 #Python
python输出100以内的质数与合数实例代码
Jul 08 #Python
详解Python中的正则表达式
Jul 08 #Python
实例讲解Python爬取网页数据
Jul 08 #Python
python十进制和二进制的转换方法(含浮点数)
Jul 07 #Python
You might like
php递归实现无限分类生成下拉列表的函数
2010/08/08 PHP
详解PHP中的null合并运算符
2015/12/30 PHP
php获取flash尺寸详细数据的方法
2016/11/12 PHP
Javascript----文件操作
2007/01/18 Javascript
javascript 异常处理使用总结
2009/06/21 Javascript
javascript showModalDialog 内跳转页面的问题
2010/11/25 Javascript
JavaScript中使用构造器创建对象无需new的情况说明
2012/03/01 Javascript
jQuery实现类似淘宝购物车全选状态示例
2013/06/26 Javascript
js实现弹窗插件功能实例代码分享
2013/12/12 Javascript
点击A元素触发B元素的事件在IE8下会识别成A元素
2014/09/04 Javascript
浅谈jQuery中 wrap() wrapAll() 与 wrapInner()的差异
2014/11/12 Javascript
jQuery地图map悬停显示省市代码分享
2015/08/20 Javascript
JavaScript数组去重的几种方法效率测试
2016/10/23 Javascript
基于Bootstrap漂亮简洁的CSS3价格表(附源码下载)
2017/02/28 Javascript
NodeJS处理Express中异步错误
2017/03/26 NodeJs
ES6新特性七:数组的扩充详解
2017/04/21 Javascript
JavaScript原型继承_动力节点Java学院整理
2017/06/30 Javascript
vue+iview+less+echarts实战项目总结
2018/02/22 Javascript
手淘flexible.js框架使用和源代码讲解小结
2018/10/15 Javascript
javascript定时器的简单应用示例【控制方块移动】
2019/06/17 Javascript
vue响应式更新机制及不使用框架实现简单的数据双向绑定问题
2019/06/27 Javascript
Python异常处理总结
2014/08/15 Python
Python中声明只包含一个元素的元组数据方法
2014/08/25 Python
Python读取csv文件分隔符设置方法
2019/01/14 Python
python 字典访问的三种方法小结
2019/12/05 Python
Python第三方库的几种安装方式(小结)
2020/04/03 Python
Python数据正态性检验实现过程
2020/04/18 Python
在pycharm中关掉ipython console/PyDev操作
2020/06/09 Python
python 判断一组数据是否符合正态分布
2020/09/23 Python
俄语地区最大的中国商品在线购物网站之一:Umka Mall
2019/11/03 全球购物
Fox Racing官方网站:越野摩托车和山地自行车装备和服装
2019/12/23 全球购物
荣耀俄罗斯官网:HONOR俄罗斯
2020/10/31 全球购物
古诗之感恩老师
2019/10/24 职场文书
教你利用python实现企业微信发送消息
2021/05/23 Python
Python中glob库实现文件名的匹配
2021/06/18 Python
CSS实现章节添加自增序号的方法
2021/06/23 HTML / CSS