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之编写类之三子类
Oct 11 Python
使用IronPython把Python脚本集成到.NET程序中的教程
Mar 31 Python
Python利用递归和walk()遍历目录文件的方法示例
Jul 14 Python
Python对象属性自动更新操作示例
Jun 15 Python
python实现批量注册网站用户的示例
Feb 22 Python
python实现复制文件到指定目录
Oct 16 Python
Python批量将图片灰度化的实现代码
Apr 11 Python
解决redis与Python交互取出来的是bytes类型的问题
Jul 16 Python
Pycharm调试程序技巧小结
Aug 08 Python
python3中编码获取网页的实例方法
Nov 16 Python
python调用jenkinsAPI构建jenkins,并传递参数的示例
Dec 09 Python
使用Pytorch实现two-head(多输出)模型的操作
May 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简单静态页生成过程
2008/03/27 PHP
php表单转换textarea换行符的方法
2010/09/10 PHP
PHP学习 变量使用总结
2011/03/24 PHP
php中使用session防止用户非法登录后台的方法
2015/01/27 PHP
PHP实现读取文件夹及批量重命名文件操作示例
2019/04/15 PHP
Javascript 去除数组的重复元素
2010/05/04 Javascript
JQuery Ajax通过Handler访问外部XML数据的代码
2010/06/01 Javascript
js对象的比较
2011/02/26 Javascript
用jquery实现自定义风格的滑动条实现代码
2011/04/26 Javascript
javascript开发技术大全-第1章javascript概述
2011/07/03 Javascript
javascript正则表达式基础知识入门
2015/04/20 Javascript
JavaScript知识点总结(十一)之js中的Object类详解
2016/05/31 Javascript
jQuery自适应轮播图插件Swiper用法示例
2016/08/24 Javascript
js面向对象编程总结
2017/02/16 Javascript
Vue中computed与methods的区别详解
2018/03/24 Javascript
详解Vue SPA项目优化小记
2018/07/03 Javascript
jQuery实现的淡入淡出图片轮播效果示例
2018/08/29 jQuery
[02:36]DOTA2英雄基础教程 帕格纳
2014/01/20 DOTA
[01:28:31]《加油DOTA》真人秀 第五期
2014/09/01 DOTA
Python脚本实现网卡流量监控
2015/02/14 Python
Python中装饰器兼容加括号和不加括号的写法详解
2017/07/05 Python
Python协程的用法和例子详解
2017/09/09 Python
python实现随机调用一个浏览器打开网页
2018/04/21 Python
python初学者,用python实现基本的学生管理系统(python3)代码实例
2019/04/10 Python
python获取微信企业号打卡数据并生成windows计划任务
2019/04/30 Python
pandas的排序和排名的具体使用
2019/07/31 Python
Django中自定义查询对象的具体使用
2019/10/13 Python
pygame实现打字游戏
2021/02/19 Python
HTML5实现的图片无限加载的瀑布流效果另带边框圆角阴影
2014/03/07 HTML / CSS
linux面试题参考答案(11)
2012/05/01 面试题
高校自主招生自荐信
2013/12/09 职场文书
本科毕业生求职自荐信
2014/02/03 职场文书
校本课程教学计划
2015/01/19 职场文书
邀请函怎么写
2015/01/30 职场文书
2015年学校财务工作总结
2015/05/19 职场文书
Python matplotlib绘制雷达图
2022/04/13 Python