第一次构建一个对话机器人流程解析(一)

1.问答机器人的组成

1.1 问答机器人的组成结构图

2. 问答机器人的组成-机器人的个人属性

所谓的机器人一般具备有个人的属性,这些属性固定,形成了机器人的个人偏好

在实现过程中,此处使用一个xml配置文件,配置了机器人的个人年龄、性别、职业等内容,同时包含常见有关于机器人属性的问答

服务初始化时,预加载这些属性作为准备;

线上推理时,一般会判断是否是有关于机器人属性的提问,从而进行回答 此处使用模板匹配,进行问题搜索,匹配成功则返回相关的答案

2.1 问答机器人代码实现

import xml.etree.ElementTree as et#python可读取xml工具
template = et.parse('data/robot_template.xml')#加载xmlclass template():def __init__(self):self.template = et.parse(TEMPLATE_PATH)self.robot_info = self.load_robot_info()#加载个人属性self.temp = self.template.findall('temp')#加载问答样式def load_robot_info(self):rebot_info = self.template.find('robot_info')rebot_info_dict = {}for info in rebot_info:rebot_info_dict[info.tag] = info.textreturn rebot_info_dictdef search_answer(self, question):match_temp = Noneflag = Nonefor temp in self.temps:qs = temp.find('question').findall('q')for q in qs:res = re.search(q.text,question)if res:match_temp = tempflag = Truebreakif flag:breakif flag:a_s = choice([i.text for i in match_temp.find('answer').findall('a')])answer = a_s.format(**self.robot_info)return answerelse:return None

3.  问答机器人的组成-基于语料的回答

机器人的对话学习过程中,一般有一些现成的语料,这些语料来源于日常生活的对话

在此处,基于余弦相似度,对用户的提问和已有语料的提问进行匹配,若匹配成功,则表明用户提问与现有语料中有高度相似的提问,从而返回该提问对应的回答

通过这种余弦相似度的匹配,可以构建一个简易的对话系统,但并不准确,且当语料很庞大时,这样的计算是很可怕的,而且准确率很差

在后续的学习过程中会使用更多的语料,通过深度学习模型来生成或者快速检索合适的答案进行回答

3.1 问答机器人的组成-基于语料的回答(预处理)

s1:文本清洗+切词+生成q,a列表

def load_seq_qa():q_list,a_list = [],[]with open(CORPUS_PATH,'r',encoding = 'utf-8') as f:for ind, i in enumerate(f):i = jieba.lcut(i.strip())if ind % 2 == 0:q_list.append(i)else:a_list.append(i)return q_list,a_list

s2:将所得词index化(为后续生成式问答服务)

def build_vocab():q,_ = load_seq_qa()word_dict = set([j for i in q for j in i])word_dict = dict(zip(word_dict,range(len(word_dict))))return word_dict

s3:将所得词embeding化

def build_word_embeding():q,_ = load_seq_qa()word_dict = build_vocab()word_embeding = {}for w in word_dict.keys():word_embeding[w] = []for ind,qs in enumerate(q):for w in qs:word_embeding[w].append(ind)return word_embeding

3.2 问答机器人的组成-基于语料的回答(构建)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/45742.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何选购一台云服务器

说明:基于博主本人经常在用云服务学习技术,许多博客里的技术分享也都是在自己购买的云服务器上操作的,本文介绍根据自己的经验,如何选购一台云服务器 选择产商 云服务可以选择阿里云、华为云、腾讯云、百度云,都是几…

296个地级市GDP相关数据(2000-2023年)

GDP相关数据:衡量地区经济活动的综合指标 国内生产总值(GDP)是衡量一个国家或地区经济规模和发展水平的核心指标。它反映了在一定时期内,所有常住单位生产活动的最终成果。 GDP的种类及其含义: 名义GDP:按…

昆明高校大学智能制造实验室数字孪生可视化系统平台建设项目验收

昆明高校大学智能制造实验室的数字孪生可视化系统平台建设项目,正是在这样的背景下应运而生。项目自启动以来,便受到了校方的高度重视和大力支持。经过数月的紧张筹备和精心实施,项目团队克服了种种技术难题,成功完成了系统的开发…

热题系列9

剑指 Offer 39. 数组中出现次数超过一半的数字 给一个长度为 n 的数组,数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。 例如输入一个长度为9的数组[1,2,3,2,2,2,5,4,2]。由于数字2在数组中出现了5次,超过数组长度的一半&am…

用 Kotlin 编写四则运算计算器:从零开始的简单教程

人不走空 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌赋:斯是陋室,惟吾德馨 目录 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌…

AI搜索助手心流正式上线 小程序版本、APP版本也将推出

7月10日,专为科研人员、高校教师和学生、职场人士研发的大模型应用产品心流正式上线。据了解,其产品定位为用户的AI搜索助手,提供智能搜索、知识问答、智能阅读、辅助创作等能力,旨在帮助用户提升工作和学习效率。 心流支持AI搜索…

AI绘画:midjourney快速生成符合心意的AI人物形象

生成人物的万能句式,包含**「人物的客观描述」「视角」「角度」「距离」「表情」「服装」「风格」「光源」**等内容,也可以只取其中部分的也会得到一个还不错的结果。 人物构图视角的选择 视角可以按照相机相对于被拍摄对象的位置,分为 正面…

微信小程序毕业设计-报刊订阅系统项目开发实战(附源码+论文)

大家好!我是程序猿老A,感谢您阅读本文,欢迎一键三连哦。 💞当前专栏:微信小程序毕业设计 精彩专栏推荐👇🏻👇🏻👇🏻 🎀 Python毕业设计…

网络(二)——套接字编程

文章目录 理解源IP地址和目的IP地址认识端口号认识TCP/UDP协议网络字节序socket编程接口socket 常见APIsockaddr结构 理解源IP地址和目的IP地址 在IP数据包头部中, 有两个IP地址, 分别叫做源IP地址, 和目的IP地址; 源IP即发送方的地址,目的IP即接受方的…

免费开源数字人生成工具

使用步骤更是简单到不行: 1. 输入图片:选择你想要生成动态视频的肖像图片。 2. 输入音频:提供与图片匹配的音频文件,EchoMimic会根据音频内容驱动肖像的动态效果。 3. 设置参数:一般保持默认设置即可,当然&…

【银河麒麟服务器操作系统】系统夯死分析及处理建议

了解银河麒麟操作系统更多全新产品,请点击访问麒麟软件产品专区:https://product.kylinos.cn 服务器环境以及配置 【机型】物理机 处理器: Intel 内存: 512G 整机类型/架构: X86_64 【内核版本】 4.19.90-25…

【C++深入学习】类和对象(一)

欢迎来到HarperLee的学习笔记! 博主主页传送门:HarperLee博客主页! 欢迎各位大佬交流学习! 本篇本章正式进入C的类和对象部分,本部分知识分为三小节。复习: 结构体复习–内存对齐编译和链接函数栈桢的创建…

再升级!视频理解大模型 CogVLM2 开源

节前,我们组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂朋友、今年参加社招和校招面试的同学。 针对大模型技术趋势、算法项目落地经验分享、新手如何入门算法岗、该如何准备面试攻略、面试常考点等热门话题进行了深入的讨论。 总结链接如…

基于JAVA-JSP的电子书下载系统设计与实现

点击下载源码 基于JAVA-JSP电子书下载系统 目 录 第1章 绪论 1 课题的研究背景、内容和意义 1 第2章 主要技术概述 3 2.1 B/S结构 3 2.2 JSP技术 4 2.2.1 JSP技术的强势 5 2.2.2 JSP技术的弱势 5 2.3 SQL SERVER 2000数据库 5 2.4 JDBC数据库连接 6 2.4.1 JDBC接口 …

Mathematica笔记

Mathematica笔记 mathematica等距、不等距数组mathematica多条线作图与循环图例 mathematica等距、不等距数组 mathematica多条线作图与循环图例 Clear["*"] h[x_, a_] a*E^x; LogLogPlot[Evaluate[Table[h[x, i], {i, 1, 20, 2}]], {x, 0.001, 10}, PlotRange -&g…

OpenGL笔记八之EBO和EBO绘制流程

OpenGL笔记八之EBO和EBO绘制流程 —— 2024-07-07 晚上 总结自bilibili赵新政老师的教程 code review! 文章目录 OpenGL笔记八之EBO和EBO绘制流程1.EBO2.glDrawElements:如果使用了ebo,最后一个参数可以写03.glDrawElements:如果使用了ebo…

CSS技巧专栏:一日一例 2.纯CSS实现 多彩边框按钮特效

大家好,今天是 CSS技巧一日一例 专栏的第二篇《纯CSS实现多彩边框按钮特效》 先看图: 开工前的准备工作 正如昨日所讲,为了案例的表现,也处于书写的习惯,在今天的案例开工前,先把昨天的准备工作重做一遍。 清除浏览器的默认样式定义页面基本颜色设定body的样式清除butt…

2024辽宁省数学建模B题【钢铁产品质量优化】思路详解

2024 辽宁省大学数学建模竞赛试题 B 题 钢铁产品质量优化 由于连续退火工序中各阶段的工艺参数之间存在耦合性(加热炉的温度设定会影响后续均热与冷却温度的设定,以及带钢穿行速度),导致难以建立该工序的机理模型,从而…

科特勒营销管理学读后感01

营销管理学之名词解释 任务环境可以理解为营销平台规模,公司营销渠道等等,宏观环境则是社会状况,环境状况。(个人理解)

js逆向-webpack-python

网站(base64):aHR0cHM6Ly93d3cuY29pbmdsYXNzLmNvbS96aA 案例响应解密爬取(webpack) 1、找到目标url 2、进行入口定位(此案例使用 ‘decrypt(’ 关键字搜索 ) 3、找到位置进行分析 --t 为 dat…