对话机器人(一)——对话机器人基础知识

article/2025/9/20 3:40:54

对话机器人基础

一、对话机器人分类

1. 知识领域

a. 面向限定领域

只能聊设定好的固定主题。若用户用无关领域挑战机器人,机器人用安全话术回复或结束对话。

b. 面向开放领域

用户不需要有明确的目的或意图。

c. 面向常用问题集

通过检索知识库来回答问题,仅取决知识库的内容。

2. 答案来源

a. 基于结构化

KBQA系统。问答的来源是一个知识库,知识库可能是图数据库、RDF三元组、Mysql等。问题的答案是通过知识库推理得来的。

b. 基于文档

阅读理解任务。根据用户问题,从文档中自动检索答案返回。

c. 基于问答对

语料库中保存大量的问题和答案组,用户的问题在给定的问答集中,将答案返回。

3. 答案反馈机制

a. 基于检索式

答案的来源是人工编写的模板,根据用户的问题,通过一系列算法找到对应的答案模板,返回给用户。

b. 基于生成式

通过NLG技术(自然语言生成模板)生成。专业程度不高,适合自动生成。

4. 任务类型

a. 问答机器人

一问一答,多轮对话之间没有特定关系。

b. 任务机器人

多轮交互式,以最终完成某个任务为对话结束,每轮交互与上文有关系,整个问答流程类似一个软件流程图。

c. 闲聊机器人

聊天多为兴趣爱好等闲聊。

二、实现技术

  • 意图识别层:识别语言的真实意图,将意图分类,进行意图属性抽取。
  • 问答匹配层:对问题进行匹配识别及生成答案的过程。

1. end-to-end模式

用户输入系统输入作为一个整体训练,希望训练一个从用户端自然语言输入到机器端自然语言输出的整体映射关系。

  • 优点:灵活性强,可扩展性高,减少设计过程中的人工成本,打破传统模块之间的隔离,不存在偏置误差。
  • 缺点:中间模型过于庞大,端到端模型对数据的数量和质量要求高,训练困难,对填槽、API调用等过程的建模不够明确,修改任何一个功能,都需要重新训练整个模型。

2. pipeline模式

输入——自言语言理解(NLU)——对话状态追踪(DST)——对话策略学习(DPL)——自然语言生成(NLG)——输出。

  • 优点:灵活性强、可解释性强、易于落地,每个模块都能替换。
  • 各个模块之间相对独立,难以联合调优,模块之间的误差会层层积累。

三、 预测会话与答案生成

1. 信息检索

利用搜索来预测

通过问题——答案的匹配算法对候选答案进行打分及排序,选出分值最高的回答作为最终回复。

2. 句型模板匹配标准问题

将用户问题与问答库中的句板模板进行匹配。若匹配成功,则根据句型模板提取用户问句中的语义信息,生成相应的答案

3. 知识图谱推理

类型:用户提问的事实性问题。

基于知识图谱的具体问答流程:

(1) 句型判断

判断用户提问时闲聊还是问答。

如:北京的面积是多少?——判断是问答。

(2) 句子实体抽取

将用户提问的实体抽取出来。

如:实体是北京

(3) 实体匹配

确认提取实体的具体语义、类别

北京是地名

(4) 相似度匹配

使用词向量、模糊匹配对用户提问的属性进行匹配

“是多少”对应的是“面积”

(5) 查询图谱

得到用户提问的答案,即:北京的面积

(6) 进行回答

将查询图谱得到的答案用事先准备的回答模板处理后,返回给用户。

三、多轮对话

初步获取用户意图后,需要更多轮次的对话获取必要的信息以最终得到明确的用户指令的方式。

1. 任务型多轮对话

定义:是一个决策过程,需要机器在对话过程中不断根据当前的状态决策下一步应该采取的最优动作(如:提供结果、询问特定限制条件、澄清或确认需求等),从而能够最有效地辅助用户完成信息或服务获取的任务。

核心模块:自然语言理解模块(NLU)、对话管理模块(DM)、自然语言生成模块(NLG)。

a. 自然语言理解

  • 领域识别:识别该语句是属于什么类型(闲聊、问答、任务)。进入任务型机器人之前做判断与分发
  • 意图识别:识别用户意图,细分具体场景。本质是分类问题。
  • 槽位提取:从语句充提取槽位信息,对设定好的槽位进行槽位填充,是序列标注任务。
    • Bi-LSTM-CRF

❃ 槽:多轮对话过程中,将初步用户意图转化为明确用户指令所需要补全的信息对话管理模块。

❃ 【一个槽】对应【一件事情的处理中所需要获取的一种信息】

  • 词槽:利用用户话中关键词来填写的槽。
  • 接口槽:利用用户画像及其他场景信息填写的槽。

❃ 澄清话术:希望获取某种信息时所使用的问句。如买衣服,需要知道东西的价格、颜色等属性。

❃当接收到用户问句后,对未填充完成的必填槽组依次进行澄清。

b. 对话管理

对话管理DM:控制人机对话的进程,通过对NLU输出的处理来进行和用户的交互和反应。

通过该过程,带有明确意图的用户不断完善/修正自己的需求,且需求不够具体时明确/澄清用户需求。

  • 对话状态追踪DST:持续对话的各种信息。根据上一时刻状态、用户状态、系统状态更新当前的对话状态。

  • 对话策略学习DPL:对该场景下缺失槽位的反问策略。根据当前时刻的对话状态和系统状态,决定下一步的系统行为。

在这里插入图片描述

c. 自然语言生成

基于模板、基于语法、模型等。

2. 多主题多轮对话

话题切换:从一个多轮过程切换至另一个多轮过程,一个任务型多轮对话有多个不同的场景。

  • 主动切换:用户主动改变自己的意图。
  • 被动切换:无法从用户的问句中抽取信息以继续当前的多轮对话,只好将其作为一条全新的文具重新解析及话题识别。(利用槽记忆进行信息的继承)

四、对话机器人的工程架构

1. 对话系统分层架构

  • 数据层:提供数据存储访问服务。如数据库、缓存、文件、搜索引擎。

    • DB(MySQL、Mongo DB、HBase),Neo4j,Solr,ElasticSearch
  • 算法层:意图识别、对话生成、排序。

    • NLU技术
      • 分词(HanLP、Jieba、ICTCLAS、NLPIR、Standford CoreNLP)
      • 词性标注(HanLP、Jieba、ICTCLAS、NLPIR、Standford CoreNLP)
      • NER(HanLP、Standford CoreNLP)
      • 同义词
      • 文本特征化(TF-IDF、Text Rank、Word2vec)
      • 文本分类(Fast Text、SVM、NB)
      • 文本聚类(K-Means、DBSCAN)
    • NLG技术:
      • 对话生成
  • 服务层:为应用层提供服务支持,如对话流程管理、用户权限管理、对话内容管理

    • MVC->RPC->SOA->微服务
  • 应用层:负责具体的对话业务视图展示,如对话内容显示等。

    • 对话管理、Task Engine、词典管理、权限管理

在这里插入图片描述

2. 运维相关

a. 问题超出意图范围

  • 用户意图本身很模糊:推荐近似的问题,询问用户是否想问这些近似问题。
    • 推荐按照语义相似度,列出abcd4个选项,若都没有被用户选择,则bot回复一个低分,表示不在处理范围。
  • Bot的算法模块还无法识别意图:尝试让不同类型的机器人解决。

b. 回复/推荐内容错误

标准文案更新但没有及时更新机器人回复话术。产品上线时回复话术A,但是过一段时间,修改回复话术为B,没有同步修改机器人。

修改方法:对系统标准文案进入后台管理系统进行管理,回复不当的文案有一个反馈机制。

c. 写日志遇到的故障

  • 注意Log的级别,不要将Log输出全局配置为Debug。若产生大量的日志会占满硬盘。
  • 聊天系统可能集成很多功能模块,每个功能模块可以被打包成微服务形式,但是每一个微服务对外输出的日志只有一个。

d. 高并发访问数据库可能引发故障

注意不要高并发访问数据库

e. 缓存引发故障

需要考虑系统的性能。

f. 滥用生产环境

生产环境不可被当测试环境使用。

参考文献:

刘宇, 崔燕红, 郭师光等.聊天机器人:入门 进阶与实战[M].机械工业出版社,2019:212.

对话机器人概述:https://zhuanlan.zhihu.com/p/331791105


http://chatgpt.dhexx.cn/article/0C8BhBQb.shtml

相关文章

Typora无法在applist里找到

添加一个desktop文件即可,记得加上%U才能在应用列表里看见

php安装失败,phpcms安装失败怎么办

phpcms安装失败怎么办? 最新版的phpcmsV9安装报错解决 具体报错信息如下:Web-server: Apache PHP版本: PHP/5.2.14 Mysql版本: MySQL 客户端版本: 5.0.90 适用版本: v9 更新日期: phpcms_v9.2.2_UTF8 编码版本: UTF-8 浏览器: maxthon 复现步骤: 正在准备…

android应用程序列表,List列表应用程序-小知识 #103

文章摘要: 1、从设计模式的角度浅谈List列表应用程序开发。 2、列表应用程序开发三要素。控件、数据、适配器。 一、综述: 1、Android中,使用ListView配合Adapter来展示数据列表的例子随处可见。但在实际应用场景中,数据源类型、V…

推荐系统中的Embedding应用

文章目录 1. Word2Vec1.1 Skip-gram 2. Airbnb中的Embedding2.1 用在相似推荐中的List Embedding2.1.1 优化一:Booked Listing as Global Context2.1.2 优化二:Adapting Training for Congregated Search2.1.3 冷启动问题2.1.4 效果评估 2.2 用在搜索推荐…

APP设备数据的特征衍生与模型应用

在信贷风控领域众多维度的数据源中,APP设备数据对于策略规则的开发、模型变量的筛选有着重要的贡献,理由是在当今电子信息化时代,APP数据可以较全面地反映出用户的个人习惯、日常行为等综合信息。因此,金融机构在开展个人信贷产品…

风控建模十二:数据淘金——如何从APP数据中挖掘出有效变量

风控建模十二:数据淘金——如何从APP数据中挖掘出有效变量 1、常识知识2、个例分析3、分布排查 智能手机的诞生改变了人类的生活方式,智能手机所承载的功能日臻完善、强大,人们在衣、食、住、行、工作、生活中面临的方方面面问题,…

2021-03-07 大数据课程笔记 day46

R星校长 机器学习06【机器学习】 主要内容 理解推荐系统处理数据流程。python 文件预处理 Hive 数据。dubbo 服务使用。 学习目标 第一节 推荐系统-数据处理流程 推荐系统数据处理首先是将 Hive 中的用户 app 历史下载表与 app 浏览信息表按照设备 id 进行关联&#xff0c…

java手机应用安装目录_如何获得Android手机的软件安装列表

Android的PackageManager类用于检索目前安装在设备上的应用软件包的信息。你可以通过调用getpackagemanager()得到PackageManager类的一个实例。对查询和操作安装包和相关的权限提供了方法,在下面这个Android的例子中,我们得到了在Android安装的应用程序…

这些信贷数据埋点中不得不知的埋点知识

国庆七天假,就这样飞快结束,似乎感觉还没休息够,再来一个七天都不觉得多多。 经过多年来移动互联网的普及,众多APP已采集到亿级乃至数十亿级别用户在设备端、通话、短信、地址等强变量的数据,伴随着近年来信贷行业高速…

新浪微博开发(五)AppList界面

这是客户端开发部分很重要的一个类,但是在开发之前需要用到有关GridView的知识。 若要临时充充电,请移步:GridView(九宫图)的使用介绍。 下面是AppList类的代码: /* * 用来显示、管理自己的微博账号,包括新浪微博账号…

使用react+redux+react-redux+react-router+axios+scss技术栈从0到1开发一个applist应用

先看效果图 github地址 github仓库 在线访问 初始化项目 #创建项目 create-react-app applist #如果没有安装create-react-app的话,先安装 npm install -g create-react-app 目录结构改造 |--config |--node_modules |--public |--scripts |--src|-----api //…

【无标题】https://e-cloudstore.com/ec/api/applist/index.html#/

这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个…

AppList数据处理

本文参考: 风控数据—手机App数据挖掘实践思路 引言 作为移动互联网时代的主要载体,智能手机逐渐成为人们日常生活中不可或缺的一部分,改变着人们的生活习惯。比如,可以用“饿了么”点外卖,“支付宝”可以用来种树,“抖音”可以用来上厕所......强大的App给我们的生活带来…

Faststone capture注册码

转载整理 很好用的图片编辑软件! 企业版序列号: name:bluman serial/序列号/注册码:VPISCJULXUFGDDXYAUYF FastStone Capture 注册码 序列号: name/用户名:TEAM JiOO key/注册码:CPCWXRVCZW30H…

FastStone Capture(超级强大的截图、屏幕录制软件)

FastStone Capture是一款体积极其小、功能强悍的屏幕捕捉软件,还有强大的图片编辑、视频录制编辑功能,能够完全满足你截屏、处理图片的要求。FastStone Capture (FSCapture) 是经典好用的屏幕截图软件,还具有图像编辑和…

截图工具FastStone Capture

文章目录 1 下载安装2 工具使用介绍2.1 截图2.1.1 截图2.1.2 滚动截图 2.2 录屏 FastStone Capture也常被简称为FS Capture,是一款小巧但强悍的软件,集截图、录屏、标尺、取色器等工具于一体。 1 下载安装 官方下载: https://faststone-capt…

FastStone Capture—视频绘制

博客概要 已经写了好些篇博文来介绍FSP了,广告费付一下? 在博主的某篇博文中,粗略介绍了FSP的“屏幕录像”功能,其中“录像编辑”一栏其实没有过多赘述,那么本篇就稍微,真的是稍微,再多介绍一些…

巨好用的截图录屏工具-FastStone Capture

哈喽,大家好呀。想问问小伙伴们平时若是不打开微信、QQ的时候一般是用什么工具截图呢,是微软自带的截图工具,还是其它的呢?今天给大家测试一款非常好用的截图录屏一体轻量级工具哦,也是小编用了好多年的一款工具了&…

FastStoneCapture 截图软件的使用

1:下载解压好 下载后,不要放在桌面,怕把这个截图软件删除掉,把这个FastStoneCapture_9.3_汉化版放在你的,D盘E盘都可以。 放在桌面以后容易当垃圾清理掉!! 下载后,鼠标右键解压成文件夹,文件里面双击打开这个软件就可以用 把软件图标,从你的电脑拖放到桌面就可使用了…

FastStone Capture(FSCapture) 注册码

FSCapture是一款抓屏工具,附带的其他两个小功能:取色器和屏幕放大镜。对抓取的图像提供缩放、旋转、减切、颜色调整等功能。只要点点鼠标就能随心抓取屏幕上的任何东西,拖放支持可以直接从系统、浏览器或其他程序中导入图片。 破解方法&#…