搭建智能客服机器人设计流程

一、检索型机器人FAQ-Bot

在客服处理的问题中70%都是简单的问答业务,只要找到QA知识库中与用户当前问句语义最相近的标准问句,取出答案给用户就可以了。FAQ-Bot就是处理这类问题的。在没有使用深度学习算法之前,通常采用检索+NLP技术处理。

1.适用场景

适用于解答非用户个性化的问题,返回的是静态知识,无需调用接口返回答案。

2.问答系统处理流程

在这里插入图片描述

基本的问答流程如下:
1)用户提出问题:“忘记密码怎么办”
2)本体识别:用户问题分析后,识别出本体为“密码忘记”
3)计算FAQ相似度:问题与知识库里的标准问题根据相似度计算后召回,例如:

Q1: “登录不上了?”,相似度0.56;
Q2: “登录密码忘记了,找回密码的方式有哪些?”, 相似度0.92 。
4)候选答案排序:Q2-Q1
5)若阀值设定为0.9,Q2达到阀值,返回Q2问题的答案。如果有多个答案都到达阀值,选相似度最高的标准问题的答案返回给用户。如果都没有达到阀值的,但达到推荐阀值的答案有几个的,显示推荐的答案。
6)本体继承:把“忘记密码”继承至下文
7)继续提问:用户问“怎么找回密码”,话题继承。

3.知识库的设计

FAQ-Bot是基于知识库匹配算法设计的,所以首先需要搭建本体知识库,通过新增和维护机器人知识库,来提升机器人问答的准确率和用户体验。

1)它的层级结构是:类目—> 词条, 这里的词条就可以理解为本体,它是关键词的模板。所以当用户问“如何登录”时,识别出来的本体/词条就是“登录”。
2)每个词条需要维护的信息有:同义词、关联问题、相似问题、分类等。其中分类主要用于知识点的管理,当某一分类下数据量较大时,分类还可以作为算法聚类的一个标记,认为分类下的问题相关度高,在检索匹配时作为一个计算因子。
3)本体识别,可看作一个文本分类问题。

QA语料添加与维护,可以分为三个阶段:
1)机器人上线前,处理已有QA。(故障决策分析)
若业务上线前,客户已经有一定的原始用户语料积累,比如通过线上客服渠道或者论坛等积累的问答对,或者有大量用户咨询的问题。可以使用聚类工具自动聚类后,再人工进行调整。知识库应该提供“批量导入”的功能(车险服务平台的问答场景基本都有原始的线上数据,可以通过爬取这些数据后做清洗,提炼出高频问题,然后进行优先处理)
2)冷启动阶段,人工添加+NLP手段扩充语料。
前期没有标注数据的,需要人工手动标注数据。但因为问题和候选答案包含的词通常都很少,此时可以利用同义词、复述句对问题和候选答案进行扩展和改写。
功能上:在编辑界面支持“增加同义词”、“新增相似问句”的功能
3)机器人上线后,人工标注迭代。
系统上线后,对于回流数据(没有答案的、机器推荐而用户没有点击的、机器回答错误的、用户不满意的问题等)进行诊断,系统将这些语料先做聚类,然后由标注人员作统一处理。
具体处理方式可以有:答案纠错、标注到已有问题的相似问题里、新增知识/词条、标注为负训练样本、优化词条和问题标题/关键词等。
从产品层面上,应该提供知识库的“badcase标注”功能,以及提供测试模拟窗口功能(测试demo)
在这里插入图片描述

4.语义相似度计算

通常根据训练方式不同,从前期无标注数据到有一定量标注数据,语义相似度的算法也向深度学习迭代:

1)无监督学习:冷启动阶段没有足够标注数据时,通常使用无监督学习算法。将用户问句和标准问题作降维得到向量表示,用余弦相似度等方法计算出句子间语义相似度(值越靠近1说明越相似)

2)监督学习:机器人上线后经过用户问题和重新标注过程,积累了一定的数据后,通常可使用深度学习算法。如基于RNN的语言模型。用RNN训练出来的语言模型,采用其隐层状态作为词向量,将词向量代入其他需要word embedding的问答匹配方法中,经验证,可以取得比原方法更优秀的表现。

5.阀值

1)关注阀值的可配置性:从产品层面输入阀值后,改变相对应的输出结果。如果阀值配得过高,会影响召回率;太低又会影响准确率。要根据业务场景做权衡。
2)设置问题推荐的阀值。处理逻辑是:当结果达到直出阀值,直接给出答案; 未达到直出阀值,但达到推荐阀值的,给出几个推荐回答; 未达到推荐阀值的,给出无答案回复。无答案回复可以进入配置后台进行配置。
推荐阀值是基于机器阅读理解模型训练的,目前设计是在知识库的词条中进行维护,添加段落,模型会自动列出将关联问题和答案。

6.信息咨询型多轮对话

简单问答中除了单轮对话外,也多轮对话的情况。这类咨询型多轮与任务型多轮有所区分。以下类型的多轮对话情况在FAQ-Bot中处理
1)情况1:条件挖掘。用户提问“如何登录?” ,机器人会返回“登录”的条件相关的提问“请问是希望通过下面哪个渠道登录”,用户作出回答后,机器人返回答案。这个对话虽然是多轮,但不涉及用户的个性化信息,还是用语义匹配来实现。
2)情况2:话题继承。如用户提问“怎样才能删除保单”,话题“删除保单”被记录下来了,若用户问“怎么删除”,机器人应该识别到是同一话题下的关联问题,并返回相应答案。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

深入图像分类:使用美国手语数据集训练定制化神经网络

引言 在前一篇博客中,我们探讨了如何使用MNIST数据集训练一个基础的神经网络来进行手写数字识别。在本文中,我们将更进一步,使用美国手语字母表(ASL)数据集来构建一个定制化的图像分类模型。通过这个过程,…

免费通配符证书的申请指南——从申请到启动https

如果您的网站拥有众多二级子域名,那么通配符证书证书是最好的选择。 免费通配符申请流程如下: 1 创建证书服务商账号 首先选择一个提供免费通配符的服务商,打开国产服务商JoySSL官网,创建一个账号(注册账号时填写注册…

分享自己一篇在亚马逊云科技AWS官网发的Blog技术文章

小李哥在亚马逊AWS官网,作为第一作者发了自己的第一篇AWS Blog文章,也是自己今年在AWS官网的第11篇文章。文章主要内容是描述为出海的金融企业,搭建满足PCI-DSS合规、FIPS 140-2 Level 3安全标准的传输中数据加密云端方案,主要用于…

CSS优惠券、卡券样式绘制

实现左右凹陷中间有虚线效果 效果图 实现思路 从效果图可以看到这个优惠券是左右两边凹陷,中间还有一条虚线,为了封装后插槽使用方便,把优惠券以虚线为准分了两部分。这样布局的好处是上部分内容和下部分都可以自定义,不受内容限…

如何搭建本地的 NPM 私有仓库 Nexus

NPM 本地私有仓库,是在本地搭建NPM私有仓库,对公司级别的组件库进行管理。在日常开发中,经常会遇到抽象公共组件的场景,在项目内部进行公用。新的项目开始时,也会拷贝一份创建一个新的项目,这样做不易于管理…

芯片的可靠性测试项目有哪些?

知识星球(星球名:芯片制造与封测社区,星球号:63559049)里的学员问:封装的可靠性测试都测哪些项目呢? 什么是可靠性测试? 芯片的可靠性测试是针对芯片进行的一系列严格的测试&#x…

量子城域网建设设备系列(二):量子密钥管系统(KMS)

在上文介绍光量子交换机的文章中我们提到,量子保密通信网络的通道切换是由量子密钥管理系统(Key Management System,KMS)给光量子交换机下发信道切换指令,实现整个网络中任意两对量子密钥分发终端的量子信道互联互通&a…

2024.5.3

C风格字符串的越界异常处理 #include <iostream> #include <cstring> using namespace std; class MyStr{char str[200]; public:void set(string str);char at(unsigned int a); }; void MyStr::set(string str){strcpy(this->str,str.c_str()); } char MyStr…

UI-Diffuser——使用生成式扩散模型的UI原型设计算法解析

概述。 移动UI是影响参与度的一个重要因素&#xff0c;例如用户对应用的熟悉程度和使用的便利性。如果你有一个类似的应用程序&#xff0c;你可能会选择一个具有现代、好看的设计的应用程序&#xff0c;而不是一个旧的设计。然而&#xff0c;要从头开始研究什么样的UI最适合应…

解决RTC内核驱动的问题bm8563

常用pcf-8563 , 国产平替BM8563(驱动管脚一致)&#xff1b; 实时时钟是很常用的一个外设&#xff0c;通过实时时钟我们就可以知道年、月、日和时间等信息。 因此在需要记录时间的场合就需要实时时钟&#xff0c;可以使用专用的实时时钟芯片来完成此功能 RTC 设备驱动是一个标准…

wmware启动ubuntu18.04,提示虚拟机使用中

背景和原因 搭建虚拟机环境时&#xff0c;处理问题&#xff0c;忘记虚拟机关机&#xff0c;直接关机&#xff0c;导致虚拟机不能使用&#xff0c;提示使用中 解决 &#xff0c;在关掉虚拟机的情况下&#xff0c;删除虚拟机下的以下文件 总结 每次关电脑前记得先关掉虚拟机&…

【跟马少平老师学AI】-【神经网络是怎么实现的】(七-3)词向量应用举例

一句话归纳&#xff1a;用TextCNN实现文本情感分类。 1&#xff09;TextCNN&#xff1a; 文本的卷积核是一维的。 2&#xff09;文本卷积运算&#xff1a;

【目标检测】DEtection TRansformer (DETR)

一、前言 论文&#xff1a; End-to-End Object Detection with Transformers 作者&#xff1a; Facebook AI 代码&#xff1a; DEtection TRansformer (DETR) 特点&#xff1a; 无proposal&#xff08;R-CNN系列&#xff09;、无anchor&#xff08;YOLO系列&#xff09;、无NM…

淘宝新店铺一般多久开始有单

淘宝新店铺一般多久开始有单 淘宝推广可以使用3an推客。3an推客&#xff08;CPS模式&#xff09;给商家提供的营销工具&#xff0c;由商家自主设置佣金比例&#xff0c;激励推广者去帮助商家推广商品链接&#xff0c;按最终有效交易金额支付佣金&#xff0c;不成交不扣费。是商…

DRF版本组件源码分析

DRF版本组件源码分析 在restful规范中要去&#xff0c;后端的API中需要体现版本。 3.6.1 GET参数传递版本 from rest_framework.versioning import QueryParameterVersioning单视图应用 多视图应用 # settings.pyREST_FRAMEWORK {"VERSION_PARAM": "versi…

[C++][数据结构]二叉搜索树:介绍和实现

二叉搜索树 概念 二叉搜索树又称二叉排序树&#xff0c;它是一棵空树&#xff0c;或者是具有以下性质的二叉树: 若它的左子树不为空&#xff0c;则左子树上所有节点的值都小于根节点的值若它的右子树不为空&#xff0c;则右子树上所有节点的值都大于根节点的值它的左右子树也…

【数据结构】这样学习串的朴素模式匹配算法,简直不要太容易……

串的朴素模式匹配算法 导读一、串的模式匹配1.1 模式匹配是什么&#xff1f;1.2 为什么要有模式匹配算法&#xff1f; 二、朴素模式匹配算法2.1 算法底层逻辑2.2 算法实现2.2.1 过程解析2.2.2 思路分析2.2.3 思路总结2.2.4 代码编写数据类型函数的三要素函数主体 2.2.5 代码测试…

ThreeJS:项目搭建

介绍如何基于Vite、Vue、React构建ThreeJS项目。 Vite项目 1. 初始化项目&#xff0c;命令&#xff1a;npm init vitelatest&#xff0c; 2. 安装依赖&#xff0c;命令&#xff1a;npm install&#xff0c; 3. 启动项目&#xff0c;命令&#xff1a;npm run dev。 4. 样式初始…

06 - metastore服务、hive服务启动脚本以及相关使用技巧

目录 1、metastore服务 1.1、metastore运行模式 1.2、metastore部署 1.3、测试 2、编写Hive服务启动脚本 3、Hive使用技巧 3.1、Hive常用交互命令 3.2、Hive参数配置方式 3.3、Hive常见属性配置 1、metastore服务 Hive的metastore服务的作用是为Hive CLI或者Hiveserv…

【面试经典 150 | Kadane】环形子数组的最大和

文章目录 写在前面Tag题目来源解题思路方法一&#xff1a;求最大非空子数组和最小子数组和 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法&#xff0c;两到三天更新一篇文章&#xff0c;欢迎催更…… 专栏内容以分析题目为主&#xff0c;并附带一些对于本题涉及…