首页> 中国专利> 多轮对话中意图识别的方法、介质、装置和计算设备

多轮对话中意图识别的方法、介质、装置和计算设备

摘要

本公开的实施方式提供了一种多轮对话中意图识别的方法、介质、装置和计算设备。该方法包括:获取多轮对话中首轮对话所包含的初始问句,确定对应于所述初始问句的多个候选实体,基于所述初始问句和所述多个候选实体生成候选问句,根据所述候选问句以及预先配置有明确意图的参考例句,确定所述首轮对话的意图识别结果。本公开实施例由于在识别候选实体的基础上进行意图识别,有效地将意图识别和实体识别结合起来使用,与单纯进行意图识别的方式相比,考虑了实体影响的因素,极大地提高了多轮对话中意图识别的准确率。

著录项

  • 公开/公告号CN113157893A

    专利类型发明专利

  • 公开/公告日2021-07-23

    原文格式PDF

  • 申请/专利权人 网易(杭州)网络有限公司;

    申请/专利号CN202110571576.3

  • 申请日2021-05-25

  • 分类号G06F16/332(20190101);G06F40/295(20200101);

  • 代理机构11313 北京市铸成律师事务所;

  • 代理人郭丽祥;阎敏

  • 地址 310052 浙江省杭州市滨江区长河街道网商路599号4幢7层

  • 入库时间 2023-06-19 11:57:35

说明书

技术领域

本公开的实施方式涉及意图识别技术领域,更具体地,本公开的实施方式涉及多轮对话中意图识别的方法、介质、装置和计算设备。

背景技术

本部分旨在为权利要求书中陈述的本公开的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是相关技术。

多轮对话一般分为闲聊型多轮对话和任务型多轮对话。闲聊型多轮对话一般见于闲聊机器人,如微软小冰,小爱同学等,能在开放领域与用户进行“天马行空”式的对话,聊天话题是无限定的。任务型多轮对话一般见于客服机器人,如阿里小蜜,网易七鱼等,旨在帮助用户解决某领域的特定问题或达成某一特定目的。任务型多轮对话的用户一般带着一个或多个明确的意图如“预定机票”或“自助健康诊断”等,与系统进行交互。该类意图无法简单地用一问一答式的对话方案即单轮对话得到满足,而是需要通过用户和客服机器人的多轮次对话,逐步确认用户意图和补全相关属性信息,才能达到最终目的。例如,在预定机票意图下,多轮对话系统需要先明确用户意图为“预定机票”,再补全用户的出发地、目的地、出发时间和舱位类型等相关信息,才能为用户实现最终的预定机票服务。

目前,现有的多轮对话通常是在用户的首轮会话中确定用户进入会话的意图,例如确认用户是需要“预定机票”还是需要“机票改签”;然后再进行槽位填充,收集完成用户意图识别所需的其它信息,如“预定机票”意图需要收集用户的“出发地”和“目的地”等实体信息。

但是,上述现有技术把意图识别和实体识别两个步骤独立开来进行,导致整个会话流程的正误强依赖于第一个执行的步骤。如果先进行的意图识别环节发生错误,则后续的实体识别任务毫无意义。例如在机场场景中有两个意图“预定机票”和“机票改签”,如果在意图识别环节,把用户意图从“预定机票”误认为“机票改签”,那么后续去抽取“改签日期”这个实体则毫无意义。

发明内容

本公开期望提供一种多轮对话中意图识别的方法和装置。

在本公开实施方式的第一方面中,提供了一种多轮对话中意图识别的方法,包括:

获取多轮对话中首轮对话所包含的初始问句;

确定对应于所述初始问句的多个候选实体;

基于所述初始问句和所述多个候选实体生成候选问句;

根据所述候选问句以及预先配置有明确意图的参考例句,确定所述首轮对话的意图识别结果。

在本公开的一个实施例中,所述候选实体的类型包括:预置型实体、枚举型实体、正则型实体和描述型实体,所述预置型实体为预先配置好且直接封装的实体类型,所述枚举型实体为实体值可枚举的实体类型,所述正则型实体为可用正则表达式归纳实体值的实体类型,所述描述型实体为对事物属性或状态进行描述的实体类型。

在本公开的一个实施例中,所述确定对应于所述初始问句的多个候选实体,包括:

使用预先训练的第一识别模型,识别出对应于所述初始问句的多个候选实体,所述多个候选实体包括预置型实体、枚举型实体和正则型实体。

在本公开的一个实施例中,所述基于所述初始问句和所述多个候选实体生成候选问句,包括:

对所述多个候选实体进行组合形成对应于所述初始问句的多个候选实体集合,其中,所述候选实体集合以至少一个所述候选实体作为其元素;

分别将各个候选实体集合中的元素配置于所述初始问句的对应位置中,以形成多个对应于所述初始问句的候选问句。

在本公开的一个实施例中,所述分别将各个候选实体集合中的元素配置于所述初始问句的对应位置中,以形成多个对应于所述初始问句的候选问句,包括:

分别将各个候选实体集合中的元素配置于所述初始问句的对应位置中,过滤掉元素数目少于指定数目的句子后,得到多个对应于所述初始问句的候选问句。

在本公开的一个实施例中,所述分别将各个候选实体集合中的元素配置于所述初始问句的对应位置中,以形成多个对应于所述初始问句的候选问句,包括:

分别将各个候选实体集合中的元素配置于所述初始问句的对应位置中,过滤掉未出现在预先配置有明确意图的参考例句中的句子,得到多个对应于所述初始问句的候选问句。

在本公开的一个实施例中,所述分别将各个候选实体集合中的元素配置于所述初始问句的对应位置中,以形成多个对应于所述初始问句的候选问句,包括:

分别将各个候选实体集合中的元素配置于所述初始问句的对应位置中,在得到的句子总数达到预设的上限值时,以当前所得到的句子为限,在其中随机选取多个句子作为对应于所述初始问句的候选问句。

在本公开的一个实施例中,所述对所述多个候选实体进行组合形成对应于所述初始问句的多个候选实体集合之前,还包括:

对于存在多个实体值的候选实体,获取对应于该候选实体的各个实体值的字符串长度,并确定相应实体值在所述初始问句中的起始位置,根据所述字符串长度和所述起始位置筛选出用于进行组合的相应实体值。

在本公开的一个实施例中,所述根据所述字符串长度和所述起始位置筛选出用于进行组合的相应实体值,包括:

若该候选实体的多个实体值的字符串长度不同,则选择字符串长度最长的实体值用于进行组合;

若该候选实体的多个实体值的字符串长度均相同,则在该多个实体值所包含的字符串有重叠的情况下,选择起始位置最靠前的实体值用于进行组合。

在本公开的一个实施例中,所述根据所述候选问句以及预先配置有明确意图的参考例句,确定所述首轮对话的意图识别结果,包括:

若预先配置有明确意图的参考例句中存在包括描述型实体的参考例句,将该参考例句中所述描述型实体的实体值进行扩展,得到扩展例句,并将得到的所述扩展例句补充到所述意图中;

根据所述候选问句以及所述意图的参考例句和扩展例句,确定所述首轮对话的意图识别结果。

在本公开的一个实施例中,所述将该参考例句中所述描述型实体的实体值进行扩展,得到扩展例句,包括:

在预先为所述描述型实体配置的多个实体值中,获取除当前出现在所述参考例句中的实体值以外的其他实体值;

将所述参考例句中的当前实体值,依次替换为获取的所述其他实体值,分别得到对应的扩展例句。

在本公开的一个实施例中,所述根据所述候选问句以及预先配置有明确意图的参考例句,确定所述首轮对话的意图识别结果,包括:

分别对所述候选问句及预先配置有明确意图的参考例句进行编码;

对编码后的候选问句与参考例句进行相似度计算;

根据相似度计算的结果确定所述首轮对话的意图识别结果。

在本公开的一个实施例中,所述方法由预先训练的第一识别模型执行,且在所述多轮对话开始前,采用配对框架构造三元组的训练数据对所述第一识别模型进行训练。

在本公开的一个实施例中,所述三元组包括第一文本串、第二文本串和第三文本串,所述训练的目标为所述第一文本串和第二文本串的相似度,高于所述第一文本串和第三文本串的相似度。

在本公开的一个实施例中,所述采用配对框架构造三元组的训练数据对所述第一识别模型进行训练,包括:

若所述三元组中的第一文本串和第二文本串中包含相同的实体,且所述第一文本串和第三文本串中无相同的实体,则训练所述第一识别模型识别所述第一文本串和第二文本串的相似度,高于所述第一文本串和第三文本串的相似度。

在本公开的一个实施例中,所述采用配对框架构造三元组的训练数据对所述第一识别模型进行训练,包括:

在所述三元组中的第一文本串和第二文本串中包含多个相同实体的情况下,从所述多个相同的实体中选出指定个数的实体;

在所述三元组的第三文本串中找出与所述指定个数的实体不同的实体,训练所述第一识别模型识别所述第一文本串和第二文本串的相似度,高于所述第一文本串和第三文本串的相似度。

在本公开的一个实施例中,所述采用配对框架构造三元组的训练数据对所述第一识别模型进行训练,包括:

在所述三元组中的第一文本串和第二文本串中包含多个相同实体的情况下,从所述多个相同的实体中选出至少两个实体;

若所述三元组的第三文本串中存在一个实体,且该实体与所述至少两个实体中的某一个实体相同,则训练所述第一识别模型识别所述第一文本串和第二文本串的相似度,高于所述第一文本串和第三文本串的相似度。

在本公开的一个实施例中,所述方法还包括:

在训练所述第一识别模型之前按照如下方式对构造好的训练数据进行编码:

在词典中预留多个占位实体,并按照相应占位实体在词典中的排位顺序设置对应的占位编码;

对构造好的训练数据中的实体进行排序,将排序后的实体按照所述排位顺序依次替换为对应的占位编码;

将所述训练数据中的其他文字都按照转换函数转换为文字编码。

在本公开的一个实施例中,所述方法还包括:

在所述相似度计算后,将最高相似度对应的候选问句中的实体组合,确定为所述首轮对话的实体识别结果。

在本公开的一个实施例中,所述方法还包括:

在所述首轮对话之后的对话中,收集所述实体组合以外的其他实体;

根据所述意图识别结果以及所述实体组合和其他实体,执行所述多轮对话的回复或响应。

在本公开的一个实施例中,所述方法还包括以下至少一种:

接收配置人员输入的配置信息,根据所述配置信息生成枚举型实体,为所述枚举型实体配置实体名称和可枚举的实体值;

接收配置人员输入的配置信息,根据所述配置信息生成正则型实体,为所述正则型实体配置实体名称和正则表达式;

接收配置人员输入的配置信息,根据所述配置信息生成描述型实体,为所述描述型实体配置实体名称和描述性的实体值。

在本公开实施方式的第二方面中,提供了一种多轮对话中意图识别的装置,包括:

获取模块,用于获取多轮对话中首轮对话所包含的初始问句;

确定模块,用于确定对应于所述初始问句的多个候选实体;

生成模块,用于基于所述初始问句和所述多个候选实体生成候选问句;

识别模块,用于根据所述候选问句以及预先配置有明确意图的参考例句,确定所述首轮对话的意图识别结果。

在本公开的一个实施例中,所述候选实体的类型包括:预置型实体、枚举型实体、正则型实体和描述型实体,所述预置型实体为预先配置好且直接封装的实体类型,所述枚举型实体为实体值可枚举的实体类型,所述正则型实体为可用正则表达式归纳实体值的实体类型,所述描述型实体为对事物属性或状态进行描述的实体类型。

在本公开的一个实施例中,所述确定模块用于:

使用预先训练的第一识别模型,识别出对应于所述初始问句的多个候选实体,所述多个候选实体包括预置型实体、枚举型实体和正则型实体。

在本公开的一个实施例中,所述生成模块包括:

组合单元,用于对所述多个候选实体进行组合形成对应于所述初始问句的多个候选实体集合,其中,所述候选实体集合以至少一个所述候选实体作为其元素;

生成单元,用于分别将各个候选实体集合中的元素配置于所述初始问句的对应位置中,以形成多个对应于所述初始问句的候选问句。

在本公开的一个实施例中,所述生成单元用于:

分别将各个候选实体集合中的元素配置于所述初始问句的对应位置中,过滤掉元素数目少于指定数目的句子后,得到多个对应于所述初始问句的候选问句。

在本公开的一个实施例中,所述生成单元用于:

分别将各个候选实体集合中的元素配置于所述初始问句的对应位置中,过滤掉未出现在预先配置有明确意图的参考例句中的句子,得到多个对应于所述初始问句的候选问句。

在本公开的一个实施例中,所述生成单元用于:

分别将各个候选实体集合中的元素配置于所述初始问句的对应位置中,在得到的句子总数达到预设的上限值时,以当前所得到的句子为限,在其中随机选取多个句子作为对应于所述初始问句的候选问句。

在本公开的一个实施例中,所述组合单元还用于:

对于存在多个实体值的候选实体,获取对应于该候选实体的各个实体值的字符串长度,并确定相应实体值在所述初始问句中的起始位置,根据所述字符串长度和所述起始位置筛选出用于进行组合的相应实体值。

在本公开的一个实施例中,所述组合单元在根据所述字符串长度和所述起始位置筛选出用于进行组合的相应实体值时具体用于:

若该候选实体的多个实体值的字符串长度不同,则选择字符串长度最长的实体值用于进行组合;

若该候选实体的多个实体值的字符串长度均相同,则在该多个实体值所包含的字符串有重叠的情况下,选择起始位置最靠前的实体值用于进行组合。

在本公开的一个实施例中,所述识别模块包括:

扩展单元,用于若预先配置有明确意图的参考例句中存在包括描述型实体的参考例句,将该参考例句中所述描述型实体的实体值进行扩展,得到扩展例句,并将得到的所述扩展例句补充到所述意图中;

识别单元,用于根据所述候选问句以及所述意图的参考例句和扩展例句,确定所述首轮对话的意图识别结果。

在本公开的一个实施例中,所述扩展单元用于:

若预先配置有明确意图的参考例句中存在包括描述型实体的参考例句,在预先为所述描述型实体配置的多个实体值中,获取除当前出现在所述参考例句中的实体值以外的其他实体值;

将所述参考例句中的当前实体值,依次替换为获取的所述其他实体值,分别得到对应的扩展例句;

并将得到的所述扩展例句补充到所述意图中。

在本公开的一个实施例中,所述识别模块用于:

分别对所述候选问句及预先配置有明确意图的参考例句进行编码;

对编码后的候选问句与参考例句进行相似度计算;

根据相似度计算的结果确定所述首轮对话的意图识别结果。

在本公开的一个实施例中,所述装置由预先训练的第一识别模型实现各项功能,所述装置还包括:

训练模块,用于在所述多轮对话开始前,采用配对框架构造三元组的训练数据对所述第一识别模型进行训练。

在本公开的一个实施例中,所述三元组包括第一文本串、第二文本串和第三文本串,所述训练的目标为所述第一文本串和第二文本串的相似度,高于所述第一文本串和第三文本串的相似度。

在本公开的一个实施例中,所述训练模块用于:

在所述多轮对话开始前,若所述三元组中的第一文本串和第二文本串中包含相同的实体,且所述第一文本串和第三文本串中无相同的实体,则训练所述第一识别模型识别所述第一文本串和第二文本串的相似度,高于所述第一文本串和第三文本串的相似度。

在本公开的一个实施例中,所述训练模块用于:

在所述多轮对话开始前,在所述三元组中的第一文本串和第二文本串中包含多个相同实体的情况下,从所述多个相同的实体中选出指定个数的实体;

在所述三元组的第三文本串中找出与所述指定个数的实体不同的实体,训练所述第一识别模型识别所述第一文本串和第二文本串的相似度,高于所述第一文本串和第三文本串的相似度。

在本公开的一个实施例中,所述训练模块用于:

在所述多轮对话开始前,在所述三元组中的第一文本串和第二文本串中包含多个相同实体的情况下,从所述多个相同的实体中选出至少两个实体;

若所述三元组的第三文本串中存在一个实体,且该实体与所述至少两个实体中的某一个实体相同,则训练所述第一识别模型识别所述第一文本串和第二文本串的相似度,高于所述第一文本串和第三文本串的相似度。

在本公开的一个实施例中,所述装置还包括:

编码模块,用于在训练所述第一识别模型之前按照如下方式对构造好的训练数据进行编码:

在词典中预留多个占位实体,并按照相应占位实体在词典中的排位顺序设置对应的占位编码;

对构造好的训练数据中的实体进行排序,将排序后的实体按照所述排位顺序依次替换为对应的占位编码;

将所述训练数据中的其他文字都按照转换函数转换为文字编码。

在本公开的一个实施例中,所述识别模块还用于:

在所述相似度计算后,将最高相似度对应的候选问句中的实体组合,确定为所述首轮对话的实体识别结果。

在本公开的一个实施例中,所述装置还包括:

收集模块,用于在所述首轮对话之后的对话中,收集所述实体组合以外的其他实体;

响应模块,用于根据所述意图识别结果以及所述实体组合和其他实体,执行所述多轮对话的回复或响应。

在本公开的一个实施例中,所述装置还包括配置模块,用于采用以下至少一种方式进行配置:

接收配置人员输入的配置信息,根据所述配置信息生成枚举型实体,为所述枚举型实体配置实体名称和可枚举的实体值;

接收配置人员输入的配置信息,根据所述配置信息生成正则型实体,为所述正则型实体配置实体名称和正则表达式;

接收配置人员输入的配置信息,根据所述配置信息生成描述型实体,为所述描述型实体配置实体名称和描述性的实体值。

在本公开实施方式的第三方面中,提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现上述多轮对话中意图识别的方法的步骤。

在本公开实施方式的第四方面中,提供了一种计算设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现多轮对话中意图识别的方法的步骤。

根据本公开实施方式的多轮对话中意图识别的方法和装置,通过获取多轮对话中首轮对话所包含的初始问句,确定对应于所述初始问句的多个候选实体,基于所述初始问句和所述多个候选实体生成候选问句,根据所述候选问句以及预先配置有明确意图的参考例句,确定所述首轮对话的意图识别结果。由于在识别候选实体的基础上进行意图识别,有效地将意图识别和实体识别结合起来使用,与单纯进行意图识别的方式相比,考虑了实体影响的因素,极大地提高了多轮对话中意图识别的准确率。

附图说明

通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,其中:

图1示意性地示出了根据本公开一实施方式的多轮对话中意图识别的方法实现流程图一;

图2示意性地示出了根据本公开一实施方式的意图配置示意图一;

图3示意性地示出了根据本公开一实施方式的意图配置示意图二;

图4示意性地示出了根据本公开一实施方式的多轮对话中意图识别的方法实现流程图二;

图5示意性地示出了根据本公开一实施方式的确定候选实体的示意图;

图6示意性地示出了根据本公开一实施方式的生成候选问句的示意图;

图7示意性地示出了根据本公开一实施方式的候选问句过滤结果的示意图;

图8示意性地示出了根据本公开一实施方式的筛选实体值的示意图;

图9示意性地示出了根据本公开一实施方式的描述型实体扩展的示意图;

图10示意性地示出了根据本公开一实施方式的训练第一识别模型的流程图;

图11示意性地示出了根据本公开一实施方式的多轮对话的整体流程示意图;

图12示意性地示出了根据本公开一实施方式的用于多轮对话中意图识别的方法的介质示意图;

图13示意性地示出了根据本公开一实施方式的多轮对话中意图识别的装置结构示意图;

图14示意性地示出了根据本公开一实施方式的计算设备的结构示意图。

在附图中,相同或对应的标号表示相同或对应的部分。

具体实施方式

下面将参考若干示例性实施方式来描述本公开的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。

本领域技术人员知道,本公开的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。

根据本公开的实施方式,提出了一种多轮对话中意图识别的方法、介质、装置和计算设备。

在本文中,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。

下面参考本公开的若干代表性实施方式,详细阐释本公开的原理和精神。

本公开人发现,现有的多轮对话的首轮会话的意图识别技术中,往往把意图识别和实体识别两个步骤独立开来进行,导致整个会话流程识别结果的准确率强依赖于第一个执行的步骤,如果第一个执行的步骤发生错误,则最终识别结果的准确率也会受到极大影响。

有鉴于此,本公开提供一种多轮对话中意图识别的方法和装置,通过获取多轮对话中首轮对话所包含的初始问句,确定对应于所述初始问句的多个候选实体,基于所述初始问句和所述多个候选实体生成候选问句,根据所述候选问句以及预先配置有明确意图的参考例句,确定所述首轮对话的意图识别结果。由于在识别候选实体的基础上进行意图识别,有效地将意图识别和实体识别结合起来使用,与单纯进行意图识别的方式相比,考虑了实体影响的因素,极大地提高了多轮对话中意图识别的准确率。

在介绍了本公开的基本原理之后,下面具体介绍本公开的各种非限制性实施方式。

下面参考图1来描述根据本公开示例性实施方式的多轮对话中意图识别的方法。

如图1所示,本公开实施例的多轮对话中意图识别的方法包括以下步骤:

S11:获取多轮对话中首轮对话所包含的初始问句;

S12:确定对应于初始问句的多个候选实体;

S13:基于初始问句和多个候选实体生成候选问句;

S14:根据候选问句以及预先配置有明确意图的参考例句,确定首轮对话的意图识别结果。

本公开实施例中,多轮对话是指与用户进行多轮交互的对话,每一轮对话都表现为一问一答的形式,其中首轮对话是指该多轮对话中的第一轮对话。

本公开实施例中,实体是指存在于现实世界中并且可以相互区分的对象或事务。而且,实体不需要一定是物质上的存在,也可以是抽象的概念。例如:地点、交通工具、手机品牌、持续时间、舱位类型等等。

上述明确意图为预先配置的,可以包括多种应用场景。例如,在机场场景下,“帮助用户预定机票”可以配置为一个意图;在健康场景下,“帮助用户初步诊断病情并提出建议”可以配置为一个意图;在教育场景下,“帮助用户完成一次课程预定”可以配置为一个意图。

通过上述过程,本公开实施例基于初始问句确定候选实体,基于候选实体进行意图识别,有效地将意图识别和实体识别结合起来使用,与单纯进行意图识别的方式相比,考虑了实体影响的因素,极大地提高了多轮对话中意图识别的准确率。

本公开实施例涉及的候选实体的类型包括:预置型实体、枚举型实体、正则型实体和描述型实体。其中,预置型实体为预先配置好且直接封装的实体类型,枚举型实体为实体值可枚举的实体类型,正则型实体为可用正则表达式归纳实体值的实体类型,描述型实体为对事物属性或状态进行描述的实体类型。

在一种可能的实施方式中,预置型实体可以包括人名、地名、时间等命名实体类型。这类实体类型比较常见,可以适用于不同业务、不同领域下的意图识别任务,有较为丰富的开源标注数据和较为成熟的实体识别解决方案。例如,在“预定机票”的意图中,“出发地”、“目的地”、“出发时间”都可以归类为预置型实体。

在一种可能的实施方式中,枚举型实体可以由配置人员进行配置,包括配置哪些实体为枚举型实体,并定义相应的实体名称和实体值。例如,在“预定机票”的意图中,配置人员可以配置“舱位等级”为枚举型实体,该实体的实体值是可枚举的,可以包括:“头等舱”、“公务舱”和“经济舱”。通常,在各个业务场景中,实体值的描述是精确且有限的,配置人员在描述此类实体值时会参照约定俗成的术语。

在一种可能的实施方式中,正则型实体可以由配置人员自由定义与业务相关的实体名称和相应的正则表达式。例如,在“自助健康诊断”意图中,“用户病案号”为一串预先设定好的用户身份识别ID,配置人员可以直接用一套正则规则表示全部病案号ID。正则型实体的实体值是可控的,不会跳出正则表达式规定的范围。

在一种可能的实施方式中,描述型实体与枚举型实体不同,配置人员在描述此类实体值时可能会采用不同的表述方法,需要对这类的实体值有一定的理解和泛化能力。例如,在“自助健康诊断”意图中,将“用户症状”配置成为描述型实体,该实体的实体值可配置为:“咳嗽”、“流鼻涕”、“失眠”和“头痛”。然而,用户在多轮对话中实际描述自己的症状时,不会采用与配置完全一致的用词,如用户可能会采用:“咳了一段时间”、“鼻涕很多”、“太阳穴痛”等说法。因此,考虑到实体值的语义泛化情况,本公开实施例提供的描述型实体,可以解决一般实体值的语义无法泛化的问题。而且在确定初始问句对应的多个候选实体时,仅考虑预置型实体、枚举型实体和正则型实体,将描述型实体放在意图识别的环节中进行,不仅节省了系统资源,而且能够达到更好的实体识别效果。

本公开实施例中,每个实体除了实体名称、实体类型这两个属性外,还具有另一个属性,即对应的实体值。一个实体的实体值可以有一个,也可以有多个,相应的代表不同场景下实体对应的真实值。例如,实体“地址”对应的实体值有“北京”和“上海”,实体“交通工具”对应的实体值有“火车”和“飞机”等。

本公开实施例中,枚举型实体、正则型实体和描述型实体这三种类型的实体配置完全对配置人员开放,可以毫无成本的在各个业务场景和领域中配置使用,配置人员可按照实体类型的不同特点,对意图关联的实体进行划分和配置,极大地提高了应用的灵活性,适用更广泛。

本公开中,在配置意图时可以对意图名称、实体名称、实体类型和参考例句进行配置,具体可以根据实际需要配置相应的内容。值得一提的是,配置的参考例句中可以包含不同的实体信息,也可以完全不包含实体信息,这些都是符合要求的参考例句配置范畴,可以由配置人员按照业务相关场景进行意图的相应设计和配置。例如,参考图2,意图“预定机票”中的参考例句3“订机票。”就属于不包含实体信息的参考例句,无需实体信息就可以表明相应的意图,这种情况可以由配置人员根据实际需要来设置。

图2示意性地示出了根据本公开一实施方式的意图配置示意图。参见图2,在机场场景中配置意图名称为“预定机票”,该意图所关联的实体有四个,实体名称分别为“出发地”、“目的地”、“出发时间”和“舱位等级”。其中,“出发地”、“目的地”和“出发时间”的实体类型均为预置型实体。“舱位等级”的实体类型为枚举型实体,其实体值包括:“头等舱”、“商务舱”和“经济舱”。为该意图配置的参考例句包括:1.帮我订一张明天飞上海的机票。2.我要订一张商务舱机票,飞往北京的。3.订机票。配置的参考例句的个数可以根据需要设定,具体数值不限定,如配置5个或8个参考例句等。另外,还可以在参考例句中对实体值进行标记,以示区别,具体标记方式不限定。例如,在参考例句“帮我订一张明天飞上海的机票”中,对实体“出发时间”的实体值“明天”和实体“目的地”的实体值“上海”进行标记。

图3示意性地示出了根据本公开一实施方式的意图配置示意图。参见图3,在健康场景中配置意图名称为“自助健康诊断”,该意图所关联的实体有三个,实体名称分别为“用户病案号”、“用户症状”和“持续时间”,对应的实体类型分别为正则型实体、描述型实体和预置型实体。其中,实体“用户症状”的实体值包括:“咳嗽”、“流鼻涕”、“失眠”和“头痛”。为该意图配置的参考例句包括:1.我已经咳嗽一周了,一直不见好。2.晚上一直睡不着,持续了一个月了。3.我的病案号是123456,流鼻涕应该吃什么药?另外,还可以在参考例句中对实体值进行标记,以示区别,如在参考例句“我已经咳嗽了一周了,一直不见好”中,对实体“用户症状”的实体值“咳嗽”和实体“持续时间”的实体值“一个月”进行标记。

在一种可能的实施方式中,上述步骤S12可以包括:

使用预先训练的第一识别模型,识别出对应于初始问句的多个候选实体,多个候选实体包括预置型实体、枚举型实体和正则型实体。

在一种可能的实施方式中,上述步骤S14可以包括:

分别对候选问句及预先配置有明确意图的参考例句进行编码;对编码后的候选问句与参考例句进行相似度计算;根据相似度计算的结果确定首轮对话的意图识别结果。

在一种可能的实施方式中,在进行上述相似度计算之后,还可以包括:

将最高相似度对应的候选问句中的实体组合,确定为首轮对话的实体识别结果。这种基于相似度确定的实体识别结果,能够更准确地反映初始问句对应的实体,在后续进行多轮对话的回复或响应时,可以将其作为依据进行回复或响应,有助于提高用户的满意度。

在一种可能的实施方式中,上述方法还可以包括:

在首轮对话之后的对话中,收集上述实体组合以外的其他实体;根据意图识别结果以及实体组合和其他实体,执行多轮对话的回复或响应。

其中,可以采用一般通用的会话管理方法,随时跟踪当前意图的状态,判断当前所需的实体信息是否识别完成,如果未完成,则可以通过反问话术,引导用户补充其他实体信息,直至识别完当前意图所需的全部实体。上述执行多轮对话的回复是指发送回复的内容给用户,执行多轮对话的响应是指触发执行相应的操作作为多轮对话的响应。具体地,可以按照配置好的回复模式,生成回复内容发送给用户,如答复病情诊断结果和建议措施给用户。或者,还可以直接触发执行相应的操作作为多轮对话的响应,如触发执行给用户订机票的操作或给用户开发票的操作,将其作为多轮对话的响应等。

这种综合意图识别结果和实体识别结果后对多轮对话进行回复或响应的方式,能够提高回复或响应的精确度,进一步提高用户对回复或响应结果的满意度,提升用户体验。

图4示意性地示出了根据本公开一实施方式的多轮对话中意图识别的方法实现流程图。如图4所示,本公开实施例的多轮对话中意图识别的方法包括以下步骤:

S41:获取多轮对话中首轮对话所包含的初始问句;

S42:确定对应于初始问句的多个候选实体;

S43:对多个候选实体进行组合形成对应于初始问句的多个候选实体集合,每个候选实体集合以至少一个候选实体作为其元素;

其中,候选实体集合的元素由候选实体构成,一个候选实体集合可以包括一个或多个候选实体。为了提高意图识别结果的准确率,可以尽可能多地对确定的多个候选实体进行组合,以得到最多的候选实体集合。当然,本公开实施例不对候选实体集合的个数进行具体限定。

S44:分别将各个候选实体集合中的元素配置于初始问句的对应位置中,以形成多个对应于初始问句的候选问句;

S45:若预先配置有明确意图的参考例句中存在包括描述型实体的参考例句,将该参考例句中描述型实体的实体值进行扩展,得到扩展例句,并将得到的扩展例句补充到意图中;

S46:根据候选问句以及意图的参考例句和扩展例句,确定首轮对话的意图识别结果。

上述过程,通过多个候选实体的组合得到多个候选实体集合,再基于候选实体集合中的元素配置于初始问句的对应位置以形成多个候选问句,能够得到多个待匹配的对象,根据这些待匹配的对象与预先配置有明确意图的参考例句,进而确定出首轮对话的意图识别结果,使得候选问句较为丰富,且充分考虑了实体组合对意图识别的影响,有效地提高了意图识别的准确度。另外,针对描述型实体进行扩展得到扩展例句也作为待匹配的对象,能够为意图识别提供更丰富更完善的数据支持,进一步地提高了意图识别的准确度,提升用户的满意度。

本公开实施例中,上述步骤S42确定对应于初始问句的多个候选实体时,可以根据实体的类型是预置型实体、枚举型实体或正则型实体来分别确定。其中,对于预置型实体,基于其通用性,可以直接采用开源的实体识别模块或自研训练的实体抽取模型进行实体识别,常用方法如LSTM-CRF(Long Short-Term Memory Conditional Random Fieldalgorithm,长短期记忆网络-条件随机场算法)或BiGRU(Bidirectional Gated RecurrentUnit,双向门控循环单元)-CRF等。对于枚举型实体,由于其话术相对精准,可以采用规则匹配的方式进行实体识别。对于正则型实体,由于其实体值范围不会跳出正则表达式规定的范围,因此可以直接用正则表达式匹配识别。

而对于描述型实体,由于其用词说法相对宽泛,无法通过枚举的方式穷举完所有可能的实体值,对语义泛化和理解能力的要求与意图识别环节相同,因此,可以在步骤S45中进行描述型实体的确定。

图5示意性地示出了根据本公开一实施方式的确定候选实体的示意图。参见图5,在获取多轮对话中首轮对话所包含的初始问句后,确定对应于初始问句的多个候选实体,包括预置型实体、枚举型实体和正则型实体。图中左侧示例为机场场景,初始问句为“明天去广州出差,帮我订张商务舱机票”,识别出的实体包括:“出发时间”、“出发地”、“目的地”和“舱位等级”,对应的实体值分别为:“明天”、“广州”、“广州”和“商务舱”。其中,由于“广州”有可能是一个出发地实体值,也有可能是一个目的地实体值,因此,在暂时无法确认具体是哪一个实体的情况下,可以保留两种可能性,在最终的意图识别环节再确认的其实体属性。图中右侧示例为健康场景,初始问句为“我今天一直头疼,怎么回事?病案号是这个:654321”,识别出的实体包括:“持续时间”和“用户病案号”,对应的实体值分别为:“今天一直”和“654321”。

图6示意性地示出了根据本公开一实施方式的生成候选问句的示意图。参见图6,在机场场景下配置有两个意图“机票改签”和“预定机票”,且每个意图配置有相关的实体信息和参考例句。其中,意图“机票改签”关联的实体包括:正则型实体“航班号”和预置型实体“改签日期”,参考例句包括:“1.帮我把明天飞上海的机票改签到后天”等等。意图“预定机票”关联的实体包括:预置型实体“出发地”、“目的地”、“出发时间”和枚举型实体“舱位等级”,参考例句包括:“1.帮我订一张明天飞上海的机票。2.我在杭州,20号飞广州,订张机票”等等。

当在多轮对话的首轮对话中获取到初始问句“明天去广州出差,帮我订张机票”时,首先在该初始问句中识别出4个实体:“出发时间”、“改签日期”、“出发地”和“目的地”,且识别出这4个实体的类型均为预置型实体。然后,将这4个实体进行组合形成对应于该初始问句的8个候选实体集合。参见图6,得到的8个候选实体集合分别包括如下组合:

1.“改签日期”;

2.“改签日期”+“目的地”;

3.“改签日期”+“出发地”;

4.“出发时间”+“目的地”;

5.“出发时间”+“出发地”;

6.“出发时间”;

7.“目的地”;

8.“出发地”。

分别将上述8个候选实体集合中的元素配置于初始问句的对应位置中,可以得到如图中所示的8个候选问句,从而完成了候选问句的生成过程。

在一种可能的实施方式中,上述步骤S44可以包括:

分别将各个候选实体集合中的元素配置于初始问句的对应位置中,过滤掉元素数目少于指定数目的句子后,得到多个对应于初始问句的候选问句。这种实施方式是为了尽可能多地关联实体,从而确定更具有代表性的候选问句,进而提高意图识别的准确率。其中,指定数目可以根据设置,如设置为2个等,具体数值本公开不做限定。

以图6的场景为例进行说明,可以将指定数目设置为2,则过滤掉少于2个元素的句子,也就是说,如果候选问句中仅包括一个元素即实体,则代表没有实体组合的情况,视为不具有代表性,可以将其过滤掉。图6中的候选问句1、6、7、8均只包括一个实体,因此可以过滤掉。但是,第一个候选问句即只包括“改签日期”的情况,由于在意图“机票改签”的参考例句中存在该情况即第一个参考例句,因此,可以将其保留,仅过滤掉候选问句6、7、8即可。

在一种可能的实施方式中,上述步骤S44可以包括:

分别将各个候选实体集合中的元素配置于初始问句的对应位置中,过滤掉未出现在预先配置有明确意图的参考例句中的句子,得到多个对应于初始问句的候选问句。这种实施方式是为了保证实体组合能够符合参考例句中已有的实体组合情况,从而将出现意图冲突的情况过滤掉,提高实体组合的准确率。其中,未出现在预先配置有明确意图的参考例句中的句子,被认为是出现意图冲突的情况,不符合实际场景的需要,因此将其过滤掉。

以图6的场景为例进行说明,候选问句2和3均属于意图冲突。其中,候选问句2为“改签日期”和“目的地”的组合,候选问句3为“改签日期”和“出发地”的组合,这二者均未出现在意图“机票改签”的参考例句中,因此可以将二者过滤掉。

图7示意性地示出了根据本公开一实施方式的候选问句过滤结果的示意图。参见图7,按照上述方法对图6得到的8个候选问句进行过滤后,得到3个最终的候选问句,即上述候选问句1、4和5。进一步,还可以将候选问句中的实体替换为实体符号,以便于后续编码及模型训练。

在一种可能的实施方式中,上述步骤S44可以包括:

分别将各个候选实体集合中的元素配置于初始问句的对应位置中,在得到的句子总数达到预设的上限值时,以当前所得到的句子为限,在其中随机选取多个句子作为对应于初始问句的候选问句。

这种得到的句子总数达到预设的上限值的情况,通常属于极端情况,表明当前出现了组合爆炸,如涉及身份证号码或火车票数量等与数字关系密切的实体组合,极易出现组合爆炸。为了避免资源浪费,此时可以停止生成新的句子,即不再进行实体组合,而是以当前已得到的句子为限,从中随机选取多个句子作为对应于初始问句的候选问句。其中,随机选取的句子个数可以根据需要设置,如随机选取3个或5个等等,具体数值本公开实施例不做限定。

在一种可能的实施方式中,上述步骤S43之前还可以包括:

对于存在多个实体值的候选实体,获取对应于该候选实体的各个实体值的字符串长度,并确定相应实体值在初始问句中的起始位置,根据字符串长度和起始位置筛选出用于进行组合的相应实体值。

其中,根据字符串长度和起始位置筛选出用于进行组合的相应实体值,可以具体包括:

若该候选实体的多个实体值的字符串长度不同,则选择字符串长度最长的实体值用于进行组合;若该候选实体的多个实体值的字符串长度均相同,则在该多个实体值所包含的字符串有重叠的情况下,选择起始位置最靠前的实体值用于进行组合。

上述实施方式中,优先选择实体值的字符串长度最长的实体值用于进行组合,其次,在字符串长度相同的情况下选择起始位置最靠前的实体值用于进行组合,这种策略能够保证进行组合的实体值更真实地反映初始问句的信息。

图8示意性地示出了根据本公开一实施方式的筛选实体值的示意图。参见图8,在导购场景下,配置人员配置的意图为“咨询手机详情”,其关联的实体包括实体“手机型号”等。在多轮对话的首轮对话中获取到初始问句“我想问下iphone12ProMax的配置怎么样”。从该初始问句中识别到枚举型实体“手机型号”,且能够抽取到三个实体值,分别为iphone12,iphone12Pro和iphone12ProMax。在选择最终的实体值进行组合时,发现这三个实体值的字符串长度均不同,则可以选择字符串长度最长的实体值iphone12ProMax用于进行组合,即保留实体组合候选问句3,而将实体组合候选问句1和2过滤掉。

在一种可能的实施方式中,上述步骤S45中的将该参考例句中描述型实体的实体值进行扩展,得到扩展例句,可以包括:

在预先为描述型实体配置的多个实体值中,获取除当前出现在参考例句中的实体值以外的其他实体值;将参考例句中的当前实体值,依次替换为获取的其他实体值,分别得到对应的扩展例句。

本公开实施例中,上述基于预置型、枚举型和正则型实体得到的候选问句,作为待匹配的句子用于意图识别。而对于描述型实体,则采用对已配置的意图的参考例句进行话术扩展的方式得到扩展例句,也作为待匹配的句子用于意图识别,从而丰富了用于意图识别的待匹配的句子,进而提高意图识别的准确率。

图9示意性地示出了根据本公开一实施方式的描述型实体扩展的示意图。参见图9,在医疗场景下配置的意图“自助健康诊断”包括一个参考例句:“我已经咳嗽了一周了,一直不见好”。其中,“咳嗽”被配置为描述型实体,对应的实体名称为“用户症状”,对应的实体值包括:“咳嗽”、“流鼻涕”、“失眠”和“头痛”。对于描述型实体“用户症状”,枚举所有已配置好的实体值,将该参考例句中的当前实体值“咳嗽”,依次替换为其他3个实体值,从而得到3个扩展例句。将这3个扩展例句补充到该意图中后,参考例句则由1个扩充至4个,涵盖了所有可能枚举的用户症状,作为待匹配的句子用于意图识别。

本公开实施例提供的上述方法可以由预先训练的第一识别模型执行,且在多轮对话开始前,采用配对框架(pairwise框架)构造三元组的训练数据对第一识别模型进行训练。其中,三元组包括第一文本串、第二文本串和第三文本串,训练的目标为第一文本串和第二文本串的相似度,高于第一文本串和第三文本串的相似度。

图10示意性地示出了根据本公开一实施方式的训练第一识别模型的流程图。参见图10,在多轮对话开始前,采用配对框架构造三元组的训练数据对第一识别模型进行训练,可以包括以下步骤:

S101:采用配对框架构造含实体的三元组的训练数据;

其中,Pairwise框架的训练方式是三元的,因此需要预先构造三元组的训练数据。当然,采用其他框架如pointwise单文档方法也是可以的,该pointwise采用二元的训练方式,本公开实施例对此不做具体限定。下面以pairwise框架为例进行说明。

S102:在词典中预留多个占位实体,并按照相应占位实体在词典中的排位顺序设置对应的占位编码;

通常情况下,由于几乎无法收集所有领域的全部实体,而且存在用户自定义配置实体的情况,因此,本公开实施例将实体视为没有语言意义但是对文本相似度计算具有重要意义的符号。在词典中预留的占位实体,并非固定用于某个实体,而是所有实体都可以通用。其中,预留的占位实体的个数可以根据需要来设置,如8个、10个或20个等等。

例如,在词典中预留10个占位实体,无需配置实体名称和实体类型,仅为其设置对应的占位编码即可。相应地,占位编码可以为10个连续的编码,如id1~id10。该10个占位实体与该10个占位编码一一对应。

S103:对构造好的训练数据中的实体进行排序,将排序后的实体按照排位顺序依次替换为对应的占位编码;

其中,实体排序的规则可以根据需要设置,具体选用何种规则都可以,只要按照一定策略对实体进行排序即可。例如,可以按照实体的名称首字母进行排序等等。以10个占位实体对应10个占位编码为例,如果构造好的训练数据中有3个实体,则排序后依次替换为词典中的前3个占位编码。

S104:将训练数据中的其他文字都按照转换函数转换为文字编码;

S105:采用编码后的训练数据对第一识别模型进行训练。

上述过程,基于词典中预留的占位实体及其对应的占位编码,完成了实体到编码的转换,能够让第一识别模型学习到实体通用的含义,即能够学习到实体的重要性,而不是学习到每一个实体本身的语言含义,从而可以保证第一识别模型能够更好地迁移到新的场景,具有低门槛地在各个场景迁移的能力。再有,训练数据在配对框架下基于三元组进行构造,然后根据编码后的训练数据进行训练,使得第一识别模型能够达到配对框架的学习目标,为后续进行意图识别提供了有力的保障,为提高意图识别的准确率提供了可靠的依据。

本公开实施例中,三元组的训练数据可以表示为(S1,S2,S3)。其中,S1为第一文本串,S2为第二文本串,S3为第三文本串。pairwise框架的学习目标设定为:第一文本串S1和第二文本串S2的相似度S

S

其中,两个文本串的相似度可以表示如下:

S

在一种可能的实施方式中,上述步骤S101可以包括:

首先构造纯文本的三元组(S1,S2,S3),若第一文本串S1与第二文本串S2中包含相同的实体,且第一文本串S1和第三文本串S3中无该相同的实体,则可以在S1与S2所包含的相同实体中随机选择指定个数个实体,将其替换为实体符号,得到含实体的三元组训练数据。这种构造训练数据的方式是为了让第一识别模型学习到实体是文本串中重要的词汇,进而两个文本串中具有相同的实体时,相似度更高。

例如,纯文本的三元组为(我要定今天的机票,我想预定今天的机票,我想预定后天的机票),其中,S1和S2包含相同的实体“今天”,且S3中不包含该实体“今天”,则将该相同的实体“今天”替换为实体符号,得到含实体的三元组为(我要定$time$的机票,我想预定$time$的机票,我想预定后天的机票)。实体符号可以根据需要来设置,能够代表对应的实体即可,具体内容不限定。

在一种可能的实施方式中,上述步骤S101可以包括:

首先构造纯文本的三元组(S1,S2,S3),若第一文本串S1与第二文本串S2中包含多个相同的实体,从该多个相同的实体中选出指定个数的实体,在S3中找出与该指定个数的实体不同的实体,将其替换为实体符号,得到含实体的三元组训练数据。这种构造训练数据的方式是为了让第一识别模型学习到,具有相同实体的文本串,与具有不同实体的文本串相比,相似度更高。

例如,纯文本的三元组为(我要定今天的机票,我想预定今天的机票,我想预定后天的机票),其中,S1和S2包含两个相同的实体“今天”和“机票”。在S1和S2中选出一个相同的实体“今天”替换为实体符号$time$,在S3中找到与该实体“今天”不同的实体,如“机票”,将其替换为实体符号$ticket_type$,从而得到含实体的三元组为(我要定$time$的机票,我想预定$time$的机票,我想预定后天的$ticket_type$)。实体符号可以根据需要来设置,能够代表对应的实体即可,具体内容不限定。

在一种可能的实施方式中,上述步骤S101可以包括:

首先构造纯文本的三元组(S1,S2,S3),若第一文本串S1与第二文本串S2中包含多个相同的实体,从该多个相同的实体中选出至少两个实体替换为实体符号。若S3中存在一个实体,且该实体与上述至少两个实体中的某一个实体相同,则将其替换为实体符号,得到含实体的三元组训练数据。这种构造训练数据的方式是为了让第一识别模型学习到,相同实体的数量更多所对应的文本串,与相同实体的数量更少对应的文本串相比,相似度更高。

例如,纯文本的三元组为(我要定今天的机票,我想预定今天的机票,我想预定后天的机票),其中,S1和S2包含两个相同的实体“今天”和“机票”,选出该两个相同的实体分别替换为对应的实体符号$time$和$ticket_type$。若S3中存在一个实体“机票”,为上述两个相同的实体中之一,则将其替换为实体符号$ticket_type$,从而得到含实体的三元组为(我要定$time$的$ticket_type$,我想预定$time$的$ticket_type$,我想预定后天的$ticket_type$)。实体符号可以根据需要来设置,能够代表对应的实体即可,具体内容不限定。

上述三种构造含实体的三元组的训练数据的方式,可以执行其中至少一个,优选地依次全部执行,从而能够最大程度地扩充训练数据,进而提高第一识别模型的训练效果。而且,上述构造训练数据的方式,无需采集更多的语料,无需更多的人工标注数据,极大地节省了人力。

本公开实施例中,经过上述步骤S103和S104后,可以得到编码后的训练数据。下面具体举例说明。例如,构造好的训练数据(S1,S2,S3)中包括三个实体:品牌、商品名称和数量,分别替换为实体符号:$brand$、$product$和$num$。替换后的S1和S2分别如下:

S1=“$brand$$product$的生产日期”;

S2=“我要买$num$个$brand$的面膜”;

按照预设规则对上述三个实体进行排序后依次为:$brand$、$num$、$product$,按照排位顺序依次替换为词典中对应的占位编码1、2、3。再将其他文字按照转换函数转换为文字编码,得到S1和S2对应的编码分别如下:

S1对应的编码=“1、3、f(的)、f(生)、f(产)、f(日)、f(期)”;

S2对应的编码=“f(我)、f(要)、f(买)、2、f(个)、1、f(的)、f(面)、f(膜)”;

其中,f(x)函数为文字到编码id的转换函数。

本公开实施例通过实体到编码的转换,能够让第一识别模型学习到实体通用的含义,即能够学习到实体的重要性,而不是学习到每一个实体本身的语言含义,从而可以保证第一识别模型能够更好地迁移到新的场景,具有低门槛地在各个场景迁移的能力。

本公开实施例中,上述步骤S105可以包括以下至少一种:

若三元组中的第一文本串和第二文本串中包含相同的实体,且第一文本串和第三文本串中无该相同的实体,则训练第一识别模型识别第一文本串和第二文本串的相似度,高于第一文本串和第三文本串的相似度;

在三元组中的第一文本串和第二文本串中包含多个相同实体的情况下,从多个相同的实体中选出指定个数的实体;在三元组的第三文本串中找出与指定个数的实体不同的实体,训练第一识别模型识别第一文本串和第二文本串的相似度,高于第一文本串和第三文本串的相似度;

在三元组中的第一文本串和第二文本串中包含多个相同实体的情况下,从多个相同的实体中选出至少两个实体;若三元组的第三文本串中存在一个实体,且该实体与至少两个实体中的某一个实体相同,则训练第一识别模型识别第一文本串和第二文本串的相似度,高于第一文本串和第三文本串的相似度。

在一种可能的实施方式中,上述方法还包括以下至少一种:

接收配置人员输入的配置信息,根据配置信息生成枚举型实体,为枚举型实体配置实体名称和可枚举的实体值;

接收配置人员输入的配置信息,根据配置信息生成正则型实体,为正则型实体配置实体名称和正则表达式;

接收配置人员输入的配置信息,根据配置信息生成描述型实体,为描述型实体配置实体名称和描述性的实体值。

通过上述方式,配置人员可以根据业务需要设置枚举型实体、正则型实体和描述型实体,应用非常灵活,每次配置都无需重新训练模型,即可在目标业务场景下使用,能够迁移到任意领域,场景迁移能力非常强。

图11示意性地示出了根据本公开一实施方式的多轮对话的整体流程示意图。参见图11,多轮对话的意图识别包括配置流程和识别流程。其中,配置流程包括对意图进行配置和对实体进行配置,配置得到的训练数据用于对第一识别模型进行训练。在识别流程中,使用训练好的第一识别模型对用户发起的多轮对话进行意图识别,得到用户的意图和相关的实体信息,然后通过会话管理和回复生成进行相应的回复或响应。例如,在健康场景下可以回复健康诊断的结果给用户,在售后场景下可以回复发货时间给用户等等。在预定机票场景下可以触发订机票的操作作为响应,在发票场景下可以触发为用户开发票的操作作为响应等等。其中,第一识别模型进行意图识别包括:候选实体的识别,候选实体的组合,以及结合实体进行的意图识别。通过上述流程最终完成了多轮对话的意图识别和响应。

在介绍了本公开示例性实施方式的方法之后,接下来,参考图12对本公开示例性实施方式的介质进行说明。

在一些可能的实施方式中,本公开的各个方面还可以实现为一种计算机可读介质,其上存储有程序,当所述程序被处理器执行时用于实现本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的多轮对话中意图识别的方法中的步骤。

具体地,上述处理器执行上述程序时用于实现如下步骤:获取多轮对话中首轮对话所包含的初始问句;确定对应于所述初始问句的多个候选实体;基于所述初始问句和所述多个候选实体生成候选问句;根据所述候选问句以及预先配置有明确意图的参考例句,确定所述首轮对话的意图识别结果。

需要说明的是:上述的介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是但不限于:电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。

如图12所示,描述了根据本公开的实施方式的介质120,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序,并可以在设备上运行。然而,本公开不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于:电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算设备。

在介绍了本公开示例性实施方式的介质之后,接下来,参考图13对本公开示例性实施方式的装置进行说明。

如图13所示,本公开实施例的多轮对话中意图识别的装置可以包括:

获取模块1301,用于获取多轮对话中首轮对话所包含的初始问句;

确定模块1302,用于确定对应于初始问句的多个候选实体;

生成模块1303,用于基于初始问句和多个候选实体生成候选问句;

识别模块1304,用于根据候选问句以及预先配置有明确意图的参考例句,确定首轮对话的意图识别结果。

在一种可能的实施方式中,候选实体的类型包括:预置型实体、枚举型实体、正则型实体和描述型实体,预置型实体为预先配置好且直接封装的实体类型,枚举型实体为实体值可枚举的实体类型,正则型实体为可用正则表达式归纳实体值的实体类型,描述型实体为对事物属性或状态进行描述的实体类型。

在一种可能的实施方式中,确定模块用于:

使用预先训练的第一识别模型,识别出对应于初始问句的多个候选实体,多个候选实体包括预置型实体、枚举型实体和正则型实体。

在一种可能的实施方式中,生成模块包括:

组合单元,用于对多个候选实体进行组合形成对应于初始问句的多个候选实体集合,其中,候选实体集合以至少一个候选实体作为其元素;

生成单元,用于分别将各个候选实体集合中的元素配置于初始问句的对应位置中,以形成多个对应于初始问句的候选问句。

在一种可能的实施方式中,生成单元用于:

分别将各个候选实体集合中的元素配置于初始问句的对应位置中,过滤掉元素数目少于指定数目的句子后,得到多个对应于初始问句的候选问句。

在一种可能的实施方式中,生成单元用于:

分别将各个候选实体集合中的元素配置于初始问句的对应位置中,过滤掉未出现在预先配置有明确意图的参考例句中的句子,得到多个对应于初始问句的候选问句。

在一种可能的实施方式中,生成单元用于:

分别将各个候选实体集合中的元素配置于初始问句的对应位置中,在得到的句子总数达到预设的上限值时,以当前所得到的句子为限,在其中随机选取多个句子作为对应于初始问句的候选问句。

在一种可能的实施方式中,组合单元还用于:

对于存在多个实体值的候选实体,获取对应于该候选实体的各个实体值的字符串长度,并确定相应实体值在初始问句中的起始位置,根据字符串长度和起始位置筛选出用于进行组合的相应实体值。

在一种可能的实施方式中,组合单元在根据字符串长度和起始位置筛选出用于进行组合的相应实体值时具体用于:

若该候选实体的多个实体值的字符串长度不同,则选择字符串长度最长的实体值用于进行组合;

若该候选实体的多个实体值的字符串长度均相同,则在该多个实体值所包含的字符串有重叠的情况下,选择起始位置最靠前的实体值用于进行组合。

在一种可能的实施方式中,识别模块包括:

扩展单元,用于若预先配置有明确意图的参考例句中存在包括描述型实体的参考例句,将该参考例句中描述型实体的实体值进行扩展,得到扩展例句,并将得到的扩展例句补充到意图中;

识别单元,用于根据候选问句以及意图的参考例句和扩展例句,确定首轮对话的意图识别结果。

在一种可能的实施方式中,扩展单元用于:

若预先配置有明确意图的参考例句中存在包括描述型实体的参考例句,在预先为描述型实体配置的多个实体值中,获取除当前出现在参考例句中的实体值以外的其他实体值;

将参考例句中的当前实体值,依次替换为获取的其他实体值,分别得到对应的扩展例句;

并将得到的扩展例句补充到意图中。

在一种可能的实施方式中,识别模块用于:

分别对候选问句及预先配置有明确意图的参考例句进行编码;

对编码后的候选问句与参考例句进行相似度计算;

根据相似度计算的结果确定首轮对话的意图识别结果。

在一种可能的实施方式中,上述装置由预先训练的第一识别模型实现各项功能,上述装置还包括:

训练模块,用于在多轮对话开始前,采用配对框架构造三元组的训练数据对第一识别模型进行训练。

在一种可能的实施方式中,三元组包括第一文本串、第二文本串和第三文本串,训练的目标为第一文本串和第二文本串的相似度,高于第一文本串和第三文本串的相似度。

在一种可能的实施方式中,训练模块用于:

在多轮对话开始前,若三元组中的第一文本串和第二文本串中包含相同的实体,且第一文本串和第三文本串中无相同的实体,则训练第一识别模型识别第一文本串和第二文本串的相似度,高于第一文本串和第三文本串的相似度。

在一种可能的实施方式中,训练模块用于:

在多轮对话开始前,在三元组中的第一文本串和第二文本串中包含多个相同实体的情况下,从多个相同的实体中选出指定个数的实体;

在三元组的第三文本串中找出与指定个数的实体不同的实体,训练第一识别模型识别第一文本串和第二文本串的相似度,高于第一文本串和第三文本串的相似度。

在一种可能的实施方式中,训练模块用于:

在多轮对话开始前,在三元组中的第一文本串和第二文本串中包含多个相同实体的情况下,从多个相同的实体中选出至少两个实体;

若三元组的第三文本串中存在一个实体,且该实体与至少两个实体中的某一个实体相同,则训练第一识别模型识别第一文本串和第二文本串的相似度,高于第一文本串和第三文本串的相似度。

在一种可能的实施方式中,上述装置还包括:

编码模块,用于在训练第一识别模型之前按照如下方式对构造好的训练数据进行编码:

在词典中预留多个占位实体,并按照相应占位实体在词典中的排位顺序设置对应的占位编码;

对构造好的训练数据中的实体进行排序,将排序后的实体按照排位顺序依次替换为对应的占位编码;

将训练数据中的其他文字都按照转换函数转换为文字编码。

在一种可能的实施方式中,识别模块还用于:

在相似度计算后,将最高相似度对应的候选问句中的实体组合,确定为首轮对话的实体识别结果。

在一种可能的实施方式中,上述装置还包括:

收集模块,用于在首轮对话之后的对话中,收集实体组合以外的其他实体;

响应模块,用于根据意图识别结果以及实体组合和其他实体,执行多轮对话的回复响应。

在一种可能的实施方式中,上述装置还包括配置模块,用于采用以下至少一种方式进行配置:

接收配置人员输入的配置信息,根据配置信息生成枚举型实体,为枚举型实体配置实体名称和可枚举的实体值;

接收配置人员输入的配置信息,根据配置信息生成正则型实体,为正则型实体配置实体名称和正则表达式;

接收配置人员输入的配置信息,根据配置信息生成描述型实体,为描述型实体配置实体名称和描述性的实体值。

本公开实施例提供的上述装置,通过获取多轮对话中首轮对话所包含的初始问句,确定对应于所述初始问句的多个候选实体,基于所述初始问句和所述多个候选实体生成候选问句,根据所述候选问句以及预先配置有明确意图的参考例句,确定所述首轮对话的意图识别结果。由于在识别候选实体的基础上进行意图识别,有效地将意图识别和实体识别结合起来使用,与单纯进行意图识别的方式相比,考虑了实体影响的因素,极大地提高了多轮对话中意图识别的准确率。

在介绍了本公开示例性实施方式的方法、介质和装置之后,接下来,参考图14对本公开示例性实施方式的计算设备进行说明。

所属技术领域的技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。

在一些可能的实施方式中,根据本公开实施方式的计算设备可以至少包括至少一个处理单元以及至少一个存储单元。其中,所述存储单元存储有程序代码,当所述程序代码被所述处理单元执行时,使得所述处理单元执行本说明书上述“示例性方法”部分中描述的根据本公开的各种示例性实施方式的多轮对话中意图识别的方法中的步骤。

下面参照图14来描述根据本公开的这种实施方式的计算设备140。图14显示的计算设备140仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。

如图14所示,计算设备140以通用计算设备的形式表现。计算设备140的组件可以包括但不限于:上述至少一个处理单元1401、上述至少一个存储单元1402,连接不同系统组件(包括处理单元1401和存储单元1402)的总线1403。

总线1403包括数据总线、控制总线和地址总线。

存储单元1402可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)14021和/或高速缓存存储器14022,可以进一步包括非易失性存储器形式的可读介质,例如只读存储器(ROM)14023。

存储单元1402还可以包括具有一组(至少一个)程序模块14024的程序/实用工具14025,这样的程序模块14024包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。

计算设备140也可以与一个或多个外部设备1404(例如键盘、指向设备等)通信。这种通信可以通过输入/输出(I/O)接口1405进行。并且,计算设备140还可以通过网络适配器1406与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图14所示,网络适配器1406通过总线1403与计算设备140的其它模块通信。应当理解,尽管图中未示出,可以结合计算设备140使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。

应当注意,尽管在上文详细描述中提及了多轮对话中意图识别的装置的若干单元/模块或子单元/子模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。

此外,尽管在附图中以特定顺序描述了本公开方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。

虽然已经参考若干具体实施方式描述了本公开的精神和原理,但是应该理解,本公开并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本公开旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号