如何搭建一个智能客服:从NLP到多轮对话与多流程设计
ccwgpt 2024-11-20 13:14 94 浏览 0 评论
如今,智能客服在我们的日常生活中已随处可见,那么它们是如何理解我们的意图,回答我们的问题并提供帮助的呢?本文作者用通俗易懂的文字讲解了智能客服对话流程的设计,推荐给对智能客服、对话式人工智能感兴趣的小伙伴阅读。
对话式人工智能产品越来越常见,从Siri到电话客服,不知不觉中它们已在你身边寻觅了一个位置。笔者的产品是一款去年上线的客服机器人,简单聊聊从0到1的经验。
从交互形式来划分,智能客服包括纯语音(如天猫精灵),纯文本(如小冰),纯可视化界面(如一些电商的客服,完全通过界面交互来完成对话),语音+可视化界面(如Siri等手机助手)。交互形式没有好坏,这一点同非AI产品一样,根据用户使用场景选择最合适的形式即可。
从产品定义出发,智能客服类产品,最根本的价值在于以低成本取代人工客服工作中大量重复性的部分,再基于这个前提,去挖掘更多商业变现的可能性。人工客服的工作大致分为两种,一种是咨询类的,客服只需回答问题;另一种是申请类的,客服要帮客户完成一些业务办理。
因此,从可实现的功能来划分,智能客服可分为问答式和业务办理式,再细分为单轮/多轮问答与单轮/多轮业务申请。首先什么叫单轮对话呢?
“吃了吗您呐?”
“吃了”
那么多轮对话的概念呢?
“吃了吗您呐?”
“吃了”
“吃了什么呀”
“老北京炸酱面”
多轮对话的另一个名字,叫作基于上下文关系的对话。单轮与多轮申请也是同理,一句话就能解决的为单轮,需要反复几次的是为多轮。
无论是问答还是申请业务,作为一个智能客服,它就离不开NLP,NLP就离不开语料。在如上的例子中,通常的工作方法是,我们定义一个用户意图叫“吃了吗”,然后把相似的语料(吃了么?吃饭了吗?吃了没?你有没有吃饭?……)喂给机器人,之后写一些用例来测试它识别的准确率,如果识别率较低,就继续喂它语料,直到我们对识别率满意为止。用同样的方法,我们就可以让机器人学会理解很多种用户意图了。
多说一嘴,其实这里就是机器学习中样本集与测试集的概念。样本集用来学习,测试集用来测试学习的效果。另外由于机器学习的本质还是数学与统计,并没有真正的理解,所以学习效果非常依赖语料的质量。
直观的表现是,不同的意图中,语料差异越大,识别的准确率越高。比如,“吃了吗”和“吃了没”是相似的,“吃了吗”和“看星星看月亮从诗词歌赋谈到人生哲学”是不相似的,那么后者作为两种意图去做识别,就是容易分开的,而前者两个说法过于相近,可能会得到很差的识别结果。所以训练师需要了解基本的机器学习原理,才能够检查和调整样本集的质量。
现在我们的机器人已经能够听懂一些人话了,下一步只要定义好回复的内容,比如给“吃了吗”回复“吃了”,给“睡了吗”回复“没睡”,再把这些需求交给可爱的开发同学,一个支持单轮问答的机器人就完成了!(好的这是做一个PM最愉快的时刻了)
多轮对话设计的本质,是定义场景和将多个单轮对话进行组合。对于前面提到的例子来说,在“吃了”后面问“吃了什么呀”是正常的结合语境的问法,而脱离语境问这一句的话,就会让听者感到困惑。所以这部分的需求是这样写:
- 当用户表达“吃了吗”的意图,机器人应回复“吃了”;
- 当用户上一个表达是“吃了吗”and 机器人回复是“吃了”and 用户这一个表达是“吃了什么呀”,机器人应回复“老北京炸酱面”;
- 当用户上一个表达是“睡了吗”and 机器人回复是“没睡”and 用户这一个表达是“吃了什么呀”,机器人应回复“亲您想问什么呢?”
再次把需求交给开发,我们就得到了一个支持两轮对话的机器人。如果需要增加轮次或新的场景,那么在此基础上添加相应的逻辑即可。
再说到业务办理,本质是在问答的基础上增加与用户相关的数据交互,比如当用户说“帮我订个车去人民广场”,那么机器人应该回复“好的”的同时,拿用户的手机号和“人民广场”等信息去完成订车这一操作。
大部分时候,业务办理和多轮对话是交叉的,比如订车的场景下,机器人可能需要再问一下什么时间出发,对车辆是否有要求,那么这至少要用三轮对话来完成。
讲完了基本框架,再说说落地。在实际的需求分析过程中,我们需要了解业务背景,了解业务规则下人工客服的工作内容。从其中归纳出最终用户一般有哪些需求,他们会问什么,怎么问,抽取出用户意图,根据重复性高的对话流程做对应的轮次设计。
假设我们做的是信用卡客服机器人,那么用户意图很可能有“手续费怎么算”、“逾期了有什么影响”,下一句用户则可能会继续问,“那我还上了还影响吗”。这其中需要思考的点很多,原则包括但不限于:
- 了解业务规则,了解最终用户的需求;
- 抽取意图时注意差异化,意图过于接近会给后期的识别结果带来麻烦;
- 从用户记录中提取语料时要注意筛选,高质量的语料是高识别率的前提;
- 设计轮次时要跟意图一起考虑,不能基于无法识别的意图做设计。
以及有一个格外需要注意的地方是,对话式智能产品与其他产品的不同在于,用户的表达是不受限的。它不像普通的产品,一个页面上如果只有一个按钮,那么用户就不可能有第二个操作。而对话中,用户可能会讲任何东西,例如我的小机器人已经被问了若干次“你的爸爸妈妈是谁呀”。
所以在设计流程时,需要考虑用户不按正常流程走完的可能性,也要在设计回复时,尽可能引导用户往自己想要的方向去做表达,根本原则是收敛而非发散。
作者:一个圆圈儿
本文由 @一个数据人的自留地 授权发布于人人都是产品经理,未经作者许可,禁止转载
题图来自 Pixabay,基于 CC0 协议
该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务。
相关推荐
- Spring WebFlux vs. Spring MVC(springboot是什么)
-
背景随着异步I/O和Netty等框架的流行,响应式编程逐渐走入大众的视野。但是,响应式编程本身并不是太新的概念,这个术语最早出现在1985年DavidHarel和AmirPnue...
- 深度解析微服务高并发:适配SpringMVC框架适配模块及实现原理
-
适配主流框架如果不借助Sentinel提供的适配主流框架的模块,则在使用Sentinel时需要借助try-catchfinally将要保护的资源(方法或代码块)包起来,在目标方法或代码块执行之前,调...
- Spring MVC 底层原理深度解析:从请求到响应的全链路拆解
-
一、Servlet容器与DispatcherServlet的启动博弈1.Tomcat初始化阶段java//Tomcat初始化流程StandardContext#startInterna...
- 改造总结之传统SpringMVC架构转换为SpringBoot再到集群
-
改造出发点,是基于现在服务都在向上云的目标前进,传统SpringMVC难以满足项目持续构建、服务节点任意扩展的需求,所以开始了历史项目的改造。项目改造考虑的主要是兼容以前的业务代码,以及session...
- SpringBoot3 整合 Spring MVC 全解析:开启高效 Web 开发之旅
-
在当今的JavaWeb开发领域,Spring框架家族无疑占据着重要的地位。其中,SpringBoot3和SpringMVC更是开发者们构建强大、高效Web应用的得力工具。今天,...
- 一文读懂SpringMVC(一文读懂!残疾人低保边缘家庭能领的超实用福利政策)
-
1.SpringMVC定义1.1.MVC定义Model(模型):是应用程序中用于处理应用程序数据逻辑的部分。通常模型对象负责在数据库中存取数据View(视图):是应用程序中处理数据显示的部分。通常...
- 69 个Spring mvc 全部注解:真实业务使用案例说明(必须收藏)
-
SpringMVC框架的注解为Web开发提供了一种简洁而强大的声明式方法。从控制器的定义、请求映射、参数绑定到异常处理和响应构建,这些注解涵盖了Web应用程序开发的各个方面。它们不仅简化了编码工作,...
- Spring MVC工作原理:像拼积木一样构建Web应用
-
SpringMVC工作原理:像拼积木一样构建Web应用在Java的Web开发领域,SpringMVC无疑是一个让人又爱又恨的存在。它像一位神通广大的积木搭建大师,将一个个分散的功能模块巧妙地拼接在...
- 5千字的SpringMVC总结,我觉得你会需要
-
思维导图文章已收录到我的Github精选,欢迎Star:https://github.com/yehongzhi/learningSummary概述SpringMVC再熟悉不过的框架了,因为现在最火的...
- SpringMVC工作原理与优化指南(springmvc工作原理和工作流程)
-
SpringMVC工作原理与优化指南在现代Java开发中,SpringMVC无疑是构建Web应用程序的首选框架之一。它以其优雅的设计和强大的功能吸引了无数开发者。那么,SpringMVC究竟是如何工作...
- Spring MVC框架源码深度剖析:从入门到精通
-
SpringMVC框架源码深度剖析:从入门到精通SpringMVC框架简介SpringMVC作为Spring框架的一部分,为构建Web应用程序提供了强大且灵活的支持。它遵循MVC(Model-V...
- 3000字搞明白SpringMVC工作流程、DispatcherServlet类、拦截器!
-
SpringMVC基础虽然SpringBoot近几年发展迅猛,但是SpringMVC在Web开发领域仍然占有重要的地位。本章主要讲解SpringMVC的核心:DispatcherServlet类...
- 多年经验大佬用2000字透彻解析SpringMVC的常用注解及相关示例
-
SpringMVC注解SpringMVC框架提供了大量的注解,如请求注解、参数注解、响应注解及跨域注解等。这些注解提供了解决HTTP请求的方案。本节主要讲解SpringMVC的常用注解及相关示例...
- 知乎热议:如何成为前端架构师,赚百万年薪?
-
作者|慕课网精英讲师双越最近有一条知乎热议:从一个前端工程师,如何根据目标,制定计划,才能快速进阶成为前端架构师?不久之前我参与了一次直播,讲到了自己对于Web前端架构师的理解。架构师这个角色...
- 学习笔记-前端开发架构设计(前端架构设计方案)
-
前端开发的技术选项主要包含以下几点,下面对一些名词概念的解释做了笔记:1、分层架构:把功能相似,抽象级别相近的实现进行分层隔离优势:松散耦合(易维护,易复用,易扩展)常见分层方式:MVC,MVVM2、...
你 发表评论:
欢迎- 一周热门
- 最近发表
-
- Spring WebFlux vs. Spring MVC(springboot是什么)
- 深度解析微服务高并发:适配SpringMVC框架适配模块及实现原理
- Spring MVC 底层原理深度解析:从请求到响应的全链路拆解
- 改造总结之传统SpringMVC架构转换为SpringBoot再到集群
- SpringBoot3 整合 Spring MVC 全解析:开启高效 Web 开发之旅
- 一文读懂SpringMVC(一文读懂!残疾人低保边缘家庭能领的超实用福利政策)
- 69 个Spring mvc 全部注解:真实业务使用案例说明(必须收藏)
- Spring MVC工作原理:像拼积木一样构建Web应用
- 5千字的SpringMVC总结,我觉得你会需要
- SpringMVC工作原理与优化指南(springmvc工作原理和工作流程)
- 标签列表
-
- MVC框架 (46)
- spring框架 (46)
- 框架图 (58)
- bootstrap框架 (43)
- flask框架 (53)
- quartz框架 (51)
- abp框架 (47)
- jpa框架 (47)
- laravel框架 (46)
- express框架 (43)
- springmvc框架 (49)
- scrapy框架 (52)
- beego框架 (42)
- java框架spring (43)
- grpc框架 (55)
- orm框架有哪些 (43)
- ppt框架 (48)
- 内联框架 (52)
- winform框架 (46)
- gui框架 (44)
- cad怎么画框架 (58)
- ps怎么画框架 (47)
- ssm框架实现登录注册 (49)
- oracle字符串长度 (48)
- oracle提交事务 (47)