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装饰器使用的一些建议
Jun 03 Python
Python中函数eval和ast.literal_eval的区别详解
Aug 10 Python
Python将DataFrame的某一列作为index的方法
Apr 08 Python
python3 kmp 字符串匹配的方法
Jul 07 Python
python去除拼音声调字母,替换为字母的方法
Nov 28 Python
对Python3中bytes和HexStr之间的转换详解
Dec 04 Python
详解Python中is和==的区别
Mar 21 Python
python使用pandas处理大数据节省内存技巧(推荐)
May 05 Python
Django框架模板文件使用及模板文件加载顺序分析
May 23 Python
sqlalchemy实现时间列自动更新教程
Sep 02 Python
python3中确保枚举值代码分析
Dec 02 Python
简单且有用的Python数据分析和机器学习代码
Jul 02 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 判断常量,变量和函数是否存在
2009/04/26 PHP
国外十大最流行的PHP框架排名
2013/07/04 PHP
qq登录,新浪微博登录接口申请过程中遇到的问题
2014/07/22 PHP
PHP文件缓存内容保存格式实例分析
2014/08/20 PHP
php获取一个变量的名字的方法
2014/09/05 PHP
php实现搜索类封装示例
2016/03/31 PHP
Laravel Intervention/image图片处理扩展包的安装、使用与可能遇到的坑详解
2017/11/14 PHP
thinkPHP框架实现的无限回复评论功能示例
2018/06/09 PHP
一文掌握PHP Xdebug 本地与远程调试(小结)
2019/04/23 PHP
PHP开发API接口签名生成及验证操作示例
2020/05/27 PHP
JavaScript 函数replace深入了解
2013/03/14 Javascript
向当前style sheet中插入一个新的style实现方法
2013/04/01 Javascript
jquery事件与函数的使用介绍
2013/09/29 Javascript
js操作输入框提示信息且响应鼠标事件
2014/03/25 Javascript
微信小程序 122100版本更新问题解决方案
2016/12/22 Javascript
js实现首屏延迟加载实现方法 js实现多屏单张图片延迟加载效果
2017/07/17 Javascript
vue实现PC端录音功能的实例代码
2019/06/05 Javascript
layui扩展上传组件模拟进度条的方法
2019/09/23 Javascript
Vue 解决多级动态面包屑导航的问题
2019/11/04 Javascript
[01:04:39]OG vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
[01:22:28]DOTA2-DPC中国联赛 正赛 SAG vs RNG BO3 第一场 1月18日
2021/03/11 DOTA
Python使用scrapy抓取网站sitemap信息的方法
2015/04/08 Python
Python检测网络延迟的代码
2018/05/15 Python
Django 使用Ajax进行前后台交互的示例讲解
2018/05/28 Python
如何使用Python标准库进行性能测试
2019/06/25 Python
python打印直角三角形与等腰三角形实例代码
2019/10/20 Python
python随机生成库faker库api实例详解
2019/11/28 Python
基于numpy中的expand_dims函数用法
2019/12/18 Python
html5调用摄像头功能的实现代码
2018/05/07 HTML / CSS
阿迪达斯新加坡官方网站:adidas新加坡
2019/12/06 全球购物
数据管理员的自我评价分享
2013/11/15 职场文书
家居设计专业个人自荐信范文
2013/11/26 职场文书
出纳岗位职责模板
2013/11/27 职场文书
党员承诺书怎么写
2014/05/20 职场文书
2014年手术室工作总结
2014/11/26 职场文书
自书遗嘱范文
2015/08/07 职场文书