聊天机器人之语料准备
聊天机器人之语料准备
1. 分词词典
最终词典的格式:
词语 词性(不要和jieba默认的词性重复)
1.1 词典来源
各种输入法的词典 【通过下面链接下载使用】
例如:
https://pinyin.sogou.com/dict/cate/index/97?rf=dictindex
例如:
https://shurufa.baidu.com/dict_list?cid=211
手动收集,根据目前的需求,我们可以手动收集如下词典
机构名称,例如:
传智
,传智播客
,黑马程序员
课程名词,例如:
python
,人工智能+python
,c++
等
1.2 词典处理
输入法的词典都是特殊格式,需要使用特殊的工具才能够把它转化为文本格式
工具名称:深蓝词库转换.exe 【能把各种词库格式的文件转换成txt文件等】
下载地址:https://github.com/studyzy/imewlconverter 【此地址下载的是源码, 在这个网页右面点击Releases,下载win版本】 【转换格式:xxx词库->无拼音纯汉字】
1.3 对多个词典文件内容进行合并
下载使用不同平台的多个词典之后,把所有的txt文件合并到一起供之后使用
2. 准备停用词
2.1 什么是停用词?
对句子进行分词之后,句子中不重要的词
2.2 停用词的准备
常用停用词下载地址:https://github.com/goto456/stopwords
2.3 手动筛选和合并
对于停用词的具体内容,不同场景下可能需要保留和去除的词语不一样
比如:词语哪个
,很多场景可以删除,但是在判断语义的时候则不行
3. 问答对的准备
3.1 现有问答对的样式
问答对有两部分,一部分是咨询老师整理的问答对,一部分是excel中的问答对,
最终我们需要把问答对分别整理到两个txt文档中,如下图(左边是问题,右边是答案):
Excel中的问答对如下图:
3.2 excel中问答对的处理
Excel中的问答对直接使用pandas就能够处理
import re
import pandas as pd
python_qa_path = '../data/test/短问答.xlsx'
def load_duanwenben():ret = pd.read_excel(python_qa_path)column_list = ret.columnsassert '问题' in column_list and '答案' in column_list, 'exel中必须包含问题和答案'for q, a in zip(ret['问题'], ret['答案']):
# q = re.sub("\s+", " ", q)
# q = q.strip()print(q, a)
load_duanwenben()
4. 相似问答对的采集
4.1 采集相似问答对的目的
后续在判断问题相似度的时候,需要有语料用来进行模型的训练,输入两个句子,输出相似度,这个语料不好获取,所以决定从百度知道入手,采集百度知道上面的相似问题,如下图所示:
上面采集的数据会存在部分噪声,部分问题搜索到的结果语义上并不是太相似
4.2 手动构造数据
根据前面的问答对的内容,把问题大致分为了若干类型,对不同类型的问题设计模板,然后构造问题,问题模块如下:
templete = [
#概念
["{kc}","什么是{kc}","{kc}是什么","给我介绍一下{kc}","{kc}可以干什么","能简单说下什么是{kc}吗","我想了解{kc}"],#课程优势
["{kc}课程有什么特点","{jgmc}的{kc}课程有什么特点","{jgmc}的{kc}课程有什么优势","为什么我要来{jgmc}学习{kc}","{jgmc}的{kc}课程有什么优势","为什么要到{jgmc}学习{kc}","{jgmc}的{kc}跟其他机构有什么区别?","为什么选择{jgmc}来学习{kc}?"],#语言优势
#["{kc}","什么是{kc}","{kc}是什么","给我介绍一下{kc}","{kc}可以干什么","能简单说下什么是{kc}吗"],
#特点
["{kc}有什么特点","{kc}有什么优势","{kc}有什么亮点","{kc}有那些亮点","{kc}有那些优势","{kc}有那些特点","{kc}的亮点是什么","{kc}的优势是什么","{kc}的特点是什么"],
#发展前景
["{kc}的发展怎么样?","{kc}的前景怎么样?","{kc}的发展前景如何?","{kc}的未来怎样","{kc}的前景好么" ],
#就业
["{kc}好就业么","{kc}就业机会多么","{kc}的岗位多吗","{kc}工作好找吗","{kc}的市场需求怎么样","{kc}的就业环境怎么样"],
#就业方向
["{kc}学完以后能具体从事哪方面工作?","{kc}的就业岗位有哪些?","{kc}课程学完应聘哪方面工作?","{kc}可以从事哪方面工作?",],
#用途
["{kc}学完可以做什么","{kc}能干什么","学{kc}能干什么","能举例说下{kc}能做什么吗?","{kc}毕业了能干什么","{kc}主要应用在什么领域"],
#就业薪资
["{kc}学完工资多少","学完{kc}能拿多少钱","{kc}的就业薪资多少","{kc}就业的平均是工资多少"],
#学习难度
["{kc}简单么","{kc}容易么","{kc}课程容易么","{kc}上手快么","{kc}课程难么"],
#校区
["在那些城市开设了{kc}","哪里可以学习{kc}","学习{kc}可以去那些城市","{kc}在哪里开班了"],
#学费
["{kc}学费","{kc}多少钱","{kc}的学费多少","{kc}是怎么收费的?","学习{kc}要花多少钱","{kc}是怎么收费的","{kc}课程的价格","{kc}课程的价格是多少"],
#适合人群
["什么人可以学{kc}","哪些人可以学{kc}","学习{kc}有什么要求","学习{kc}需要那些条件","没有基础可以学{kc}吗","学历低可以学习{kc}吗?","成绩不好可以学习{kc}吗?","什么样的人适合学习{kc}?"],
#学习时间
["{kc}需要学多久","{kc}需要多久才能就业","{kc}需要学习多长时间","{kc}的学时是多少","{kc}的课时是多少","{kc}课时","{kc}课时长度","{kc}的课程周期?","0基础学{kc}多久能才就业"],
#学习内容
["{kc}学什么","{kc}学习那些内容","我们在{kc}中学习那些内容","在{kc}中大致都学习什么内容"],
#项目内容
["{kc}的项目有哪些","{kc}有哪些项目","{kc}上课都有哪些实战","{kc}做什么项目?","{kc}项目有多少个?","{kc}课程中有项目吗?"],
#学习某课程的好处
["为什么要学习{kc}?","学习{kc}有哪些好处?","学习{kc}的理由?","为什么我要来学习{kc}"],
#上课时间
["上课时间","你们那边每天的上课时间是怎样的呢?"],
#英语要求
["学习{kc}对英语有要求么","来{jgmc}学习对英语有要求吗?"]
]
其中大括号的内容kc
表示课程,jgmc
表示机构名称
接下来,需要完成两件事
最终我们会把前面准备好的课程字典和机构名称字典中的词语放入大括号中
把kc相同的内容构造成相似问题
聊天机器人之语料准备相关推荐
- 自己动手做聊天机器人 三-语料与词汇资源
当代自然语言处理都是基于统计的,统计自然需要很多样本,因此语料和词汇资源是必不可少的,本节介绍语料和词汇资源的重要性和获取方式 请尊重原创,转载请注明来源网站www.shareditor.com以及原 ...
- 深度操作系统 机器学习_深度学习如何构建情感聊天机器人,第2部分对话系统...
深度操作系统 机器学习 情感聊天机器人(emotional chatbot) From part 1, we have built the BERT sentiment predictor, we n ...
- 聊天机器人资料汇总转
感谢网友收集 Awesome Chatbot 链接:https://github.com/shaohua/awesome-chatbot DEEP LEARNING FOR CHATBOTS 链接:D ...
- 【ChatBot开发笔记】聊天机器人准备工作——初识NLTK库、语料与词汇资源
目录 简述 一.NLTK 1.安装 2.搜索 3.词统计 二.语料与词汇资源 1.举例 2.类似的语料库还有: 3.语料库的通用接口: 4.其他词典资源: 5.加载自己的语料库 结语 简述 2021. ...
- 一个可以使用自己语料进行训练的聊天机器人开源项目
目录 背景 关于语料的说明 seq2seq版本代码执行顺序 seqGAN版本代码执行顺序 参考代码和文献 建议环境 已更新功能清单 版本路线图 背景 自定义语料训练聊天机器人,可以用于智能客服.在线问 ...
- 聊天机器人落地及进阶实战 | 公开课速记
嘉宾 | 邵浩 编辑 | suiling 来源 | AI科技大本营在线公开课 近年来,聊天机器人技术及产品得到了快速的发展.聊天机器人作为人工智能技术的杀手级应用,发展得如火如荼,各种智能硬件层出不穷 ...
- 聊天机器人之需求分析和流程介绍
聊天机器人之需求分析和流程介绍 1. 需求分析 在黑马头条的小智同学板块实现聊天机器人,能够起到智能客服的效果,能够为使用app的用户解决基础的问题,而不用额外的人力. 但是由于语料的限制,所以这里使 ...
- python 自然语言处理 (六) 采用deepQA搭建自动聊天机器人
deepQA是基于tensorflow 实现的开源项目,采用神经网络实现的自动化聊天机器人,在目前,网上的公开中文语料库比较少,采用训练的语料一般都是英文的 第一步: 到github上下载项 ...
- Tensorflow搞一个聊天机器人
Tensorflow搞一个聊天机器人 catalogue 0. 前言 1. 训练语料库 2. 数据预处理 3. 词汇转向量 4. 训练 5. 聊天机器人 - 验证效果 0. 前言 不是搞机器学习 ...
最新文章
- 一定要加强SQL数据库SA
- 观点丨麦肯锡:怎么理解“人工智能最大挑战与机会”
- 如何使用 Java8 实现观察者模式?(下)
- Docker存储和虚拟化存储需求不同
- 【UVA1638】杆子的排列
- session机制和cookie机制
- Hibernate之悲观锁与乐观锁
- mysql无序id怎么优化limit_MYSQL分页limit速度太慢优化方法
- lede 自定义linux,OpenWrt 和 LEDE 宣布正式合并
- FreeWheel容力:如何打造更高质效的技术团队
- 1979. 找出数组的最大公约数
- 【AI视野·今日CV 计算机视觉论文速览 第180期】Wed, 26 Feb 2020
- mysql order by random,sql-MySQL:ORDER BY RAND()的替代方法
- [嵌入式]Ubuntu下mini2440的环境搭建-截图记录-转
- 对于Linux安装mysql5.7版本出现的问题
- 关于信号系统的一些笔记
- Android Dialog的简单说明
- Dijkstra算法,起点到当前点的最短距离及路径 C++实现
- A network analyzer is used for
- 超详细!在我的世界(MC)中使用cocricot模组搭建一个咖啡厅
热门文章
- U^2-Net跨界肖像画,完美复刻人物细节,GitHub标星2.5K+
- Go后台项目架构思考与重构 | 深度长文
- 2月15日Python线上峰会免费学!6场精华分享,用代码“抗”疫
- 谷歌丰田联合成果ALBERT了解一下:新轻量版BERT,参数小18倍,性能依旧SOTA
- 过关斩将打进Kaggle竞赛Top 0.3%,我是这样做的
- 微软亚研院提出用于语义分割的结构化知识蒸馏 | CVPR 2019
- 频频霸榜的Python,竟遭开发者嫌弃!
- 无人驾驶汽车系统入门:基于VoxelNet的激光雷达点云车辆检测及ROS实现
- 保障高并发:企业必须从传统性能测试转向云压测
- ERP已死,中台已凉,DDD称王!