首页 / 专利库 / 人工智能 / 人工智能 / 机器学习 / 强化学习 / 外呼系统的对话管理方法、系统、电子设备和存储介质

外呼系统的对话管理方法、系统、电子设备和存储介质

阅读:923发布:2020-05-08

专利汇可以提供外呼系统的对话管理方法、系统、电子设备和存储介质专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种外呼系统的 对话管理 方法、系统、 电子 设备和存储介质,所述对话管理方法包括:获取语义信息;根据所述语义信息更新当前的对话状态;将所述对话状态输入到预存的状态机中进行状态跳转;所述外呼系统根据所述状态机跳转后的状态进行输出问答,同时也使用 强化学习 提升 对话系统 泛化性能。本发明的外呼系统的对话管理方法能实现用户与外呼系统的口语交流,外呼系统能够回复用户的问题,实现人性化沟通,提高用户的接受度,为企业节约大量人 力 成本,当用户方是分机情况下,本发明的外呼系统能够实现转接,设计灵活。,下面是外呼系统的对话管理方法、系统、电子设备和存储介质专利的具体信息内容。

1.一种外呼系统的对话管理方法,其特征在于,所述对话管理方法包括:
获取语义信息;
根据所述语义信息更新当前的对话状态;
将所述对话状态输入到预存的状态机中进行状态跳转;
所述外呼系统根据所述状态机跳转后的状态进行输出问答。
2.如权利要求1所述的外呼系统的对话管理方法,其特征在于,所述对话管理方法还包括以下步骤:
在所述状态机跳转到预设状态后,将所述语义信息输入到预训练的强化学习模型;
所述外呼系统根据所述强化学习模型的输出结果进行输出问答。
3.如权利要求1或2所述的外呼系统的对话管理方法,其特征在于,在所述获取语义信息的步骤之前,所述对话管理方法还包括以下步骤:
获取领域信息中的槽信息,所述槽信息用于组成所述对话状态。
4.如权利要求1所述的外呼系统的对话管理方法,其特征在于,所述状态机根据当前所述对话状态和触发事件进行状态跳转;
所述对话状态包括若干子对话状态;
所述子对话状态为结构化数据,包括属性和成员变量;
所述属性包括状态属性,所述成员变量包括状态转移函数;
所述子对话状态根据所述触发事件更新所述对话状态;和/或,
所述触发事件为所述语义信息中的用户意图。
5.如权利要求2所述的外呼系统的对话管理方法,其特征在于,所述对话管理方法还包括训练强化学习模型的步骤,所述训练强化学习模型的步骤包括:
预设奖励机制进行自动数据标注;
采用热启动方式收集第一对话数据;
采用epislon-greedy探索方式收集第二对话数据;
将所述第一对话数据和所述第二对话数据中的对话状态和动作进行向量化表示后输入到强化学习模型并获取模型输出结果。
6.如权利要求5所述的外呼系统的对话管理方法,其特征在于,
所述语义信息包括所述对话状态和所述动作;
在所述状态机跳转到预设状态后,将所述对话状态和所述动作进行向量化表示后输入到预训练的强化学习模型;
所述外呼系统输出所述预训练的强化学习模型的输出问答;和/或,
所述强化学习模型为DQN算法模型。
7.一种外呼系统的对话管理系统,其特征在于,所述对话管理系统包括:
语义信息获取模,用于获取语义信息;
对话状态更新模块,用于根据所述语义信息更新当前的对话状态;
状态跳转模块,用于将所述对话状态输入到预存的状态机中进行状态跳转;
第一问答输出模块,用于所述外呼系统根据所述状态机跳转后的状态进行输出问答。
8.如权利要求7所述的外呼系统的对话管理系统,其特征在于,所述对话管理系统还包括以下模块:
第一模型输入模块,用于在所述状态机跳转到预设状态后,将所述语义信息输入到预训练的强化学习模型;
第二问答输出模块,用于所述外呼系统根据所述强化学习模型的输出结果进行输出问答。
9.如权利要求7或8所述的外呼系统的对话管理系统,其特征在于,所述对话管理系统还包括以下模块:
槽信息获取模块,用于获取领域信息中的槽信息,所述槽信息用于组成所述对话状态。
10.如权利要求7所述的外呼系统的对话管理系统,其特征在于,所述状态机根据当前所述对话状态和触发事件进行状态跳转;
所述对话状态包括若干子对话状态;
所述子对话状态为结构化数据,包括属性和成员变量;
所述属性包括状态属性,所述成员变量包括状态转移函数;
所述子对话状态根据所述触发事件更新所述对话状态;和/或,
所述触发事件为所述语义信息中的用户意图。
11.如权利要求8所述的外呼系统的对话管理系统,其特征在于,所述对话管理系统还包括训练模型模块,所述训练模型模块包括:
数据标注单元,用于预设奖励机制进行自动数据标注;
第一数据收集单元,用于采用热启动方式收集第一对话数据;
第二数据收集单元,用于采用epislon-greedy探索方式收集第二对话数据;
模型结果获取单元,将所述第一对话数据和所述第二对话数据中的对话状态和动作进行向量化表示后输入到强化学习模型并获取模型输出结果。
12.如权利要求11所述的外呼系统的对话管理系统,其特征在于,
所述语义信息包括所述对话状态和所述动作;
所述第一模型输入模块,用于在所述状态机跳转到预设状态后,将所述对话状态和所述动作进行向量化表示后输入到预训练的强化学习模型;
所述第二问答输出模块,用于所述外呼系统输出所述预训练的强化学习模型的输出问答;和/或,
所述强化学习模型为DQN算法模型。
13.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至6中任一项所述的外呼系统的对话管理方法。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现权利要求1至6中任一项所述的外呼系统的对话管理方法的步骤。

说明书全文

外呼系统的对话管理方法、系统、电子设备和存储介质

技术领域

[0001] 本发明涉及自然语言处理技术领域,尤其涉及外呼系统的对话管理方法、系统、电子设备和存储介质。

背景技术

[0002] 对于一些服务性行业,例如OTA(在线旅游)行业,对于外呼的需求非常的大,很多OTA企业都会有自己的外呼系统。现有的外呼系统使用IVR(互动式语音应答)系统,用户通过按键进行信息反馈,用户无法与外呼系统进行口语交流,对于用户的问题,现有的外呼系统无法进行回复,对于用户属于分机的情况下,现有的外呼系统也无法实现转接,现有的外呼系统设计死板,缺少人性化沟通,用户的接受度低。

发明内容

[0003] 本发明要解决的技术问题是为了克服现有技术中外呼系统无法与用户进行口语交流的缺陷,提供一种外呼系统的对话管理方法、系统、电子设备和存储介质。
[0004] 本发明是通过下述技术方案来解决上述技术问题:
[0005] 一种外呼系统的对话管理方法,所述对话管理方法包括:
[0006] 获取语义信息;
[0007] 根据所述语义信息更新当前的对话状态;
[0008] 将所述对话状态输入到预存的状态机中进行状态跳转;
[0009] 所述外呼系统根据所述状态机跳转后的状态进行输出问答。
[0010] 较佳地,所述对话管理方法还包括以下步骤:
[0011] 在所述状态机跳转到预设状态后,将所述语义信息输入到预训练的强化学习模型;
[0012] 所述外呼系统根据所述强化学习模型的输出结果进行输出问答。
[0013] 较佳地,在所述获取语义信息的步骤之前,所述对话管理方法还包括以下步骤:
[0014] 获取领域信息中的槽信息,所述槽信息用于组成所述对话状态。
[0015] 较佳地,所述状态机根据当前所述对话状态和触发事件进行状态跳转;
[0016] 所述对话状态包括若干子对话状态;
[0017] 所述子对话状态为结构化数据,包括属性和成员变量;
[0018] 所述属性包括状态属性,所述成员变量包括状态转移函数;
[0019] 所述子对话状态根据所述触发事件更新所述对话状态;和/或,
[0020] 所述触发事件为所述语义信息中的用户意图。
[0021] 较佳地,所述对话管理方法还包括训练强化学习模型的步骤,所述训练强化学习模型的步骤包括:
[0022] 预设奖励机制进行自动数据标注;
[0023] 采用热启动方式收集第一对话数据;
[0024] 采用epislon-greedy(贪婪算法)探索方式收集第二对话数据;
[0025] 将所述第一对话数据和所述第二对话数据中的对话状态和动作进行向量化表示后输入到强化学习模型并获取模型输出结果。
[0026] 较佳地,所述语义信息包括所述对话状态和所述动作;
[0027] 在所述状态机跳转到预设状态后,将所述对话状态和所述动作进行向量化表示后输入到预训练的强化学习模型;
[0028] 所述外呼系统输出所述预训练的强化学习模型的输出问答;和/或,[0029] 所述强化学习模型为DQN(深度Q网络)算法模型。
[0030] 一种外呼系统的对话管理系统,所述对话管理系统包括:
[0031] 语义信息获取模,用于获取语义信息;
[0032] 对话状态更新模块,用于根据所述语义信息更新当前的对话状态;
[0033] 状态跳转模块,用于将所述对话状态输入到预存的状态机中进行状态跳转;
[0034] 第一问答输出模块,用于所述外呼系统根据所述状态机跳转后的状态进行输出问答。
[0035] 较佳地,所述对话管理系统还包括以下模块:
[0036] 第一模型输入模块,用于在所述状态机跳转到预设状态后,将所述语义信息输入到预训练的强化学习模型;
[0037] 第二问答输出模块,用于所述外呼系统根据所述强化学习模型的输出结果进行输出问答。
[0038] 较佳地,所述对话管理系统还包括以下模块:
[0039] 槽信息获取模块,用于获取领域信息中的槽信息,所述槽信息用于组成所述对话状态。
[0040] 较佳地,所述状态机根据当前所述对话状态和触发事件进行状态跳转;
[0041] 所述对话状态包括若干子对话状态;
[0042] 所述子对话状态为结构化数据,包括属性和成员变量;
[0043] 所述属性包括状态属性,所述成员变量包括状态转移函数;
[0044] 所述子对话状态根据所述触发事件更新所述对话状态;和/或,
[0045] 所述触发事件为所述语义信息中的用户意图。
[0046] 较佳地,所述对话管理系统还包括训练模型模块,所述训练模型模块包括:
[0047] 数据标注单元,用于预设奖励机制进行自动数据标注;
[0048] 第一数据收集单元,用于采用热启动方式收集第一对话数据;
[0049] 第二数据收集单元,用于采用epislon-greedy探索方式收集第二对话数据;
[0050] 模型结果获取单元,将所述第一对话数据和所述第二对话数据中的对话状态和动作进行向量化表示后输入到强化学习模型并获取模型输出结果。
[0051] 较佳地,所述语义信息包括所述对话状态和所述动作;
[0052] 所述第一模型输入模块,用于在所述状态机跳转到预设状态后,将所述对话状态和所述动作进行向量化表示后输入到预训练的强化学习模型;
[0053] 所述第二问答输出模块,用于所述外呼系统输出所述预训练的强化学习模型的输出问答;和/或,
[0054] 所述强化学习模型为DQN算法模型。
[0055] 一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一项所述的外呼系统的对话管理方法。
[0056] 一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述任一项所述的外呼系统的对话管理方法的步骤。
[0057] 本发明的积极进步效果在于:本发明的外呼系统的对话管理方法能实现用户与外呼系统的口语交流,外呼系统能够回复用户的问题,实现人性化沟通,提高用户的接受度,为企业节约大量人成本,当用户方是分机情况下,本发明的外呼系统能够实现转接,设计灵活。附图说明
[0058] 图1为本发明较佳实施例1的外呼系统的对话管理方法的流程示意图。
[0059] 图2为本发明较佳实施例2的外呼系统的对话管理方法的流程示意图。
[0060] 图3为本发明较佳实施例3的外呼系统的对话管理方法的流程示意图。
[0061] 图4为本发明较佳实施例3的状态机的状态跳转示意图。
[0062] 图5为本发明较佳实施例4的外呼系统的对话管理系统的模块示意图。
[0063] 图6为本发明较佳实施例5的外呼系统的对话管理系统的模块示意图。
[0064] 图7为本发明较佳实施例6的外呼系统的对话管理系统的模块示意图。
[0065] 图8为本发明较佳实施例7的电子设备的结构示意图。

具体实施方式

[0066] 下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
[0067] 实施例1
[0068] 本实施例提供一种外呼系统的对话管理方法。如图1所示,本实施例的外呼系统的对话管理方法,包括以下步骤:
[0069] 步骤S101、获取语义信息;
[0070] 步骤S102、根据语义信息更新当前的对话状态;
[0071] 步骤S103、将对话状态输入到预存的状态机中进行状态跳转;
[0072] 步骤S104、外呼系统根据状态机跳转后的状态进行输出问答。本实施例的外呼系统的对话管理方法,能实现用户与外呼系统的口语交流,外呼系统能够回复用户的问题,实现人性化沟通,提高用户的接受度,为企业节约大量人力成本,当用户方是分机情况下,本发明的外呼系统能够实现转接,设计灵活。
[0073] 实施例2
[0074] 在实施例1的基础上,本实施例提供一种外呼系统的对话管理方法。如图2所示,在步骤S104之后,本实施例的外呼系统的对话管理方法还包括以下步骤:
[0075] 步骤S201、在状态机跳转到预设状态后,将语义信息输入到预训练的强化学习模型;
[0076] 步骤S202、外呼系统根据强化学习模型的输出结果进行输出问答。
[0077] 本实施例的外呼系统的对话管理方法,使用训练好的强化学习模型进行对话管理,在对话开始初期冷启动时,使用状态机快速的收集人机对话数据,用于强化学习模型的训练,在热启动阶段,转用强化学习模型进行对话探索,能够自动进行对话学习,覆盖没有考虑到的路径,进一步提高对话系统的准确度和智能化程度,提高对话系统的人性化。
[0078] 实施例3
[0079] 在实施例2的基础上,本实施例提供一种外呼系统的对话管理方法。如图3所示,在步骤S101之前,本实施例的外呼系统的对话管理方法还包括以下步骤:
[0080] 步骤S100、获取领域信息中的槽信息,槽信息用于组成对话状态;
[0081] 根据不同的领域进行划分,根据领域信息确定需要获取的信息,比如针对OTA行业常见的订单确认领域,该领域中OTA厂商向酒店确认某个订单是否可以接单,提取其中需要得到的槽信息如:可以确定,如果不能确定,提取其中的原因。根据槽信息针对性的制定机器人的动作,比如获取的槽信息如果有“可以确定”“满房”“不合作”等,可以针对性的让机器人去询问:“请问是满房了吗”,“请问不合作了吗”。
[0082] 步骤S101、获取语义信息;语义信息包括对话状态、动作和用户意图;
[0083] 本实施例的外部系统跟用户进行的每一次对话将会保存下来,将整个对话拆分成多个对话状态,每个对话状态通过一个对象进行封装保存,为了保证整个对话过程中对话状态都存在,需要将对话状态全部信息存放至数据库如Redis(Remote Dictionary Server远程字典服务),每一次对话的交互都会进行对话状态的更新。本实施例采用面向对象的设计方法,本实施例的对话状态为结构化数据,包括属性和成员变量;属性包括状态属性,成员变量包括状态转移函数;对话状态中的每个状态都具有自己的属性以及在接受一定触发事件的时候可以进行一定的操作(状态转移函数),所以每个状态都可以是一个类,状态属性可以用类的成员变量表示,状态转移函数可以由类的成员函数实现。触发事件主要是用户意图。具体对话状态包含:用户意图字段、最近机器人动作、一些次数限制:酒店请求复述次数、double check(两次检测)不一致次数、打招呼次数、不能接单的原因次数、无法识别次数、询问姓名次数等。对对话状态进行编码标识,如
[0084] *订单是否收到确认状态,澄清订单是否收到确认*/public static final int CLARIFY_RECEIVE_ORDER=2;
[0085] *是否可以口头预订状态,澄清订单是否可以接受口头预订*/public static final int CLARIFY_ORAL_RESERVATION=3;
[0086] 对于指定的领域,除去前一步骤特定场景需要的槽信息,本实施例的外呼系统的对话管理方法还需要设计一系列通用的组件,具体的有:最新用户消息:语义解析模块的结果,包含意图实体及置信度等;系统近一轮的回应;对话状态;最新动作名,用于告知下一步机器人该做什么;事件队列:按时间顺序,记录每一次用户与机器人的对话,记录完整的上下文信息便于其他模块利用或者便于之后对对话进行分析,一系列次数的统计,便于控制整个对话的进行。
[0087] 对于前一步骤得到的对话状态,需要依据场景,设计一系列的动作作为下一步机器人对应用户的回复,但不限于此,动作也可以是拨打分机,调用API(Application Programming Interface,应用程序接口),挂电话等可执行操作。对于OTA订单确认场景,常见动作比如:询问订单是否可以确定;询问是否收到订单等。
[0088] 步骤S102、根据语义信息更新当前的对话状态;
[0089] 主要指根据语义信息中的用户意图更新当前的对话状态;用户意图代表用户说的话,如“满房”。
[0090] 步骤S103、将对话状态输入到预存的状态机中进行状态跳转;
[0091] 步骤S104、外呼系统根据状态机跳转后的状态进行输出问答
[0092] 对于对话管理的初始阶段,通过人为的定义对话流程,将对话流程拆解为不同状态之间的跳转,对于整个对话,对话结束的条件则为获取到指定的信息。在项目的冷启动阶段,基于状态机的规则实现方法可以快速有效的收集数据,并且能满足对话的基本流转。
[0093] 以订单确认领域为例,状态机的设计方法如下:
[0094] 1、首先根据前述确定的对话状态,将整个对话拆分成多个对话状态,每个对话状态通过一个对象进行封装保存,为了保证整个对话过程中对话状态都存在,需要将对话状态全部信息存放至数据库如Redis,每一次对话的交互都会进行对话状态的更新。
[0095] 2、其次,设计相应的事件驱动机制,此处,事件驱动的机制一般是转写文本的语义解析结果,对话管理系统会根据当前状态与触发事件从系统找出状态转移函数及下一个函数,从而执行状态转换函数进行状态转换。
[0096] 如图4所示,本实施例的状态机的状态跳转示意图。本实施例的状态机基于订单确认领域,利用该状态机的对话系统工作原理如下:
[0097] 对话系统首先询问是否是预订部,同时接收并识别用户回答,如果根据用户回答识别出是预订部,对话系统则会继续询问是否收到订单,如果根据用户回答识别出不是预订部,则要求转接,转接成功后继续询问是否为预订部,若转接失败则,输出拜拜;如果用户说的是其他话,则进入通用/输出意图识别分支,并诱导对方解释并再次识别,将用户前后两次说的话进行比较,如果两次说的话意图一致,则输出意图,并让用户确认;如果两次说的话意图不一致,则再次诱导用户再说一次进行识别,再次判断输出结果是否一致,如果还不一致,则输出拜拜。如果识别出的用户意图不在预设的意图类型里,则直接输出拜拜;如果识别出用户愿意接受订单,则系统进一步询问是否可以确定,并检查是否可以确认,如果两次都识别出确认则会询问用户姓名,获取用户姓名后输出拜拜;如果用户突然改变主意,不愿意确认接单,则进入通用/输出意图识别分支;如果识别出用户没有接收到订单,询问是否口头预订,如果识别出用户愿意口头预订,则延用IVR语音播报,并询问是否可以确认分支;如果识别出用户不接受口头预订则输出拜拜。如果预订部还没上班或已经下班,则进入通用意图识别分支;如果没有听清楚或未识别,则再次澄清。
[0098] 图4中菱形和方形为对话状态,如果对话进入该状态,只有满足条件才切换到另一状态,打断和答非所问可以出现在所有的状态中
[0099] Type=18:未识别出限定的10种type(类型),记为18(其他)
[0100] Type<18:识别出限定的10种type
[0101] 个性化Double check:根据不同type,设定不同的check(检测)话术[0102] 若经过2次个性化Double check仍然返回个性化double check,则进入“询问last_name(姓名)”并Return(返回)type=18。
[0103] 对于前一步骤实现的基于规则的状态机,可以快速的收集人机对话数据,用于强化学习算法的训练,对于对话管理,首先根据上述步骤定义的对话决策过程中的状态和动作,状态间的转移关系可以通过强化学习得到,根据reward function(奖励函数)奖励好的行为,惩罚坏的行为,优化行为序列。首先将对话状态和动作进行向量化表示,使用DQN算法进行迭代,其中,神经网络部分只需使用普通的DNN(卷积神经网络),DQN部分采用目标网络进行算法迭代,经验回放部分采用基于规则的模拟数据。对于奖励,以对话信息是否获取和用户问题是否都回答作为衡量指标。
[0104] 本实施例的外呼系统的对话管理方法在实施例2的基础之上还包括训练强化学习模型的步骤:
[0105] 步骤S301、预设奖励机制进行自动数据标注;
[0106] 步骤S302、采用热启动方式收集第一对话数据;
[0107] 步骤S303、采用epislon-greedy探索方式收集第二对话数据;
[0108] 步骤S304、将第一对话数据和第二对话数据中的对话状态和动作进行向量化表示后输入到强化学习模型得到模型输出结果。
[0109] 具体训练过程为:1、训练过程中采用epislon-greedy探索方式,表示以多大的概率进行选择动作,比如值为0.9,则以0.1的概率随机选择动作,使得系统的探索性更强,找到一些新的对话路径。2、每一轮训练将缓冲区数据用于系统学习,每一轮网络更新多次,每轮网络更新之后,更新目标网络临时存储网络参数。使用训练好的DQN网络即可对于下一步机器人动作进行选择。
[0110] 本实施例中动作为系统输出的话,例如
[0111] check_order_confirm        好的,订单可以确认,是吗?
[0112] check_order_not_confirm     请问不能接单的原因是什么呢
[0113] check_full_room        请问是满房了吗
[0114] check_full_room_reply       好的,订单房型已设置满房,谢谢,再见[0115] 本实施例中的意图为用户意图,例如:
[0116] *订单确认1
[0117] public static final String ORDER_CONFIRM="order_confirm";
[0118] *订单不确认2
[0119] public static final String ORDER_NOT_CONFIRM="order_not_confirm";
[0120] 步骤S201具体为:
[0121] 步骤S2010、在状态机跳转到预设状态后,将对话状态和动作进行向量化表示后输入到预训练的强化学习模型;
[0122] 步骤S202、外呼系统输出预训练的强化学习模型的输出问答。
[0123] 本实施例的外呼系统的对话管理方法用于OTA行业。本实施例的外呼系统的对话管理方法在状态机的基础上进一步使用强化学习的模型进行对话系统管理,可以进一步提高系统的对话准确性,增加系统的应用场景。
[0124] 实施例4
[0125] 本实施例提供一种外呼系统的对话管理系统,如图5所示,本实施例的外呼系统的对话管理系统包括以下模块:
[0126] 语义信息获取模块1,用于获取语义信息;
[0127] 对话状态更新模块2,用于根据语义信息更新当前的对话状态;
[0128] 状态跳转模块3,用于将对话状态输入到预存的状态机中进行状态跳转;
[0129] 第一问答输出模块4,用于外呼系统根据状态机跳转后的状态进行输出问答。
[0130] 本实施例的外呼系统的对话管理系统,能实现用户与外呼系统的口语交流,外呼系统能够回复用户的问题,实现人性化沟通,提高用户的接受度,为企业节约大量人力成本,当用户方是分机情况下,本发明的外呼系统能够实现转接,设计灵活。
[0131] 实施例5
[0132] 在实施例4的基础上,本实施例提供一种外呼系统的对话管理系统,如图6所示,本实施例的外呼系统的对话管理系统还包括以下模块:
[0133] 第一模型输入模块5,用于在状态机跳转到预设状态后,将语义信息输入到预训练的强化学习模型;
[0134] 第二问答输出模块6,用于外呼系统根据强化学习模型的输出结果进行输出问答。
[0135] 本实施例的外呼系统的对话管理系统,使用训练好的强化学习模型进行对话管理,在对话开始初期冷启动时,使用状态机快速的收集人机对话数据,用于强化学习模型的训练,在热启动阶段,转用强化学习模型进行对话探索,能够自动进行对话学习,覆盖没有考虑到的路径,进一步提高对话系统的准确度和智能化程度,提高对话系统的人性化。
[0136] 实施例6
[0137] 在实施例5的基础上,本实施例提供一种外呼系统的对话管理系统,如图7所示,本实施例的外呼系统的对话管理系统还包括以下模块:
[0138] 槽信息获取模块7,用于获取领域信息中的槽信息,槽信息用于组成对话状态;
[0139] 根据不同的领域进行划分,根据领域信息确定需要获取的信息,比如针对OTA行业常见的订单确认领域,该领域中OTA厂商向酒店确认某个订单是否可以接单,提取其中需要得到的槽信息如:可以确定,如果不能确定,提取其中的原因。根据槽信息针对性的制定机器人的动作,比如获取的槽信息如果有“可以确定”“满房”“不合作”等,可以针对性的让机器人去询问:“请问是满房了吗”,“请问不合作了吗”。
[0140] 本实施例的外部系统跟用户进行的每一次对话将会保存下来,将整个对话拆分成多个对话状态,每个对话状态通过一个对象进行封装保存,为了保证整个对话过程中对话状态都存在,需要将对话状态全部信息存放至数据库如Redis,每一次对话的交互都会进行对话状态的更新。本实施例采用面向对象的设计方法,本实施例的对话状态为结构化数据,包括属性和成员变量;属性包括状态属性,成员变量包括状态转移函数;对话状态中的每个状态都具有自己的属性以及在接受一定触发事件的时候可以进行一定的操作(状态转移函数),所以每个状态都可以是一个类,状态属性可以用类的成员变量表示,状态转移函数可以由类的成员函数实现。触发事件主要是用户意图。具体对话状态包含:意图、最近机器人动作、一些次数限制:酒店请求复述次数、double check不一致次数、打招呼次数、不能接单的原因次数、无法识别次数、询问姓名次数等。对对话状态进行编码标识,如[0141] *订单是否收到确认状态,澄清订单是否收到确认*/
[0142] public static final int CLARIFY_RECEIVE_ORDER=2;
[0143] *是否可以口头预订状态,澄清订单是否可以接受口头预订*/
[0144] public static final int CLARIFY_ORAL_RESERVATION=3;
[0145] 对于指定的领域,除去前一步骤特定场景需要的槽信息,本实施例的外呼系统的对话管理方法还需要设计一系列通用的组件,具体的有:最新用户消息:语义解析模块的结果,包含意图实体及置信度等;系统近一轮的回应;对话状态;最新动作名,用于告知下一步机器人该做什么;事件队列:按时间顺序,记录每一次用户与机器人的对话,记录完整的上下文信息便于其他模块利用或者便于之后对对话进行分析,一系列次数的统计,便于控制整个对话的进行。
[0146] 对于前一步骤得到的对话状态,需要依据场景,设计一系列的动作作为下一步机器人对应用户的回复,但不限于此,动作也可以是拨打分机,调用api,挂电话等可执行操作。对于OTA订单确认场景,常见动作比如:询问订单是否可以确定;询问是否收到订单等。
[0147] 本实施例的外呼系统的对话管理系统使用的状态机如上述实施例3中,此处不再赘述。
[0148] 训练模型模块8,该训练模型模块8具体包括:
[0149] 数据标注单元81,用于预设奖励机制进行自动数据标注;
[0150] 第一数据收集单元82,用于采用热启动方式收集第一对话数据;
[0151] 第二数据收集单元83,用于采用epislon-greedy探索方式收集第二对话数据;
[0152] 模型结果获取单元84,将第一对话数据和第二对话数据中的对话状态和动作进行向量化表示后输入到强化学习模型获取模型输出结果;
[0153] 具体训练过程为:1、训练过程中采用epislon-greedy探索方式,表示以多大的概率进行选择动作,比如值为0.9,则以0.1的概率随机选择动作,使得系统的探索性更强,找到一些新的对话路径。2、每一轮训练将缓冲区数据用于系统学习,每一轮网络更新多次,每轮网络更新之后,更新目标网络临时存储网络参数。使用训练好的dqn网络即可对于下一步机器人动作进行选择。
[0154] 本实施例中动作为系统输出的话,例如
[0155] check_order_confirm       好的,订单可以确认,是吗?
[0156] check_order_not_confirm     请问不能接单的原因是什么呢
[0157] check_full_room        请问是满房了吗
[0158] check_full_room_reply       好的,订单房型已设置满房,谢谢,再见[0159] 本实施例中的意图为用户意图,例如:
[0160] *订单确认1
[0161] public static final String ORDER_CONFIRM="order_confirm";
[0162] *订单不确认2
[0163] public static final String ORDER_NOT_CONFIRM="order_not_confirm";
[0164] 第一模型输入模块5,用于将对话状态和动作进行向量化表示后输入到预训练的强化学习模型;
[0165] 本实施例的外呼系统的对话管理系统具体实施原理采用上述实施例3中,此处不再赘述。
[0166] 本实施例的外呼系统的对话管理系统用于OTA行业。
[0167] 本实施例的外呼系统的对话管理方法在状态机的基础上进一步使用强化学习的模型进行对话系统管理,可以进一步提高系统的对话准确性,增加系统的应用场景。
[0168] 实施例7
[0169] 图8为本发明实施例7提供的一种电子设备的模块示意图。电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现实施例1或2或3的外呼系统的对话管理方法。图8显示的电子设备30仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
[0170] 如图8所示,电子设备30可以以通用计算设备的形式表现,例如其可以为服务器设备。电子设备30的组件可以包括但不限于:上述至少一个处理器31、上述至少一个存储器32、连接不同系统组件(包括存储器32和处理器31)的总线33。
[0171] 总线33包括数据总线地址总线和控制总线。
[0172] 存储器32可以包括易失性存储器,例如随机存取存储器(RAM)321和/或高速缓存存储器322,还可以进一步包括只读存储器(ROM)323。
[0173] 存储器32还可以包括具有一组(至少一个)程序模块324的程序/实用工具325,这样的程序模块324包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
[0174] 处理器31通过运行存储在存储器32中的计算机程序,从而执行各种功能应用以及数据处理,例如本发明实施例1或2或3所提供的外呼系统的对话管理方法。
[0175] 电子设备30也可以与一个或多个外部设备34(例如键盘、指向设备等)通信。这种通信可以通过输入/输出(I/O)接口35进行。并且,模型生成的设备30还可以通过网络适配器36与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器36通过总线33与模型生成的设备30的其它模块通信。应当明白,尽管图中未示出,可以结合模型生成的设备30使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID(磁盘阵列)系统、磁带驱动器以及数据备份存储系统等。
[0176] 应当注意,尽管在上文详细描述中提及了电子设备的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
[0177] 实施例8
[0178] 本实施例提供了一种计算机可读存储介质,其上存储有计算机程序,程序被处理器执行时实现实施例1或2或3所提供的外呼系统的对话管理方法步骤。
[0179] 其中,可读存储介质可以采用的更具体可以包括但不限于:便携式盘、硬盘、随机存取存储器、只读存储器、可擦拭可编程只读存储器、光存储器件、磁存储器件或上述的任意合适的组合。
[0180] 在可能的实施方式中,本发明还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行实现实施例1或2或3的外呼系统的对话管理方法中的步骤。
[0181] 其中,可以以一种或多种程序设计语言的任意组合来编写用于执行本发明的程序代码,程序代码可以完全地在用户设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户设备上部分在远程设备上执行或完全在远程设备上执行。
[0182] 虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈