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 相关文章推荐
Django1.3添加app提示模块不存在的解决方法
Aug 26 Python
Python EOL while scanning string literal问题解决方法
Sep 18 Python
浅谈Python 集合(set)类型的操作——并交差
Jun 30 Python
python3中set(集合)的语法总结分享
Mar 24 Python
python DataFrame获取行数、列数、索引及第几行第几列的值方法
Apr 08 Python
浅谈Django的缓存机制
Aug 23 Python
在python中用url_for构造URL的方法
Jul 25 Python
python实现多进程通信实例分析
Sep 01 Python
django2.2 和 PyMySQL版本兼容问题
Feb 17 Python
基于python计算滚动方差(标准差)talib和pd.rolling函数差异详解
Jun 08 Python
Python爬虫:从m3u8文件里提取小视频的正确操作
May 14 Python
如何使用pdb进行Python调试
Jun 30 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+xml实现在线英文词典查询的方法
2015/01/23 PHP
Js切换功能的简单方法
2010/11/23 Javascript
js注意img图片的onerror事件的分析
2011/01/01 Javascript
基于jquery的DIV随滚动条滚动而滚动的代码
2012/07/20 Javascript
JS图片自动轮换效果实现思路附截图
2014/04/30 Javascript
js Canvas绘制圆形时钟效果
2017/02/17 Javascript
vue 组件的封装之基于axios的ajax请求方法
2018/08/11 Javascript
代码分析vue中如何配置less
2018/09/28 Javascript
vue中使用codemirror的实例详解
2018/11/01 Javascript
vue用BMap百度地图实现即时搜索功能
2019/09/26 Javascript
JavaScript如何操作css
2020/10/24 Javascript
浅谈Python中函数的参数传递
2016/06/21 Python
对Python进行数据分析_关于Package的安装问题
2017/05/22 Python
Python 做曲线拟合和求积分的方法
2018/12/29 Python
pytorch nn.Conv2d()中的padding以及输出大小方式
2020/01/10 Python
Python3与fastdfs分布式文件系统如何实现交互
2020/06/23 Python
python 如何调用远程接口
2020/09/11 Python
详解Pycharm安装及Django安装配置指南
2020/09/15 Python
Python爬虫制作翻译程序的示例代码
2021/02/22 Python
html5跨域通讯之postMessage的用法总结
2013/11/07 HTML / CSS
HTML5中原生的右键菜单创建方法
2016/06/28 HTML / CSS
Crocs卡骆驰洞洞鞋日本官方网站:Crocs日本
2016/08/25 全球购物
乌克兰移动电子产品和相关配件的在线商店:iTMag
2020/03/16 全球购物
德国玩具商店:Planet Happy DE
2021/01/16 全球购物
求两个数的乘积和商数,该作用由宏定义来实现
2013/03/13 面试题
应届生的求职推荐信范文
2013/11/30 职场文书
人民教师的自我评价分享
2014/02/21 职场文书
降消项目实施方案
2014/03/30 职场文书
团队队名口号大全
2014/06/06 职场文书
销售员岗位职责
2014/06/09 职场文书
2014教师党员自我评议(5篇)
2014/09/20 职场文书
房屋出租协议书范本(标准版)
2014/09/24 职场文书
2016年国庆节宣传标语
2015/11/25 职场文书
幼师必备:幼儿园期末教师评语50条
2019/11/01 职场文书
详细谈谈MYSQL中的COLLATE是什么
2021/06/11 MySQL
如何通过cmd 连接阿里云服务器
2022/04/18 Servers