chatbot对话机器人可分为3大类,问答机器人,任务机器人和闲聊机器人,我们主做前2类。
主要单轮对话形式。
根据输入语句的语义相似度跟知识库的问题进行匹配,返回对应回答。目前百答主要基于此技术实现。
例如:什么时候发货?
批量文档,没有固定问答,需要从中学习提取知识。目前无。
数据提炼成为知识图谱,可进行相关查询和推理。目前无。
主要是多轮对话形式,也有部分单轮对话。
该部分节选自电子工业出版社《自然语言处理实践:聊天机器人技术原理与应用》
作者:王昊奋&邵浩&李方圆&张凯&宋亚楠
目前,主流的任务对话系统实现为模块化方式,由于现有训练数据规模的限制,端到端的方式仍处于探索阶段。本文主要介绍模块化的面向任务的对话系统,图1介绍了其主要模块。
(1)NLU:将用户输入的自然语言语句映射为机器可读的结构化语义表述,这种结构化语义一般由两部分构成,分别是用户意图(user intention)和槽值(slot-value)。
图1 面向任务的对话系统的主要模块
(2)DST:这一模块的目标是追踪用户需求并判断当前的对话状态。该模块以多轮对话历史、当前的用户动作为输入,通过总结和推理理解在上下文的环境下用户当前输入自然语言的具体含义。对于对话系统来说,这一模块有着重大意义,很多时候需要综合考虑用户的多轮输入才能让对话系统理解用户的真正需求。
(3)DPL:也被称为对话策略优化(optimization),根据当前的对话状态,对话策略决定下一步执行什么系统动作。系统行动与用户意图类似,也由意图和槽位构成。
(4)NLG:负责把对话策略模块选择的系统动作转化为自然语言,最终反馈给用户。
在与用户直接关联的两个模块中,ASR指的是自动语音识别,TTS指的是语音合成。如第2章介绍的,ASR和TTS并不是系统必备的模块,也不是本书介绍的重点,因此在面向任务的对话系统中不对这两部分技术做详细介绍。
对应rasa的nlu模块
例如:我家宝宝2个月大,适合穿多大尺码的纸尿裤?
技术:机器学习的分类问题。
识别上面问题为购买纸尿裤问题。
意图识别的目标是从用户输入的语句中提取用户意图,单一任务可以简单地建模为一个二分类问题,如“询问天气”意图,在意图识别时可以被建模为“是询问天气”或者“不是询问天气”二分类问题。当涉及需要对话系统处理多种任务时,系统需要能够判别各个意图,在这种情况下,二分类问题就转化成了多分类问题。
技术:
基于规则
基于序列标注,常见:IBO标签,CRF,RNN,LSTM模型。
槽位填充的任务是从自然语言中提取信息并填充到事先定义好的槽位中,例如已经定义好了意图和相应的槽位,对于用户输入“今天上海天气怎么样”系统应当能够提取出“今天”和“上海”并分别将其填充到“时间”和“地点”槽位。基于特征提取的传统机器学习模型已经在槽位填充任务上得到了广泛应用。近年来,随着深度学习技术在自然语言处理领域的发展,基于深度学习的方法也逐渐被应用于槽位填充任务。相比于传统的机器学习方法,深度学习模型能够自动学习输入数据的隐含特征。例如,将可以利用更多上下文特征的最大熵马尔可夫模型引入槽位填充的过程中[8],类似地,也有研究将条件随机场模型引入槽位填充。
对应rasa的core模块
这一模块的目标是追踪用户需求并判断当前的对话状态。该模块以多轮对话历史、当前的用户动作为输入,通过总结和推理理解在上下文的环境下用户当前输入自然语言的具体含义。对于对话系统来说,这一模块有着重大意义,很多时候需要综合考虑用户的多轮输入才能让对话系统理解用户的真正需求。
对话状态的表示(DST-State Representation)通常由以下3部分构成。
(1)目前为止的槽位填充情况。
(2)本轮对话过程中的用户动作。
(3)对话历史。
其中,槽位的填充情况通常是最重要的状态表示指标。
实现DST模块的方法主要有:基于条件随机场模型的序列跟踪模型、基于RNN和LSTM的序列跟踪模型等。
DPL:也被称为对话策略优化(optimization),根据当前的对话状态,对话策略决定下一步执行什么系统动作。系统行动与用户意图类似,也由意图和槽位构成。
NLG:负责把对话策略模块选择的系统动作转化为自然语言,最终反馈给用户。
基于规则
根据规则可以将各个系统动作映射成自然语言表达。
例如:前面问答内容:您家宝宝多重呢?[weight]斤
最后回复:亲,宝宝[weight]的话,建议穿[size]的[productType]
基于生成模型
seq2seq的典型方法,用前N-1句话生成第N句话。效果不一定好。
理解与交互技术UNIT
https://ai.baidu.com/docs#/UNIT-v2-API/top
https://ai.baidu.com/forum/topic/show/870435
机器人管理api:增删改查
技能api:查询
意图api:增删改查
词槽api:增删改查
模型api:查询,训练,删除
训练数据api:样本,模板,特征词,问答对(知识库)增删改查
生产环境部署api:增删改查
基于用户输入的文本内容(语音输入最终也转为文本),返回技能理解与应答的信息。调用本对话API的前提是您已经在unit.baidu.com 已经创建了技能,并定义了技能(新建了对话意图或问答意图)、添加了对话模板/对话样本,且最少完成了一次模型的训练。
百度将积累多年的自然语言理解与交互技术对外开放,推出了可定制的对话系统开发UNIT(Understanding and Interaction Technology),将业界领先的技术能力输出给广大的开发者,以便降低对话系统的研发门槛。
接下来,你只需花费3~5分钟的时间,即可配置出一个完整的对话技能了。
一个简单的对话技能从无到有需要以下四个步骤。
其中创建技能,配置意图和词槽这两步是为了定义对话能力。
https://ai.baidu.com/forum/topic/show/869808
【提升篇】UNIT2.0--火车票场景实例教程
搭建对话BOT的总体流程
创建完后就进入技能定义的阶段,技能又分自定义技能和预置技能,每个技能都是由多个相关的意图组成,这个阶段的新建意图就对应我们需求分析阶段的功能定义。订票功能就可以转化为订票意图BOOK_TICKET,订票的关键信息可以定义为实现订票意图的词槽,这里我们简单一些,把出发时间、出发站点、到达站点、车次定义为词槽:user_time、user_from、user_to、trainnumber。
后台管理功能都可以通过restapi来实现,自己搭建一套跟百度一样的管理系统
多轮对话模块完全开源
https://github.com/baidu/unit-dmkit
DM Kit是UNIT的开源对话管理模块,可无缝对接UNIT云端对话理解能力, 并轻松对接外部知识库,丰富技能回复信息量,实现多状态的复杂对话流程控制。
针对状态繁多、跳转复杂的垂类,DM Kit支持通过可视化编辑工具进行状态跳转流程的编辑设计,并同步转化为对话基础配置供对话管理引擎加载执行。
对应的可视化配置开源工具
https://github.com/jgraph/mxgraph
这里的可视化编辑工具使用开源的mxgraph可视化库,对话开发者可在可视化工具上进行图编辑,而该可视化库支持从图转化为xml文件,我们再利用转换框架实现对应的编译器将xml文件转化为对话基础配置加载执行。以demo场景【查询流量及续订】为例,步骤为:
语言处理基础技术
http://ai.baidu.com/docs#/NLP-API/top
包含情绪识别api
针对用户日常沟通文本背后所蕴含情绪的一种直观检测,可自动识别出当前会话者所表现出的一级和二级细分情绪类别及其置信度,针对正面和负面的情绪,还可给出参考回复话术。帮助企业更全面地把握产品服务质量、监控客户服务质量。在自动监控中如果发现有负面情绪出现,可以及时介入人工处理,帮助在有限的人工客服条件下,降低客户流失。
提供paas接口
机器人管理api: 增删改查
知识库管理api: 增删改查
多轮对话管理api :包括对话单元,对话流,意图的增删改查
聊天api:根据输入返回对应的知识库id
意图识别
根据输入属于返回对应的意图和槽值,尺码推荐依赖此功能
https://xiaowei.qcloud.com/wiki/#robot
只有知识库相关的api,无意图识别和多轮对话api
为适应用户的各种接入场景,小微客服机器人提供了一系列的解决方案,包括Rest API接口,第三方回调接口,用户签名生成接口等。利用这些组件,可以在各种场景中构建用户自己的智能应答系统,解决用户在自动应答领域的问题。机器人的操作管理可以通过控制台实现,也可以通过Rest API方式实现,管理功能如下:
TODO 待补充
https://cloud.tencent.com/product/tbp
https://ailab.bytedance.com/research/nlp
无对话相关开放api
开放的api不多,还满足不了需求
https://support.huaweicloud.com/usermanual-cbs/cbs_01_0002.html
对话机器人服务 (Conversational Bot Service) 是一款基于人工智能技术,针对企业应用场景开发的云服务,主要包括智能问答、智能质检和任务型对话等功能。智能问答旨在帮助企业快速构建,发布和管理基于知识库的智能问答机器人系统;智能质检致力于为客户提供高效、可靠的智能对话分析服务;而任务型对话机器人提供人机交互中机器人所需的语义理解和对话能力,可用来实现自动话务机器人,智能硬件语音助手等应用。
对话机器人服务包含几个子服务:智能问答机器人(QABot)、任务型对话机器人(TaskBot)、智能质检(SA)、定制对话机器人(CBSC)。其中,智能质检和定制对话机器人处于邀测中。
公有云提供了Web化的服务管理平台,即管理控制台和基于HTTPS请求的API(Application programming interface)管理方式。
https://support.huaweicloud.com/usermanual-cbs/cbs_01_0029.html
智能问答包含如下功能:
https://support.huaweicloud.com/api-cbs/cbs_03_0002.html
CBS服务提供了如下接口,方便用户对对话机器人的使用。
表1
接口说明接口类型说明问答机器人在线问答接口主要功能接口,包括获取问题提示接口、问答请求接口、问答满意度评价接口和问答转人工接口。智能话务机器人接口
https://support.huaweicloud.com/nlp/index.html
自然语言处理适用于智能问答系统、舆情分析、内容推荐等场景。
原文:https://www.cnblogs.com/chenyusheng0803/p/12383447.html