首页> 中国专利> 人机交互系统中实现自然语言理解方法和装置

人机交互系统中实现自然语言理解方法和装置

摘要

本申请提供了人工智能领域中实现自然语言理解的方法和相关装置。本申请提供的技术方案中,可以从词典中查询得到用户输入的语句中的词条的信息,并对该词条信息进行消歧处理,然后根据消歧处理得到的词条信息理解该语句的意图和相关关键信息。本申请提供的技术方案,无需额外的数据标注即可提升自然语言理解的性能,且实现自然语言理解的系统维护起来简单,从而可以提升用户的体验。

著录项

  • 公开/公告号CN112632962A

    专利类型发明专利

  • 公开/公告日2021-04-09

    原文格式PDF

  • 申请/专利权人 华为技术有限公司;

    申请/专利号CN202011565278.5

  • 申请日2020-12-25

  • 分类号G06F40/211(20200101);G06F40/289(20200101);G06F40/30(20200101);G06F16/35(20190101);

  • 代理机构11329 北京龙双利达知识产权代理有限公司;

  • 代理人周乔;王君

  • 地址 518129 广东省深圳市龙岗区坂田华为总部办公楼

  • 入库时间 2023-06-19 10:32:14

说明书

本申请要求于2020年05月20日提交中国国家知识产权局、申请号为202010429245.1、申请名称为“人机交互系统中实现自然语言理解的方法和装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。

技术领域

本申请涉及人工智能领域,特别涉及一种人机交互系统中实现自然语言理解方法和装置。

背景技术

人工智能(artificial intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式作出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。

随着人工智能技术的不断发展,让人机之间能够通过自然语言进行交互的自然语言人机交互系统变的越来越重要。人机之间能够通过自然语言进行交互,就需要系统能够识别出人类自然语言的具体含义。识别出人类自然语言的具体含义称为自然语言理解(natural language understand,NLU)。NLU通常是指识别用户的意图,提取用户的自然语言中的关键信息。

NLU为智能设备,例如智能音箱、智能电视、智能汽车或智能手机,与用户交互不可交互的部分,或者可以说,NLU为人机交互系统的关键模块。

例如,手机用户向手机助手输入语音“买一张去北京的机票”之后,手机助手中的NLU模块需要识别出用户的意图为买机票,并提取出关键信息“目的地:北京”,这样,手机助手才可能进一步为用户打开订票应用程序,并进一步实现订机票的业务。

因此,如何实现自然语言理解成为亟待解决的技术问题。

随着人工智能技术的不断发展,让人机之间能够通过自然语言进行交互的自然语言人机交互系统变的越来越重要。人机之间能够通过自然语言进行交互,就需要系统能够识别出人类自然语言的具体含义,识别出人类自然语言的具体含义称为自然语言理解(natural language understand,NLU)。自然语言理解的任务中常常需要引入外界词典知识,例如常见的实体识别任务,自然语言中的实体是千变万化的,以歌名为例,任意一个字或字符串都可能是歌名,歌名可能没有明确的意义或者歌名很长,难以通过机器学习的方法在一句话中准确框定实体的边界;此外在进行意图识别和槽位提取时,如果不能明确实体的类型,也难以确定用户的意图。因此需要以外界词典知识作为辅助。而目前自然语言理解的任务中引入词典知识的方法主要有两方面的问题,一方面是只通过词匹配,噪音会很大,词典知识被淹没;另一方面是一般要预先分词才能进行路径匹配,如此系统的性能会受限于分词方法的准确度,且模型需要根据词典进行预训练,由此模型无法动态更新词典。

发明内容

本申请提供了人机交互系统中实现自然语言理解的方法和相关装置,且该方法可以提升自然语言理解的性能,从而提升用户的体验。

第一方面,本申请提供一种人机交互系统中实现自然语言理解的方法。该方法包括:获取目标词条信息,所述目标词条信息用于表示目标语句包含的词条,所述目标语句为用户向所述人机交互系统输入的语句;使用词条消歧模型,基于所述目标语句和所述目标词条信息,获取目标指示信息,所述目标指示信息用于指示所述目标词条信息所指示的词条是否符合所述目标语句的语义;使用自然语言理解模型,基于所述目标语句、所述目标词条信息和所述目标指示信息,获取理解结果,所述理解结果包含所述用户输入所述目标语句的目标意图和所述目标意图的关键信息。

该方法中,在获取目标语句所包含的词条的信息之后,不是直接使用该词条的信息来辅助自然语言理解模型理解目标语句,而是使用词条消歧模型判断该词条是否为符合该目标语句语义的词条,或者说检查该词条是否可以作为该目标语句的真实词条,并使用判断结果辅助自然语言理解模型获取目标语句的意图和关键信息。这可以提高自然语言理解的性能,从而可以提高用户体验。

通常来说,每个模型进行训练时,都需要对其训练数据进行标注。但是,由于本申请中的词条消歧模型的输出的指示信息可以通过自然语言理解模型的训练数据中的意图和关键信息推测得到,因此,本申请中的词条消息模型和自然语言理解模型的训练数据可以仅通过对语句的意图和关键信息进行标注即可,也就是可以仅对自然语言理解模型的训练数据进行标注即可。这可以节省训练数据的人工标注成本,提供训练数据的获取效率,从而可以提高这两个模型的训练效率,尤其在需要更新人机交互系统的自然语言理解功能的场景下,可以提高这两个模型的更新效率,从而可以及时提高人机交互系统的性能,最终提高用户的体验。

在一些可能的实现方式中,所述获取目标词条信息,包括:从目标词典中查询所述目标语句包含的词条,得到所述目标词条信息,其中,所述目标词典中包括至少一个词条。

该实现方式中,由于目标词条信息是根据目标词典查询获取的,因此,在用户输入的语句所包含的词条发生变化的情况下,只需更新目标词典中的词条即可根据该目标词典识别出用户输入语句中的词条,这可以便捷快速提高用户输入语句中的词条的识别率,从而可以提高自然语言理解的性能,进而提高人机交互系统的性能,最终可以提高用户的体验。

在一些可能的实现方式中,所述方法由端侧设备执行,其中,所述目标词典包括所述端侧设备上的词典。

也就是说,可以在端侧设备上根据词典查询得到目标语句的目标词条信息。这与通过云侧设备获取目标语句的目标词条信息相比,可以节省传输时间,从而可以提高自然语言理解的效率,进而提高人机交互的效率,最终提高用户的体验。

此外,由于端侧设备可以基于自身的词典来获取目标语句的目标词条信息,因此在没有云侧设备或者连接不上云侧设备的情况,也能获取目标语句的目标词条信息,从而实现自然语言理解,从而可以扩大自然语言理解的应用场景,即扩大人机交互系统的应用场景,提高用户的体验。

另外,由于可以在端侧设备上根据词典查询目标语句的目标词条信息,因此,可以将涉及用户隐私的词典配置在端侧设备上,从而可以保护用户的隐私,进而可以提高用户的体验。

并且,由于可以在端侧设备上根据词典查询目标语句的目标词条信息,因此,可以将用户查询频率较高或者说常用的词典配置在端侧设备上,这样,与从云侧设备获取目标词条信息相比,端侧设备可以快速地查询到目标语句的目标词条信息,从而提高自然语言理解的效率,进而提高人机交互的效率,最终提高用户的体验。

在一些可能的实现方式中,所述目标词典包括云侧设备上的词典,其中,所述根据所述目标词典和所述目标语句获取所述目标词条信息,包括:向所述云侧设备发送所述目标语句;从所述云侧设备接收所述目标词条信息。

也就是说,端侧设备可以从云侧设备获取目标语句的目标词条信息。这样可以节省端侧设备的存储空间和计算资源,即降低端侧设备实现自然语言理解的能力需求,例如,性能较低的端侧设备也能较高效率实现自然语言理解,从而可以扩大人机交互系统的应用场景,最终提高用户体验。

在一些可能的实现方式中,所述方法还包括:使用意图识别模型,获取所述目标语句的候选意图。其中,所述向所述云侧设备发送所述目标语句,包括:在根据预设的对应关系判断所述候选意图对应的词典位于所述云侧设备的情况下,向所述云侧设备发送所述目标语句,所述对应关系用于指示意图是否位于所述云侧设备。

也就是说,在根据目标语句的意图确定查询目标语句的目标词条信息所要使用的词典位于云侧设备的情况下,才请求云侧设备查询目标词条信息。这可以灵活控制请求云侧设备查询词典的次数,避免无效查询,提高自然语言理解的效率,从而提高人机交互的效率。

在一些示例中,可以根据目标语句的意图确定查询目标语句的目标词条信息所要使用的词典是位于云侧设备还是端侧设备,并在确定目标词典位于云侧设备的情况下,才从云侧设备获取目标语句的候选词条。这样可以避免无效查询,从而提高用户体验。

在一些可能的实现方式中,所述词条消歧模型为二分类模型。

第二方面,本申请提供一种模型训练方法,该包括:获取第一训练数据,所述第一训练数据中包含训练语句、所述训练语句的意图和所述训练语句的关键信息;获取词条信息,所述词条信息用于表示所述训练语句包含的词条;根据所述第一训练数据和所述词条信息获取指示信息,所述指示信息用于指示所述词条信息所表示的词条是否符合所述意图和所述关键信息所表示的语义;根据所述训练语句、所述词条信息和所述指示信息获取第二训练数据,所述第二训练数据中包含所述训练语句、所述词条信息和所述指示信息,所述第二训练数据用于训练词条消歧模型,其中,所述词条消歧模型用于基于待处理语句和待处理词条信息判断所述待处理词条信息所表示的词条是否符合所述待处理语句的语义。

该方法中,在获取词条消歧模型和自然语言理解模型的训练数据过程中,由于词条消息模型的第二训练数据可以通过对第一训练数据进行自动标注得到,因此,在获取这两个模型的训练数据的过程中,可以仅对第一训练数据进行人工标注即可。这可以提高这两个模型的训练数据的获取效率,从而可以提高这两个模型的训练效率,进而可以及时提高人机交互系统的性能,最终可以提高用户的体验。

在一些可能的实现方式中,所述方法还可以包括:根据所述第一训练数据、所述词条信息和所述指示信息获取第三训练数据,所述第三训练数据中包含所述第一训练数据、所述词条信息和所述指示信息,所述第三训练数据用于训练如第一方面或其中任意一种实现方式中的自然语言理解模型。

在一些可能的实现方式中,所述获取词条信息,包括:从词典中查询所述语句包含的词条,得到所述词条信息,其中,所述词典中包括至少一个词条。

该实现方式中,由于词条信息是根据词典查询获取的,因此,可以通过更新词典来更新语句的词条信息的识别率。又由于词典的更新比较方便快捷,因此可以方便快捷地提高语句的词条信息的识别率,从而可以方便快捷地提高语句的自然语言理解的准确率,进而可以提高人机交互系统的准确率,最终提高用户的体验。

第三方面,本申请提供了一种模型训练方法。该方法包括:获取第二训练数据,所述第二训练数据中包含训练语句、词条信息和指示信息,所述词条信息用于表示所述训练语句包含的词条,所述指示信息用于指示所述词条信息所表示的词条是否符合所述训练语句的意图和所述意图的关键信息所表示的语义;根据所述第二训练数据训练对词条消歧模型,所述词条消歧模型用于基于待处理语句和待处理词条信息判断所述待处理词条信息所表示的词条是否符合所述待处理语句的语义。

在一些实现方式中,所述第二训练数据为使用第二方面或其中任意一种实现方式获取的第二训练数据。

在一些实现方式中,训练得到第一方面或其中任意一种实现方式中的词条消歧模型。

因为使用的是第二方面或其中任意一种方式获得的训练数据,因此可以提高词条消歧模型的训练效率,从而可以高效地提高人机交互系统的性能,进而提高用户的体验。

第四方面,本申请提供了一种模型训练方法。该方法包括:获取第三训练数据,所述第三训练数据中包含所述训练语句、所述意图、所述关键信息、所述词条信息和所述指示信息;根据所述第三训练数据训练自然语言理解模型,所述自然语言理解模型用于基于待理解语句、第一辅助信息和第二辅助信息获取用户输入所述待理解语句的意图和所述意图的关键信息,所述第一辅助信息用于表示所述待理解语句包含的词条、所述第二辅助信息用于指示所述第一辅助信息所表示的词条是否符合所述待理解语句的语义。

在一些实现方式中,所述第三训练数据为使用第二方面或其中任意一种实现方式获取的第三训练数据。

在一些实现方式中,训练得到第一方面或其中任意一种实现方式中的自然语言理解模型。

因为使用的是第二方面或其中任意一种方式获得的训练数据,因此可以提高自然语言理解模型的训练效率,从而可以高效地提高人机交互系统的性能,进而提高用户的体验。

第五方面,提供了一种人机交互系统中实现自然语言理解的装置,该装置包括用于执行上述第一方面或其中任意一种实现方式中的方法的模块。

第六方面,提供了一种模型训练装置,该装置包括用于执行上述第二方面或其中任意一种实现方式中的方法的模块。

第七方面,提供了一种模型训练装置,该装置包括用于执行上述第三方面或其中任意一种实现方式中的方法的模块。

第八方面,提供了一种模型训练装置,该装置包括用于执行上述第四方面或其中任意一种实现方式中的方法的模块。

第九方面,提供了一种人机交互系统中实现自然语言理解的装置,该装置包括:存储器,用于存储程序;处理器,用于执行所述存储器存储的程序,当所述存储器存储的程序被执行时,所述处理器用于执行第一方面或者其中任意一种实现方式中的方法。

第十方面,提供了一种获取训练数据的装置,该装置包括:存储器,用于存储程序;处理器,用于执行所述存储器存储的程序,当所述存储器存储的程序被执行时,所述处理器用于执行第二方面或者其中任意一种实现方式中的方法。

第十一方面,提供了一种训练模型的装置,该装置包括:存储器,用于存储程序;处理器,用于执行所述存储器存储的程序,当所述存储器存储的程序被执行时,所述处理器用于执行第三方面或者其中任意一种实现方式中的方法。

第十二方面,提供了一种训练模型的装置,该装置包括:存储器,用于存储程序;处理器,用于执行所述存储器存储的程序,当所述存储器存储的程序被执行时,所述处理器用于执行第四方面或者其中任意一种实现方式中的方法。

第十三方面,提供一种计算机可读介质,该计算机可读介质存储用于设备执行的程序代码,该程序代码用于执行第一方面、第二方面、第三方面、第四方面或其中任意一种实现方式中的方法。

第十四方面,提供一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述第一方面、第二方面、第三方面、第四方面或其中任意一种实现方式中的方法。

第十五方面,提供一种芯片,所述芯片包括处理器与数据接口,所述处理器通过所述数据接口读取存储器上存储的指令,执行上述第一方面、第二方面、第三方面、第四方面或其中任意一种实现方式中的方法。

可选地,作为一种实现方式,所述芯片还可以包括存储器,所述存储器中存储有指令,所述处理器用于执行所述存储器上存储的指令,当所述指令被执行时,所述处理器用于执行第一方面、第二方面、第三方面或第四方面或其中任意一种实现方式中的方法。

第十六方面,提供了一种计算设备,该计算设备包括:存储器,用于存储程序;处理器,用于执行所述存储器存储的程序,当所述存储器存储的程序被执行时,所述处理器用于执行第一方面、第二方面、第三方面、第四方面或者其中任意一种实现方式中的方法。

第十七方面,提供了一种人机交互系统中实现自然语言理解的方法,该方法包括:获取目标语句在一个或多个词典中匹配的多个目标词条,目标语句为用户向人机交互系统输入的语句;根据多个目标词条获取目标语句的多个序列,多个序列中的每个序列对应一个目标词条;根据多个序列和目标语句获取与多个序列对应的多个第一序列表示;根据多个第一序列表示确定多个目标词条中的每个目标词条是否符合目标语句的语义;根据一个或多个符合目标语句的语义的目标词条对应的第一序列表示对目标语句进行自然语言理解处理,以得到处理结果。

本申请实施例的人机交互系统中实现自然语言理解的方法,嵌入了词典知识,可以更好的实现自然语言理解的处理。其中,将自然语言与词典匹配后先转换为序列,再根据序列获取该序列的序列表示,由于序列的类型是固定有限的数量,因此与词典匹配的任意多种词条都可以转换为有限数量的序列,对应的序列表示也是有限数量的。因此当词典更新或扩充后,本申请的神经网络模型无需更新,提高了模型的泛化能力。

结合第十七方面,在第十七方面的某些实现方式中,多个序列中的每个序列包含一个目标词条的类型信息和目标词条在目标语句中的位置信息。

类型信息用于指示该匹配实体的类型,位置信息用于指示该匹配实体在序列中的位置,便于后续的自然语言理解处理。

结合第十七方面,在第十七方面的某些实现方式中,根据多个序列和目标语句获取与多个序列对应的多个第一序列表示,包括:获取多个序列中的每个序列的低维表示;获取目标语句的上下文表示;将多个序列中的每个序列的低维表示和目标语句的上下文表示融合,以得到与多个序列对应的多个第一序列表示。

结合第十七方面,在第十七方面的某些实现方式中,根据多个第一序列表示确定多个目标词条中的每个目标词条是否符合目标语句的语义,包括:获取第二序列表示对多个第一序列表示中除第二序列表示外其他第一序列表示的关注度,第二序列表示为多个第一序列表示中的一个;根据第二序列表示和关注度确定第二序列表示对应的目标词条是否符合目标语句的语义。

由于用户输入的目标语句的语法结构限定,因此在上述得到的多个目标词条中,大部分为不符合目标语句的语义的匹配结果,由此得到的多个第一序列表示中大多也为不符合所述目标语句的语义的结果,因此需要将多个第一序列表示进行消歧处理。在进行消歧处理时,不仅考虑了在一个序列中匹配实体与其上下文的关系,还考虑了不同序列之间的关系,可以使消歧结果更加准确。

结合第十七方面,在第十七方面的某些实现方式中,根据一个或多个符合目标语句的语义的目标词条对应的第一序列表示对目标语句进行自然语言理解处理,包括:获取目标语句的上下文表示;将一个或多个符合目标语句的语义的目标词条对应的第一序列表示中的每个符合目标语句的语义的目标词条对应的第一序列表示和目标语句的上下文表示融合,以得到一个或多个符合目标语句的语义的目标词条对应的一个或多个第三序列表示;根据所述一个或多个第三序列表示对所述目标语句进行自然语言理解处理。

第十八方面,提供了一种神经网络模型的训练方法,该神经网络模型包括第一子网络模型、第二子网络模型和第三子网络模型,该方法包括:获取第一训练数据,第一训练数据包括训练语句和训练语句与目标词典匹配的多个第一序列表示;根据第一训练数据对第一子网络模型进行训练,以得到训练后的第一子网络模型;获取第二训练数据,第二训练数据包括训练后的第一子网络模型的输出结果和多个第一序列表示中满足预设要求的第一序列表示;根据第二训练数据对第二子网络模型进行训练,以得到训练后的第二子网络模型;获取第三训练数据,第三训练数据包括训练后的第二子网络模型的输出结果和训练语句进行自然语言理解处理的处理结果;根据第三训练数据对第三子网络模型进行训练,以得到训练后的第三子网络模型。

本申请实施例的神经网络模型的训练为一种端到端的训练方法,流程简单且训练速度快。

结合第十八方面,在第十八方面的某些实现方式中,第一子网络模型为词条匹配模型,用于根据用户输入的目标语句和目标词典获取与目标词典匹配的多个序列表示,多个序列表示中的每个序列表示对应一个目标词条,目标词条为目标语句与目标词典匹配的词条;第二子网络模型为词条消歧模型,用于根据目标语句和多个序列表示确定多个序列表示中的每个序列表示对应的目标词条是否符合目标语句的语义;第三子网络模型为自然语言理解模型,用于根据符合目标语句语义的目标词条对应的序列表示对目标语句进行自然语言理解处理。

结合第十八方面,在第十八方面的某些实现方式中,多个第一序列表示中的每个第一序列表示对应一个第一目标词条,第一目标词条为训练语句与目标词典匹配的词条,满足预设要求的第一序列表示为符合训练语句语义的第一目标词条对应的序列表示。

第十九方面,提供了一种人机交互系统中实现自然语言理解的装置,包括:获取模块,用于获取目标语句在一个或多个词典中匹配的多个目标词条,目标语句为用户向人机交互系统输入的语句;处理模块,用于根据多个目标词条获取目标语句的多个序列,多个序列中的每个序列对应一个目标词条;处理模块,还用于根据多个序列和目标语句获取与多个序列对应的多个第一序列表示;处理模块,还用于根据多个第一序列表示确定多个目标词条中的每个目标词条是否符合目标语句语义;处理模块,还用于根据一个或多个符合目标语句语义的目标词条对应的第一序列表示对目标语句进行自然语言理解处理,以得到处理结果。

结合第十九方面,在第十九方面的某些实现方式中,多个序列中的每个序列包含一个目标词条的类型信息和目标词条在目标语句中的位置信息。

结合第十九方面,在第十九方面的某些实现方式中,处理模块根据多个序列和目标语句获取与多个序列对应的多个第一序列表示,包括:获取多个序列中的每个序列的低维表示;获取目标语句的上下文表示;将多个序列中的每个序列的低维表示和目标语句的上下文表示融合,以得到与多个序列对应的多个第一序列表示。

结合第十九方面,在第十九方面的某些实现方式中,处理模块根据多个第一序列表示确定多个目标词条中的每个目标词条是否符合目标语句语义,包括:获取第二序列表示对多个第一序列表示中除第二序列表示外其他第一序列表示的关注度,第二序列表示为多个第一序列表示中的一个;根据第二序列表示和关注度确定第二序列表示对应的目标词条是否符合目标语句语义。

结合第十九方面,在第十九方面的某些实现方式中,处理模块根据一个或多个符合目标语句语义的目标词条对应的第一序列表示对目标语句进行自然语言理解处理,包括:获取目标语句的上下文表示;将一个或多个符合目标语句语义的目标词条对应的第一序列表示中的每个符合目标语句语义的目标词条对应的第一序列表示和目标语句的上下文表示融合,以得到与一个或多个符合目标语句语义的目标词条对应的一个或多个第三序列表示;根据一个或多个第三序列表示对目标语句进行自然语言理解处理。

第二十方面,提供了一种神经网络模型的训练装置,该神经网络模型包括第一子网络模型、第二子网络模型和第三子网络模型,该装置包括:获取模块,用于获取第一训练数据,第一训练数据包括训练语句和训练语句与目标词典匹配的多个第一序列表示;训练模块,用于根据第一训练数据对第一子网络模型进行训练,以得到训练后的第一子网络模型;获取模块还用于获取第二训练数据,第二训练数据包括训练后的第一子网络模型的输出结果和多个第一序列表示中满足预设要求的第一序列表示;训练模块还用于根据第二训练数据对第二子网络模型进行训练,以得到训练后的第二子网络模型;获取模块还用于获取第三训练数据,第三训练数据包括训练后的第二子网络模型的输出结果和训练语句进行自然语言理解处理的处理结果;训练模块还用于根据第三训练数据对第三子网络模型进行训练,以得到训练后的第三子网络模型。

结合第二十方面,在第二十方面的某些实现方式中,第一子网络模型为词条匹配模型,用于根据用户输入的目标语句和目标词典获取与目标词典匹配的多个序列表示,多个序列表示中的每个序列表示对应一个目标词条,目标词条为目标语句与目标词典匹配的词条;第二子网络模型为词条消歧模型,用于根据目标语句和多个序列表示确定多个序列表示中的每个序列表示对应的目标词条是否符合目标语句的语义;第三子网络模型为自然语言理解模型,用于根据符合目标语句语义的目标词条对应的序列表示对目标语句进行自然语言理解处理。

结合第二十方面,在第二十方面的某些实现方式中,多个第一序列表示中的每个第一序列表示对应一个第一目标词条,第一目标词条为训练语句与目标词典匹配的词条,满足预设要求的第一序列表示为符合训练语句语义的第一目标词条对应的序列表示。

第二十一方面,提供了一种人机交互系统中实现自然语言理解的装置,其特征在于,包括:处理器,处理器与存储器耦合;存储器用于存储指令;处理器用于执行存储器中存储的指令,以使得装置实现上述第十七方面的任意一种实现方式的方法。

第二十二方面,提供了一种模型训练装置,其特征在于,包括:处理器,处理器与存储器耦合;存储器用于存储指令;处理器用于执行存储器中存储的指令,以使得装置实现第十八方面的方法。

第二十三方面,提供一种计算机可读介质,该计算机可读介质存储用于设备执行的程序代码,该程序代码用于执行上述第十七方面和第十八方面中任意一种实现方式中的方法。

第二十四方面,提供一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述第十七方面和第十八方面中的方法。

第二十五方面,提供一种芯片,芯片包括处理器与数据接口,处理器通过数据接口读取存储器上存储的指令,执行上述第十七方面和第十八方面中的方法。

可选地,作为一种实现方式,芯片还可以包括存储器,存储器中存储有指令,处理器用于执行存储器上存储的指令,当指令被执行时,处理器用于执行上述第十七方面和第十八方面中的方法。

第二十六方面,提供了一种计算设备,该计算设备包括:存储器,用于存储程序;处理器,用于执行存储器存储的程序,当存储器存储的程序被执行时,处理器用于执行上述第十七方面和第十八方面中的方法。

附图说明

图1是本申请一个实施例的获取训练数据的方法的示意性流程图;

图2是本申请一个实施例的训练模型的方法的示意性流程图;

图3是本申请一个实施例的词条消歧模型的结构示意图;

图4是本申请另一个实施例的训练模型的方法的示意性流程图;

图5是本申请一个实施例的实现自然语言理解的方法的示意性流程图;

图6是本申请另一个实施例的实现自然语言理解的方法的示意性流程图;

图7是本申请一个实施例的系统架构的示意图;

图8是本申请一个实施例提供的训练模型的装置的部署示意图;

图9是本申请一个实施例的计算设备的示例性结构图;

图10是本申请另一个实施例的系统架构的示意图;

图11是本申请一个实施例的词典部署示意图;

图12是本申请一个实施例的获取训练数据的装置的示意性结构图;

图13是本申请一个实施例的训练模型的装置的示意性结构图;

图14是本申请一个实施例的实现自然语言理解的装置的示意性结构图;

图15是本申请一个实施例的装置的示意性结构图;

图16是本申请一个实施例的计算机程序产品的示意性结构图;

图17是本申请的人机交互系统中实现自然语言理解方法所涉及的系统架构示意图;

图18是本申请的人机交互系统中实现自然语言理解方法所涉及的模块示意图;

图19是本申请的人机交互系统中实现自然语言理解的方法的示意性流程图;

图20是本申请的神经网络模型的训练方法的示意性流程图;

图21是本申请的低维表示与上下文表示融合的示意图;

图22是本申请的序列消歧的示意图;

图23是本申请的将消歧结果进行自然语言处理的示意图;

图24是本申请的人机交互系统中实现自然语言理解的装置的示意性框图;

图25是本申请的神经网络模型的训练装置的示意性框图;

图26是本申请的一种装置的硬件结构示意图。

具体实施方式

为了便于理解本申请实施例,下面先对本申请实施例中使用的一些术语或概念进行介绍。

(1)词条消歧模型

词条消歧模型的输入包括语句和词条信息,所述词条信息用于表示所述语句中包含的词条,所述词条消歧模型用于判断所述词条信息所表示的词条是否符合所述语句的语义。

其中,词条信息表示的可以是语句中包含的一个或多个词条,每个词条可以是所述语句中合理的词条,也可以是不合理的词条。此处所述的合理的词条是指符合所述语句的语义的词条,反之则为不合理的词条。

例如,语句为“我想听明天会下雨。”时,所述语句中的词条可以包含“明天”、“明天会下雨”,但其中仅有“明天会下雨”是符合语义的词条,即合理的词条,而“明天”则不符合语义,即不合理的词条。

词条信息可以是词条本身,也可以是词条在语句中的位置。例如,语句为“我想听明天会下雨。”且语句中的字的位置索引从0开始计数时,词条信息可以为“3-8”,即表示该语句中从索引3到索引8的内容为词条。

(2)自然语言理解模型

自然语言理解模型的输入包括语句、第一辅助信息和第二辅助信息,所述第一辅助信息用于表示所述语句包含的词条、所述第二辅助信息用于指示所述第一辅助信息所表示的词条是否符合所述语句的语义,所述自然语言理解模型用于基于所述语句、所述第一辅助信息和所述第二辅助信息获取用户输入所述语句的意图和所述意图的关键信息。

其中,第一辅助信息可以理解为前述的词条信息,第二辅助信息可以理解为前述词条消歧模型基于所述语句和所述词条信息输出的信息。

其中,意图是指用户通过输入的语句想要表达的目的。例如,用户输入语句“我想听明天会下雨。”的情况下,用户的意图为听歌。本申请实施例中,用户输入语句的意图也称为语句的意图。

其中,关键信息也可以理解为意图对应的槽位。例如,用户的意图为听歌时,歌名即为槽位。

本申请实施例中的词条与槽位有着本质的区别。槽位根据对应的意图来确定。例如,词条“北京”在一些订机票意图中可以作为槽位“目的地:北京”,在另一些订机票意图中可以作为槽位“起点:北京”。

(3)词典

指一些词的集合,在本申请实施例中指为了特定用途收集或整理的具有共有属性的词的集合,例如地名词典、人名词典、歌曲词典等。在某些情况下,也可以扩展到任意词组成的集合,例如分词词典。

本申请实施例中,词典也可以称为辞典或字典。本申请实施例的词典中包含一个或多个词条。

本申请中的词条也叫词目、条目、辞条,其可以是字、词,也可以由字和字、或由字和词、或由词和词等组成。

本申请中的词条可以包括具体事物、知名人物、抽象概念、文学著作、热点事件、汉语字词或特定主题的组合等。其中,具体事务也可以理解为实体。

(4)端侧设备

本申请实施例中的端侧设备可以是具有计算能力的移动电话、平板个人电脑(tablet personal computer,TPC)、媒体播放器、智能家居、笔记本电脑(laptopcomputer,LC)、个人数字助理(personal digital assistant,PDA)、个人计算机(personalcomputer,PC)、照相机、摄像机、智能手表、可穿戴式设备(wearable device,WD)或者车辆等。可以理解的是,本申请实施例对端侧设备的具体形式不作限定。

(5)序列标注

是自然语言处理任务的常见任务之一,一般是给定一个序列,对序列中的每一个元素做一个标记或者给每一个元素打一个标签,包括分词任务和实体识别任务。

(6)序列建模

将序列表示成一个或多个低维稠密向量的表示。

(7)槽位

是用户的语句中与意图相对应的关键信息,例如意图是订飞机票,则对应的槽位可以是起飞时间和降落时间等。

(8)语言模型

是对语句的概率分布的建模,可以判断语句是否是自然语言的序列。

(9)预训练语言模型

可直接用于下游任务的微调,极大缩短任务的训练时间。

(10)词表示(embedding)

自然语言处理中的词表示指字或词的低维向量表示,通过词表示可以计算词语之间的关系,该低维向量的性质是使距离相近的向量对应的字词具有相近的含义。

(11)自注意力机制(self-attention)

注意力机制模仿了生物观察行为的内部过程,即一种将内部经验和外部感觉对齐从而增加部分区域的观察精细段的机制。注意力机制可以快速提取稀疏数据的重要特征,因而被广泛应用于自然语言处理任务,特别是机器翻译。二自注意力机制是注意力机制的改进,其减少了对外部信息的依赖,更擅长捕捉数据或特征的内部相关性。

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

图1是本申请一个实施例的获取训练数据的方法的示意性流程图。如图1所示,该方法可以包括S110至S150。

S110,获取第一训练数据,所述第一训练数据中包含训练语句,所述训练语句的意图和所述意图的关键信息。

其中,意图和关键信息可以是训练语句的标签数据,即在训练过程中起监督作用的数据。该意图和关键信息可以是人工根据训练语句的语义标注的。

例如,针对训练语句“买一张去北京的机票”,可以人工标注该训练语句的意图为“买机票”和人工标注该训练语句的意图的关键信息(或槽位)为“目的地:北京”。

S120,获取词条信息,所述词条信息用于表示所述训练语句包含的词条。

例如,训练语句为“我想听明天会下雨。”时,一种词条信息可以包含“1-2”、,另一种词条信息可以包含“6-8”,又一种词条信息可以包含“3-8”。

在一些示例中,可以通过词典查询来获取训练语句的词条信息。在该示例中,可以包括:获取词典,根据所述词典和所述训练语句获取所述训练语句的词条信息。一般来说,该词条信息中可以包括词典和训练语句中共同包含的词条。

例如,可以通过快速查询方法对用户通过语音或文字输入的训练语句进行词典匹配,获得匹配向量,该匹配向量可能包含多种匹配结果,可以对相互重叠的匹配结果进行最长匹配处理,最终得到没有相互包含的匹配结果。快速查询方法的一种示例为单词查找树方法(TRIE)。

可以理解的是,通过词典查询来获取训练语句的词条信息仅是一种示例,本实施例并不对获取训练语句的词条信息的实现方式进行限制。例如,可以使用通过机器学习得到的词条识别模型来获取训练语句中的词条信息。

通过词典查询的方式获取训练语句的词条信息,与通过预设规则或训练好的模型来获取训练语句的词条信息相比,在需要更新可以识别的词条的场景下,可以方便快捷地更新词典中的词条,而其他方式需要重写规则或重新进行模型的训练,因此,通过词典查询的方式获取训练语句的词条信息,可以更高效便捷地提高词条信息的准确率,从而可以提高训练数据的准确率,进而提高训练后的模型的性能,最终可以提高应用该模型的人机交互系统的性能,即提高用户的体验。

S130,根据所述第一训练数据和所述词条信息获取指示信息,所述指示信息用于指示所述词条信息所表示的词条是否符合所述意图和所述关键信息所表示的语义。

在一个示例中,若词条信息所指示的词条与所述第一训练数据中的关键信息所对应的词条相同,则可以认为所述词条信息所表示的词条符合所述意图和所述关键信息所表示的语义,否则,认为不符合。

例如,第一训练数据中包括的训练语句为“我想听明天会下雨。”,意图为“听歌”,关键信息为“歌名:明天会下雨”,则词条信息所表示的词条为歌名“明天会下雨”时,对应的指示信息指示所述词条信息所指示的词条符合所述意图和所述关键信息所表示的语义,或者说符合所述训练语句的语义。

又如,第一训练数据中包括的训练语句为“我想听明天会下雨。”,意图为“听歌”,关键信息为“歌名:明天会下雨”,则词条信息所表示的词条为电影名“明天会下雨”时,对应的指示信息指示所述词条信息所指示的词条不符合所述意图和所述关键信息所表示的语义,或者说不符合所述训练语句的语义。

S140,根据所述训练语句、所述词条信息和所述指示信息获取第二训练数据,所述第二训练数据中包含所述训练语句、所述词条信息和所述指示信息,所述第二训练数据用于训练词条消歧模型。

根据所述训练语句、所述词条信息和所述指示信息获取第二训练数据的一种实现方式包括:将所述训练语句、所述词条信息和所述指示信息组合成第二训练数据,其中,指示信息作为所述训练语句和所述词条信息的标注数据。

本实施例中,一个第二训练数据可以称为一个训练语料。

例如,训练语句为“我想听明天会下雨。”时,经过字典查询,可以得到如表1所示的查询结果。

表1字典查询结果

根据第一训练数据:我想听明天会下雨,听歌,明天会下雨,和上述表1中的内容可以得到第二训练数据。第二训练数据包含的内容一个示例如表2所示。表2中,“0”表示不符合训练语句的语义,“1”表示符合训练语句的语义。

表2训练语料

S150,根据所述第一训练数据、所述词条信息和所述指示信息获取第三训练数据,所述第三训练数据中包含所述第一训练数据、所述词条信息和所述指示信息,所述第三训练数据用于训练自然语言理解模型。

根据所述第一训练数据、所述词条信息和所述指示信息获取第三训练数据的一种实现方式包括:将所述第一训练数据、所述词条信息和所述指示信息组合成第三训练数据,其中,意图和关键信息作为所述第一训练数据、所述词条信息和所述指示信息的标注数据。

在一些示例中,图1所示的方法可以由云侧设备来执行,当然也可以由端侧设备来执行。图1所示的方法可以由云侧设备来执行,与由端侧设备来执行相比较,由于云侧设备的存储资源和计算资源更富裕,因此执行效率更高,即可以更高效率地获取训练数据。

图2为本申请一个实施例的训练模型的方法的示意性流程图。该方法可以包括S210和S220。

S210,获取第二训练数据,所述第二训练数据为使用图1所示的方法获取的。

获取第二训练数据的一种实现方式为从其他设备接收该设备使用图1所示的方法获取的第二训练数据。

获取第二训练数据的另一种实现方式为训练设备使用图1所示的方法获取。

S220,根据所述第二训练数据对预设的第一模型进行训练,得到词条消歧模型。

第一模型可以包括EMLo模型、多层感知机(multilayer perceptron,MLP),条件随机场(conditional random field,CRF)模型或BERT(bidirectional encoderrepresentations from transformers)模型。第一模型可以是分类模型,例如可以是二分类模型,当然,第一模型也可以是多分类模型,本实施例对此不作限制。BERT模型的一种示例为TinyBERT。

词条消歧模型的一种示例性结构如图3所示。图3所示的词条消歧模型由ELMo、BERT模型或CRF模型中的任意一个与MLP构成,其中,语句和词条信息作为ELMo、BERT模型或CRF模型的输入,ELMo、BERT模型或CRF模型的输出作为MLP的输入,MLP输出0或1,1表示词条信息指示的词条符合语句的语义,0表示词条信息指示的词条不符合语句的语义。

在一些示例中,图2所示的方法可以由云侧设备来执行,当然也可以由端侧设备来执行。图2所示的方法可以由云侧设备来执行,与由端侧设备来执行相比较,由于云侧设备的存储资源和计算资源更富裕,因此执行效率更高,即可以更高效率地获取训练词条消歧模型。

根据第二训练数据训练词条消歧模型时,可以将第二训练数据中的指示信息作为标注数据,来监督训练,具体实现方式可以参考现有技术中神经网络模型的监督训练的实现方式。

图4为本申请另一个实施例的训练模型的方法的示意性流程图。该方法可以包括S410和S420。

S410,获取第三训练数据,所述第三训练数据为使用图1所示的方法获取的。

获取第三训练数据的一种实现方式为从其他设备接收该设备使用图1所示的方法获取的第三训练数据。

获取第三训练数据的另一种实现方式为训练设备使用图1所示的方法获取。

S420,根据所述第三训练数据对预设的第二模型进行训练,得到自然语言理解模型。

自然语理解模型的一些示例中,可以由BERT模型或长短期记忆网络(long short-termmemory,LSTM)中的任意一个与MLP构成。

在一些示例中,图4所示的方法可以由云侧设备来执行,当然也可以由端侧设备来执行。图4所示的方法可以由云侧设备来执行,与由端侧设备来执行相比较,由于云侧设备的存储资源和计算资源更富裕,因此执行效率更高,即可以更高效率地获取训练自然语言理解模型。

根据第三训练数据训练自然语言理解模型时,可以将第三训练数据中的意图和关键信息作为标注数据,来监督训练,具体实现方式可以参考现有技术中神经网络模型的监督训练的实现方式。

图5是本申请一个实施例的实现自然语言理解的方法的示意性流程图。该方法可以包括S510至S550。

S510,获取目标词条信息,所述目标词条信息用于表示目标语句包含的词条,所述目标语句为用户向人机交互系统输入的语句。

用户可以通过语音或文字向人机交互系统输入目标语句。该人机交互系统可以是任意智能设备上的人机交互系统,例如可以是智能手机、智能车辆、智能音箱等等智能设备上的人机交互系统。

S530,使用词条消歧模型,基于所述目标语句和所述目标词条信息,获取目标指示信息,所述目标指示信息用于指示所述目标词条信息所指示的词条是否符合所述目标语句的语义。

本实施例中使用的词条消歧模型可以通过前述实施例中的方法,例如图2所示的方法,训练得到的。例如,一种实现方式为:云侧设备使用图2所示的方法训练得到词条消歧模型。

另一种实现方式为:从训练设备接收词条消歧模型并使用,所述训练设备使用图2所示的方法训练得到词条消歧模型。例如,云侧设备使用图2所示的方法训练得到词条消歧模型,端侧设备从云侧设备接收该词条消歧模型并使用。

词条消歧模型的输入包括待处理语句和待处理词条信息,所述待处理词条信息用于表示所述待处理语句包含的词条,所述词条消歧模型用于判断所述待处理信息所表示的词条是否符合所述待处理语句的语义。例如,将所述目标语句和所述目标词条信息输入所述词条消歧模型,并获取所述词条消歧模型基于所述目标语句和所述目标词条信息输出的目标指示信息。

在一些示例中,该目标指示信息可以包括词条;在另一些示例中,该目标指示信息可以包括词条的第一个字在目标语句中的位置索引和词条的最后一个字在目标语句中的位置索引。在又一些示例中,该目标指示信息不仅可以包括词条的位置索引,还可以包括词条的类型,例如该词条为歌名类型还是电影名类型,或者是地名类型。

S550,使用自然语言理解模型,基于所述目标语句、所述目标词条信息和所述目标指示信息,获取理解结果,所述理解结果包含所述用户输入所述目标语句的目标意图和所述目标意图的关键信息。

本实施例中使用的自然语言理解模型可以通过前述实施例中的方法,例如使用图4所示的方法,训练得到的。例如,一种实现方式为:云侧设备使用图4所示的方法训练得到自然语言理解模型并使用。

另一种实现方式为:从训练设备接收自然语言理解模型并使用。所述训练设备使用图4所示的方法训练得到自然语言理解模型。例如,云侧设备使用图4所示的方法训练得到自然语言理解模型,端侧设备从云侧设备接收该自然语言理解模型并使用。

其中,所述自然语言理解模型的输入包括待理解语句、第一辅助信息和第二辅助信息,所述第一辅助信息用于表示所述待理解语句包含的词条、所述第二辅助信息用于指示所述第一辅助信息所表示的词条是否符合所述待理解语句的语义,所述自然语言理解模型用于基于所述待理解语句、所述第一辅助信息和所述第二辅助信息获取用户输入所述待理解语句的意图和所述意图的关键信息。

例如,将所述目标语句、所述目标词条信息和所述目标指示信息输入所述自然语言理解模型,并获取所述自然语言理解模型基于所述目标语句、所述目标词条信息和所述目标指示信息输出的理解结果。

本实施中,词条消歧模型与自然语言理解模型的输入与输出之间的关系,使得词条消歧模型的训练数据无须额外的数据标注,可以节省成本,提高训练效率,从而可以加快自然语言理解的实现。

本实施例中,如图6所示,S510可以包括:S504,获取目标词典,所述目标词典中包括至少一个词条;S508,从所述目标词典中查询所述目标语句包含的词条,得到所述目标词条信息。

本实施例中的词典可以包括第三方服务商提供的音乐字典、电影词典、应用程序词典、地名词典、人名词典,或者用户自定义的词典等。用户自定义的词典的一个示例包括用户将智能音箱的名称自定义为“钢铁侠”。

本实施例中提出动态加载词典并根据动态加载的词典查询词条信息,与现有获取词条信息的方法相比,具有泛化性强和维护简单的优势。

在一些实现方式中,可以由端侧设备从端侧设备上加载预设的目标词典,也可以由端侧设备从端侧设备上动态加载目标词典。例如,智能手机上的手机助手可以动态加载电话应用程序中的联系方式、音乐播放应用程序中的歌手词典、歌名词典、专辑词典或视频播放应用程序中的演员词典、电影名词典等词典。

在另一些实现方式中,可以由端侧设备从云侧设备获取目标词典。例如,端侧设备向云侧设备发送请求信息,云侧设备基于该请求消息发送词典,端侧设备将接收到的词典作为目标词典。

在日常端侧设备的应用中,通常希望将词典都部署在端侧设备,以减少端云设备交互所消耗的时延与成本。但是,日常的词典,例如音乐词典和地名词典等通常非常庞大,可能需要上吉(G)个字节的存储空间,而端侧设备的存储和计算资源都是相对有限的,因此,可以将一些词典部署在端侧设备,将另一些词典部署在云侧设备,即根据词典查询目标词条信息时,需要端云协同合作。

例如,如图11所示,可以将全量词典部署在云侧,而将热词词典、常用词典和个性词典等部署在端侧设备。这样,在需要查询词典的情况下,端侧设备可以向云侧设备发送目标语句;云侧设备查询得到目标语句对应的词条匹配向量1;同时,端侧设备也可以基于其上的词典查询得到目标语句对应的词条匹配向量2;端侧设备从云侧设备接收词条匹配向量1之后,使用词条消歧模型对该词条匹配向量与端侧设备自己查询得到的词条匹配向量2进行消歧,并使用自然语言理解模型根据消歧结果进行自然语言理解。

因为云侧设备和端侧设备进行词典查询得到的词条匹配向量的结果可能有很多个,其中有些合理,有些却单纯仅是字符匹配,从语义层面来说是不合理的。通过词条消歧模型的消歧,可以把这些相当于噪声的不合理匹配结果挑选出来,以帮助自然语言理解模型得到更准确的理解结果。

其中,全量词典是指包含所有词条的词典;热词词典和常用词典是指使用频率较高的词典;个性词典指示各个端侧设备各自特有的词典,其中可以包含用户自定义的词条。

本实施例提出的端云协同合作的方法,使得词条消歧模型和自然语言理解模型部署在端侧设备的情况下,仍然可以充分利用云侧丰富的词典知识,提高自然语言理解的准确率,还可以节省端侧设备的运营开销和部署开销;并且,部分词典,例如个性词典、通讯录等可以存储在端侧设备上,可以保护用户的隐私;词条消歧模型和自然语言理解模型部署在端侧设备,可以避免网络传输带来的时延和无网络无法进行自然语言理解的问题。

在一个示例中,可以由端侧设备使用轻量的意图识别模型识别目标语句的意图,并根据意图与设备之间的预设的对应关系判断该意图对应的目标词典是部署在云侧设备还是端侧设备。若该目标词典部署在端侧设备,则查询端侧设备上的词典,否则查询云侧设备上的词典。该实现方式可以更加灵活地控制与云侧设备通信的次数,提升用户体验。

图7是本申请一个实施例的系统架构的示意图。如图7所示,系统架构700包括执行设备710、训练设备720、数据库730、客户设备740、数据存储系统750、以及数据采集系统760。

数据采集设备760用于采集训练数据。在采集到训练数据之后,数据采集设备760将这些训练数据存入数据库730。

例如,数据采集设备760可以读取预设的第一训练数据和预设的词典;并执行图1所示的方法,基于第一训练数据得到第二训练数据和第三训练数据;然后将第二训练数据和第三训练数据存入数据库730中。

在一些应用场景中,训练设备720可以使用数据库730中维护的第二训练数据对指定的神经网络模型进行训练,得到目标模型701。例如,训练设备720可以执行图2所示的方法,训练得到词条消歧模型。此时,目标模型701即为词条消歧模型。本申请的实施例中,目标模型也可以称为目标规则。

在另一些应用场景中,训练设备720可以使用数据库730中维护的第三训练数据对指定的神经网络模型进行训练,得到目标模型701。例如,训练设备720可以执行图4所示的方法,训练得到词条消歧模型。此时,目标模型701即为自然语言理解模型。

需要说明的是,在实际应用中,数据库730中维护的训练数据不一定都来自于数据采集设备760的采集,也有可能是从其他设备接收得到的。另外需要说明的是,训练设备720也不一定完全基于数据库730维护的训练数据进行目标模型701的训练,也有可能从云端或其他地方获取训练数据进行模型训练,上述描述不应该作为对本申请实施例的限定。

根据训练设备720训练得到的目标模型701可以应用于不同的系统或设备中,如应用于图7中的执行设备710。

例如,训练设备720训练得到词条消歧模型和自然语言理解模型之后,可以将这两个模型部署在执行设备710的计算模块711中。也就是说,执行设备710的计算模块711中部署有训练设备720训练得到的词条消歧模型和自然语言理解模型。

所述执行设备710可以是终端,如手机终端,平板电脑,笔记本电脑,增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR),车载终端等,或者是可以应用在上述这些设备上的芯片,还可以是服务器或者云端等。

在图7中,执行设备710配置输入/输出(input/output,I/O)接口712,用于与外部设备进行数据交互,用户可以通过客户设备740向I/O接口412输入数据。例如,用户可以通过客户设备740输入语音语句,或者文本语句等。

另外,执行设备710包括计算模块711,计算模块711中包括训练设备7207训练得到的目标模型701。

在执行设备710的计算模块711使用目标模型701对待处理数据执行相关处理过程中,执行设备710可以调用数据存储系统750中的数据、代码等以用于相应的处理,也可以将相应处理得到的数据、指令等存入数据存储系统750中。最后,I/O接口412将处理结果,呈现给客户设备440,从而提供给用户。

例如,数据存储系统750中可以存储有目标字典,执行设备710可以执行图5所示的方法,基于数据存储系统750中的目标字典得到用户的意图和该意图的关键信息,并根据该意图和该关键信息执行相应任务,以及通过I/O接口向客户设备740发送执行相应任务得到的结果,以便于客户设备740向用户提供该任务的执行结果。

可以理解的是,本申请实施例中的执行设备710和客户设备740可以是同一个设备,例如为同一个终端设备。

例如,执行设备710和客户设备740为同一个智能手机的情况下,该智能手机可以通过话筒、麦克风、键盘或者手写屏等装置获取用户输入的目标语句,并且该智能手机的手机助手可以执行图5所示的方法,获取该目标语句的意图和该意图的关键信息,并根据该意图调用相应的第三方应用程序(例如订票应用程序、打电话应用程序或者音乐播放应用程序等),以及向该第三方应用程序输出该关键信息,以便于第三方应用程序可以根据该关键信息执行任务。在第三方应用程序得到任务结果之后,智能手机的手机助手可以通过显示屏或扩音器等装置向用户显示任务结果。

在图7所示的系统中,用户可以手动给定输入数据,该手动给定可以通过I/O接口712提供的界面进行操作。另一种情况下,客户设备740可以自动地向I/O接口712发送输入数据,如果要求客户设备740自动发送输入数据需要获得用户的授权,则用户可以在客户设备740中设置相应权限。用户可以在客户设备740查看执行设备710输出的结果,具体的呈现形式可以是显示、声音、动作等具体方式。客户设备740也可以作为数据采集端,采集如图7所示输入I/O接口712的输入数据及输出I/O接口712的输出结果作为新的样本数据,并存入数据库730。当然,也可以不经过客户设备740进行采集,而是由I/O接口712直接将如图7所示输入I/O接口712的输入数据及输出I/O接口712的输出结果,作为新的样本数据存入数据库730。

可以理解的是,图7仅是本申请实施例提供的一种系统架构的示意图,图中所示设备、器件、模块等之间的位置关系不构成任何限制,例如,在图7中,数据存储系统750相对执行设备710是外部存储器,在其它情况下,也可以将数据存储系统750置于执行设备710中。

图8是本申请一个实施例提供的训练模型的装置的部署示意图,该装置可部署在云环境中,云环境是云计算模式下利用基础资源向用户提供云服务的词条。云环境包括云数据中心和云服务平台,所述云数据中心包括云服务提供商拥有的大量基础资源(包括计算资源、存储资源和网络资源),云数据中心包括的计算资源可以是大量的计算设备(例如服务器)。

在一些示例中,该装置可以是云数据中心中用于训练词条消歧模型的服务器;也可以是创建在云数据中心中用于训练词条消歧模型的虚拟机;还可以是部署在云数据中心中的服务器或者虚拟机上的软件装置,该软件装置用于训练词条消歧模型,该软件装置可以分布式地部署在多个服务器上、或者分布式地部署在多个虚拟机上、或者分布式地部署在虚拟机和服务器上。

在另一些示例中,该装置可以是云数据中心中用于训练自然语言理解模型的服务器;也可以是创建在云数据中心中用于训练自然语言理解模型的虚拟机;还可以是部署在云数据中心中的服务器或者虚拟机上的软件装置,该软件装置用于训练自然语言理解模型,该软件装置可以分布式地部署在多个服务器上、或者分布式地部署在多个虚拟机上、或者分布式地部署在虚拟机和服务器上。

如图8所示,该装置可以由云服务提供商在云服务平台抽象成一种用于训练词条消歧模型或者一种用于训练自然语言理解模型的云服务提供给用户,用户在云服务平台购买该云服务后,云环境利用该云服务向用户提供训练词条消歧模型或者提供训练自然语言理解模型的云服务。

例如,用户可以通过应用程序接口(application program interface,API)或者通过云服务平台提供的网页界面上传第一训练数据至云环境,由训练装置接收第一训练数据,并使用图1所示的方法获取第二训练数据和第三训练数据,以及使用图2所示的方法训练得到词条消歧模型和使用图4所示的方法训练得到自然语言理解模型,最终训练得到的词条消歧模型和自然语言理解模型由训练装置返回至用户所使用的执行设备。然后,用户可以向执行设备输入目标语句,执行设备可以执行图5所示的方法,获取目标语句的意图和该意图的关键信息,以及根据该意图和该关键信息执行相关任务。

当训练装置为软件装置时,训练装置也可以单独部署在任意环境的一个计算设备上,例如,单独部署在一个计算设备上或者单独部署在数据中心中的一个计算设备上。

图9为本申请一个实施例的计算设备的示例性结构图。如图9所示,计算设备900包括总线901、处理器902、通信接口903和存储器904。

处理器902、存储器904和通信接口903之间通过总线901通信。其中,处理器902可以为中央处理器。存储器904可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM)。存储器904还可以包括非易失性存储器(2non-volatile memory,2NVM),例如只读存储器(2read-only memory,2ROM),快闪存储器,硬盘驱动器(hard disk drive,HDD)或固态启动器(solid state disk,SSD)。存储器904中存储有训练装置所包括的可执行代码,处理器902读取存储器904中的该可执行代码以执行训练方法。存储器904中还可以包括操作系统等其他运行进程所需的软件模块。操作系统可以为LINUX

例如,计算设备900的处理器902可以读取存储器904中的可执行代码,以实现图1所示的方法,获得第二训练数据和第三训练数据。

又如,计算设备900的处理器902可以读取存储器904中的可执行代码,以实现图2所示的方法,获得词条消歧模型。

再如,计算设备900的处理器902可以读取存储器904中的可执行代码,以实现图4所示的方法,获得自然语言理解模型。

又如,计算设备900的处理器902可以读取存储器904中的可执行代码,以实现图5所示的方法,获得用户输入的语句的意图和该意图的关键信息。

图10为本申请另一个实施例的系统架构的示意图。执行设备1010由一个或多个服务器实现,可选的,可以与其它计算设备配合,例如:数据存储、路由器、负载均衡器等设备。执行设备1010可以布置在一个物理站点上,或者分布在多个物理站点上。执行设备1010可以使用数据存储系统1050中的数据,或者调用数据存储系统1050中的程序代码实现图1、图2和图4中至少一个所示的方法。

例如,执行设备1010中可以部署有各种词典,以及部署有第一训练数据,该第一训练数据包括训练语句和标注的意图和关键信息;并且,执行设备1010基于该词典和该第一训练数据,执行图1所示的方法,得到第二训练数据和第三训练数据;此后,执行设备710基于第二训练数据,执行图2所示的方法,训练得到词条消歧模型,以及基于第三训练数据,执行图3所示的方法,训练得到自然语言理解模型。

用户可以操作各自的用户设备(例如本地设备1001和本地设备1002)与执行设备1010进行交互。每个本地设备可以表示任何计算设备,例如个人计算机、计算机工作站、智能手机、平板电脑、智能摄像头、智能汽车或其他类型蜂窝电话、媒体消费设备、可穿戴设备、机顶盒、游戏机等。

每个用户的本地设备可以通过任何通信机制/通信标准的通信网络与执行设备710进行交互,通信网络可以是广域网、局域网、点对点连接等方式,或它们的任意组合。

执行设备1010训练得到词条消歧模型和自然语言理解模型之后,通过通信网络向用户设备(例如本地设备1001和本地设备1002)发送该词条消歧模型和自然语言理解模型。

本地设备1001或本地设备1002接收词条消歧模型和自然语言理解模型之后,可以部署这两个模型,并在接收到用户输入的目标语句的情况下,基于这两个模型,执行图5所示的方法,获取目标语句的意图和该意图的关键信息。

在另一种实现中,执行设备1010的一个方面或多个方面可以由每个本地设备实现,例如,本地设备1001可以为执行设备1010提供第一训练数据,或提供词典,或提供训练语句。

图12是本申请一个实施例的获取训练数据的装置1100的示意性结构图。装置1100可以包括行为获取模块1110、判断模块1120和生成模块1130。装置1100可以用于实现图1所示的方法。

例如,获取模块1110可以用于执行S110至S120,判断模块1120可以用于执行S130,生成模块1130可以用于执行S140和S150。

图13是本申请一个实施例的训练模型的装置1200的示意性结构图。装置1200可以包括行为获取模块1210和训练模块1220。装置1200可以用于实现图2或图4所示的方法。

例如,获取模块1210可以用于执行S210,训练模块1220可以用于执行S220。又如,获取模块1210可以用于执行S410,训练模块1220可以用于执行S420。

图14是本申请一个实施例的实现自然语言理解的装置1300的示意性结构图。装置1300可以包括行为获取模块1310、消歧模块1320和理解模块1330。装置1300可以用于实现图5所示的方法。

例如,获取模块1310可以用于执行S510,消歧模块1320可以用于执行S530,理解模块1330可以用于执行S550。

图15为本申请一个实施例的装置1400的示意性结构图。装置1400包括处理器1402、通信接口1403和存储器1404。装置1400的一种示例为芯片。

处理器1402、存储器1404和通信接口1403之间可以通过总线通信。存储器1404中存储有可执行代码,处理器1402读取存储器1404中的可执行代码以执行对应的方法。存储器1404中还可以包括操作系统等其他运行进程所需的软件模块。操作系统可以为LINUX

例如,存储器1404中的可执行代码用于实现图1、图2、图3和图5中任一图所示的方法,处理器1402读取存储器1404中的该可执行代码以执行图1、图2、图3和图5中任一图所示的方法。

其中,处理器1402可以为CPU。存储器1404可以包括易失性存储器(volatilememory),例如随机存取存储器(random access memory,RAM)。存储器1404还可以包括非易失性存储器(2non-volatile memory,2NVM),例如只读存储器(2read-only memory,2ROM),快闪存储器,硬盘驱动器(hard disk drive,HDD)或固态启动器(solid state disk,SSD)。

在本申请的一些实施例中,所公开的方法可以实施为以机器可读格式被编码在计算机可读存储介质上的或者被编码在其它非瞬时性介质或者制品上的计算机程序指令。图16示意性地示出根据这里展示的至少一些实施例而布置的示例计算机程序产品的概念性局部视图,所述示例计算机程序产品包括用于在计算设备上执行计算机进程的计算机程序。在一个实施例中,示例计算机程序产品1500是使用信号承载介质1501来提供的。所述信号承载介质1501可以包括一个或多个程序指令1502,其当被一个或多个处理器运行时可以提供以上针对图1、图2、图3和图5任意一个图所示的方法中描述的功能或者部分功能。因此,例如,图5中所示的实施例,S510至S550的一个或多个特征可以由与信号承载介质1501相关联的一个或多个指令来承担。又如,参考图4中所示的实施例,S410至S420的一个或多个特征可以由与信号承载介质1501相关联的一个或多个指令来承担。

在一些示例中,信号承载介质1501可以包含计算机可读介质1503,诸如但不限于,硬盘驱动器、紧密盘(CD)、数字视频光盘(DVD)、数字磁带、存储器、只读存储记忆体(read-only memory,ROM)或随机存储记忆体(random access memory,RAM)等等。在一些实施方式中,信号承载介质1501可以包含计算机可记录介质1104,诸如但不限于,存储器、读/写(R/W)CD、R/W DVD、等等。在一些实施方式中,信号承载介质1501可以包含通信介质1505,诸如但不限于,数字和/或模拟通信介质(例如,光纤电缆、波导、有线通信链路、无线通信链路、等等)。因此,例如,信号承载介质1,501可以由无线形式的通信介质1505(例如,遵守IEEE802.11标准或者其它传输协议的无线通信介质)来传达。一个或多个程序指令1502可以是,例如,计算机可执行指令或者逻辑实施指令。在一些示例中,前述的计算设备可以被配置为,响应于通过计算机可读介质1503、计算机可记录介质1504、和/或通信介质1505中的一个或多个传达到计算设备的程序指令1502,提供各种操作、功能、或者动作。应该理解,这里描述的布置仅仅是用于示例的目的。因而,本领域技术人员将理解,其它布置和其它元素(例如,机器、接口、功能、顺序、和功能组等等)能够被取而代之地使用,并且一些元素可以根据所期望的结果而一并省略。另外,所描述的元素中的许多是可以被实现为离散的或者分布式的组件的、或者以任何适当的组合和位置来结合其它组件实施的功能词条。

在自然语言理解的很多场景中都需要结合先验知识,例如手机助手中的意图分类和槽位提取的场景:“播放同一首歌”中的“同一首歌”既可以是视频也可以是音频,如果不引入外部知识无法做出意图的判断;“打电话给xxx”中的“xxx”是通讯录中的人名,如果不给定通讯录无法准确提取槽位信息;现在智能家电越来越普及,例如智能音箱是很多家庭的标配,有人喜欢给智能音箱起特殊的名字,如果不输入先验知识,也无法通过特殊名字唤醒智能音箱。因此在想要准确进行意图分类和槽位提取,在NLP模型中引入外部知识至关重要。本申请的人机交互系统中实现自然语言理解的方法可以实现在自然语言理解中引入外部知识,引入的外部知识可以辅助序列标注、序列分类等任务,从而显著提升序列标注、序列分类等的准确率和效率。

图17示出了本申请实施例的人机交互系统中实现自然语言理解方法所涉及的系统架构示意图,如图17所示,该系统架构包括数据存储和算法训练单元1、算法部署单元2、算法部署单元3、算法部署单元4组成,其中算法部署单元可以有多个,并不限于图1示出中的数量。其中数据存储和算法训练单元1用于存储词典和支持模型的训练,并将训练好的模型发送至算法部署单元(终端设备)2、3、4等,算法部署单元用于执行算法的运算(即模型的运行)。

图18示出了本申请实施例的人机交互系统中实现自然语言理解方法所涉及的模块示意图,如图18所示,包括快速匹配模块、消歧模块和任务相关模块。其中快速匹配模块用于将用户输入的语句与词典进行快速匹配,然后将匹配结果转换为低维表示。由于匹配的结果一般包括多个,且其中大部分为不合理的结果,因此消歧模块对多个匹配结果的低维表示进行分类,确定出合理的结果和不合理的结果。在消歧模块对多个匹配结果的低维表示进行分类之前,任务相关模块将用户输入的语句经过编码器(例如双向转换的编码器(Bidirectional Encoder Representation from Transformers,BERT)模型),从而得到输入语句的上下文表示,将匹配结果的低维表示和输入语句的上下文表示融合,再将融合结果输入消歧模块;任务相关模块将消歧模块输出的合理的结果再与输入语句的上下文表示融合,得到二次融合的结果,最后将二次融合的结果输入任务模块,进行意图分类和槽位提取,从而实现自然语言的理解。

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

图19示出了本申请实施例的人机交互系统中实现自然语言理解的方法的示意性流程图,如图19所示,包括步骤1901至步骤1905,本申请实施例的人机交互系统中实现自然语言理解的方法是一种端到端的方法,可以由图17所示的数据存储和算法训练单元1执行,以下分别进行介绍。

S1901,获取目标语句在一个或多个词典中匹配的多个目标词条,目标语句为用户向人机交互系统输入的语句。

具体的,获取用户向人机交互系统输入的目标语句,将目标语句与一个或多个词典进行匹配。词典的具体数量和类型可以由人为预设决定,例如人机交互系统为智能音箱,根据应用场景可以将词典类型确定为音乐词典、有声书词典等,此外词典还可以是用户自定义的词典。将目标语句与一个或多个词典进行匹配可以通过快速查找算法,例如字典树(trie tree)算法,将目标语句中的每个字按照从左至右的顺序在一个或多个词典中查找匹配的词条,得到匹配的目标词条一般包括多个,以目标语句“我想听青花瓷”、词典为音乐词典和电影词典为例,“青花瓷”、“青花”、“我”在音乐词典中都有匹配,即这些词都可以是歌曲名,“青花”在电影词典中有匹配,即该词可以是电影名。

S1902,根据多个目标词条获取目标语句的多个序列,多个序列中的每个序列对应一个目标词条。

具体的,为每个目标词条构建一个目标语句对应的序列,每个序列包含一个匹配实体,包括该匹配实体的位置和类型。例如以音乐词典中匹配到的“青花瓷”为例,在为“青花瓷”构建的序列中,则需要标注“青花瓷”为歌曲名,以及“青花瓷”在该序列中的位置,具体可以参照下表1。

可选的,序列中可以只标注匹配实体的位置,而不标注匹配实体的类型。

S1903,根据多个序列和目标语句获取与多个序列对应的多个第一序列表示。

具体的,对于S1902中得到的多个序列,在进行后续的自然语言理解之前需要将这些序列用计算机可以理解的方式表达后才可以进行后续的操作,即需要将这些序列进行低维表示处理,以得到每个序列的低维表示。同时,获取目标语句的上下文表示,具体的可以将目标语句经过编码器(例如BERT模型)处理得到上下文表示。将每个序列的低维表示和目标语句的上下文表示进行融合,具体的,将每个序列的低维表示和目标语句的上下文表示通过神经网络模型的自注意力层,从而可以得到与多个序列对应的多个第一序列表示。

由于低维表示是预先获取的,现有技术中是直接将词条转换为低维表示,因此有多少数量的词条则需要预先获取多少数量的低维表示,当词典更新或扩充后,新增加的词条没有预先对应的低维表示,则需要重新训练神经网络模型。而对于本申请,以表3为例说明,先将每个词条对应的语句转换为序列,然后将序列转换为低维表示,序列中的实体是固定有限的数量,例如表3中的多个词条都只有“song”和“movie”的类型,因此音乐词典和电影词典中即便更新了其他歌曲名和电影名,也都将被转换为“song”和“movie”的类型,因此词典更新而神经网络模型也无需更新,提高了神经网络模型的泛化能力。

S1904,根据多个第一序列表示确定多个目标词条中的每个目标词条是否符合所述目标语句的语义。

根据用户输入目标语句的语义和语法结构,可以理解在上述S1901中得到的多个目标词条中,大部分为不符合所述目标语句的语义的匹配结果,由此得到的多个第一序列表示中大多也为不合理的结果,这些不合理的结果输入后续神经网络模型中则成为干扰噪音,可能恶化模型,因此需要将多个第一序列表示进行消歧处理。具体的,获取第二序列表示对多个第一序列表示中除第二序列表示外其他第一序列表示的关注度,第二序列表示为多个第一序列表示中的一个,其中关注度为其他第一序列表示对第二序列表示的影响。具体的方式为将第二序列通过神经网络模型的自注意力层进行处理,从而得到第二序列对其他第一序列的关注度,如此,在进行消歧处理时,不仅考虑了在一个序列中匹配实体与其上下文的关系,还考虑了不同序列之间的关系,可以使消歧结果更加准确。然后将第二序列表示通过神经网络的线性层进行消歧处理,该线性层可以将第二序列表示进行二分类处理,可以得到第二序列表示为符合所述目标语句的语义的结果还是不符合所述目标语句的语义的结果。例如,二分类可以是0-1分类,即将符合所述目标语句的语义的结果分类为1,不符合所述目标语句的语义的结果分类为0。

S1905,根据一个或多个符合所述目标语句的语义的目标词条对应的第一序列表示对目标语句进行自然语言理解处理,以得到处理结果。

具体的,本申请实施例的自然语言理解处理任务包括意图分类、槽位提取、句子分类和实体识别等,可以根据具体的自然语言理解处理任务对目标语句进行自然语言理解处理。这里以意图分类和槽位提取为例进行说明,将一个或多个合理的目标词条对应的第一序列表示经过神经网络模型的意图分类层和槽位提取层的处理,从而得到目标语句的意图信息和槽位信息。

可选的,在根据一个或多个合理的目标词条对应的第一序列表示对目标语句进行自然语言理解处理之前,本申请实施例的人机交互系统中实现自然语言理解的方法还包括,将所述一个或多个合理的目标词条对应的第一序列表示中的每个合理的目标词条对应的第一序列表示和所述目标语句的上下文表示融合,以得到与所述一个或多个合理的目标词条对应的一个或多个第三序列表示。然后根据第三序列表示对目标语句进行自然语言理解处理,以得到处理结果。

本申请实施例的人机交互系统中实现自然语言理解的方法,嵌入了词典知识,可以更好的实现自然语言理解的处理。其中,将自然语言与词典匹配后先转换为序列,再根据序列获取该序列的低维表示,由于序列的类型是固定有限的数量,因此与词典匹配的任意多种词条都可以转换为有限数量的序列,对应的低维表示也是有限数量的。因此当词典更新或扩充后,本申请的神经网络模型无需更新,提高了模型的泛化能力。

图20是本申请实施例的神经网络模型的训练方法的示意性流程图,该神经网络模型包括第一子网络模型、第二子网络模型和第三子网络模型,第一子网络模型可以用于实现上述图19中的步骤1901至步骤1903,第二子网络模型用于实现上述图19中的步骤1904,第三子网络模型用于实现上述图19中的步骤1905。如图20所示,本申请实施例的神经网络模型的训练方法包括步骤2001至步骤2006,以下分别进行介绍。

S2001,获取第一训练数据,第一训练数据包括训练语句和训练语句与目标词典匹配的多个第一序列表示。

具体的,先获取训练语句与目标词典进行字词匹配的结果,得到多个目标词条;然后针对每个目标词条构建训练语句的序列,每个序列包括一个目标词条对应的实体的位置和类型;再将多个序列转换为低维表示,将训练语句经过上下文表示处理得到训练语句的上下文表示;最后将多个序列中的每个序列与训练语句的上下文表示融合,得到训练语句与目标词典匹配的多个匹配结果。

S2002,根据第一训练数据对第一子网络模型进行训练,以得到训练后的第一子网络模型。

将训练语句输入待训练的第一子网络模型,其中第一子网络模型已经引入了目标词典,将训练语句与目标词典匹配的多个匹配结果作为第一子网络模型的训练目标,对第一子网络模型进行训练。

S2003,获取第二训练数据,第二训练数据包括训练后的第一子网络模型的输出结果和多个第一序列表示中满足预设要求的第一序列表示。

具体的,从S2001中的多个匹配结果中选出满足预设要求的匹配结果。多个第一序列表示中的每个第一序列表示对应一个第一目标词条,第一目标词条为所述训练语句与目标词典匹配的词条,满足预设要求的第一序列表示为符合训练语句语义的第一目标词条对应的序列表示。

S2004,根据第二训练数据对第二子网络模型进行训练,以得到训练后的第二子网络模型。

将满足预设要求的第一子网络模型的输出结果输入待训练的第二子网络模型,将满足预设要求的匹配结果作为第二子网络模型的训练目标,对第二子网络模型进行训练。

S2005,获取第三训练数据,第三训练数据包括训练后的第二子网络模型的输出结果和训练语句进行自然语言理解处理的处理结果。

S2006,根据第三训练数据对第三子网络模型进行训练,以得到训练后的第三子网络模型。

将满足预设要求的第二子网络模型的输出结果输入待训练的第三子网络模型,将训练语句进行自然语言理解处理的处理结果作为第三子网络模型的训练目标,对第三子网络模型进行训练。

由此通过上述步骤2001至步骤2006可以完成对本申请实施例的神经网络模型的训练,训练好的神经网络模型可以用于实现本申请实施例的人机交互系统中实现自然语言理解的方法。

可选的,第一子网络模型为词条匹配模型,用于根据用户输入的目标语句和目标词典获取与目标词典匹配的多个序列表示,多个序列表示中的每个序列表示对应一个目标词条,目标词条为目标语句与目标词典匹配的词条;第二子网络模型为词条消歧模型,用于根据目标语句和多个序列表示确定多个序列表示中的每个序列表示对应的目标词条是否符合目标语句的语义;第三子网络模型为自然语言理解模型,用于根据符合目标语句语义的目标词条对应的序列表示对目标语句进行自然语言理解处理。

本申请实施例的神经网络模型的训练为一种端到端的训练方法,流程简单且训练速度快。

本申请实施例的人机交互系统中实现自然语言理解方法具体可以通过如下步骤实现,以下结合图21至图23具体介绍本申请实施例的人机交互系统中实现自然语言理解方法。

(1)词典快速匹配

词典根据下游任务需要,包含了相关词条及其对应的类型,例如音乐词典、电影词典等,其中用于匹配的词典可以有多个,具体的词典数量和类型可以人为预先设定。如图21所示,首先对于每一个输入的句子,按照句子的顺序从左到右按照每个字开始遍历查找在词典中出现的词条和类型,每个句子可以查询到多个词典,同一个词条也可以对应多种类型。其中可以通过快速查找算法,例如使用字典树(trie tree)算法查找,从左到右按每个字开始遍历查找在词典中出现的词条,然后根据匹配到的文本长度由大到小排序,从而得到快速匹配集。

(2)对匹配结果构建标注

根据匹配到的词典类型,为每个结果构造词典类型对应字级别的特征序列,该特征序列与句子字序列一一对应。表3示出了句子“我想听青花瓷”与词典匹配的结果示例,每一行代表一个序列,例如在词典查询的第一个序列中“青花瓷”在音乐词典中匹配到,其中O标记代表该处没有对应的词典特征,B-song标记代表该处是歌曲名实体的起始位置,I-song标记代表该处是歌曲名实体的后续部分,每个词典特征序列包含一个实体的位置及类型信息。

表3

(3)获取融合上下文的标记序列的低维表示

对于(2)中生成的标记序列其实是标记的ID,在输入模型之前还需要进一步处理成词表示,将标记序列经过神经网络的词表示层处理得到标记序列的低维表示rep

(4)词典消歧

上述得到的词典匹配结果其实大部分是错误结果,如果无差别输入后续模型,对模型来说就是干扰噪音,导致的后果是不仅不能提升序列模型的表达能力,还可能恶化模型,因此有必要对匹配结果进行消歧。通过消歧步骤可以抑制大部分的噪声匹配结果。

如图22所示,在上述得到融合上下文的标记表示rep

分类结果采用0-1分类,表示匹配结果贴上的词典标签是否合理。如果不关注词典类别,可以在重构标签的时候只使用0-1类别。

表4示出了表3中的词典查询序列的消歧结果,在句子“我想听青花瓷”中,对于匹配到的“音乐:青花瓷”、“音乐:青花”、“电影:青花”、“音乐:我”等几个结果中,只有“音乐:青花瓷”在原文中是一个可能正确的实体,而其他几个结果在语义上均是不合理的结果。因此通过分类可以将不合理的词典匹配结果滤除。

表4

(5)特征融合

如图23所示,通过消歧处理后可以得到较合理的匹配结果的标记序列,融合将其输入到任务相关的模块。具体的,选取上述分类结果为1的序列对应的rep

(6)意图分类和槽位提取

得到rep

图24示出了本申请实施例的人机交互系统中实现自然语言理解的装置的示意性框图,如图24所示,包括获取模块2410和处理模块2420,其中:

获取模块2410,用于获取目标语句在一个或多个词典中匹配的多个目标词条,所述目标语句为用户向所述人机交互系统输入的语句。

处理模块2420,用于根据多个目标词条获取所述目标语句的多个序列,所述多个序列中的每个序列对应一个目标词条。

所述处理模块2420,还用于根据所述多个序列和所述目标语句获取与所述多个序列对应的多个第一序列表示。

所述处理模块2420,还用于根据所述多个第一序列表示确定所述多个目标词条中的每个目标词条合理或不合理。

所述处理模块2420,还用于根据一个或多个合理的目标词条对应的第一序列表示对所述目标语句进行自然语言理解处理,以得到处理结果。

可选的,所述多个序列中的每个序列包含一个匹配实体的类型信息和所述匹配实体在所述序列中的位置信息。

可选的,所述处理模块2420根据所述多个序列和所述目标语句获取与所述多个序列对应的多个第一序列表示,包括:获取所述多个序列中的每个序列的低维表示;获取所述目标语句的上下文表示;将所述多个序列中的每个序列的低维表示和所述目标语句的上下文表示融合,以得到与所述多个序列对应的多个第一序列表示。

可选的,所述处理模块2420根据所述多个第一序列表示确定所述多个目标词条中的每个目标词条合理或不合理,包括:获取第二序列表示对所述多个第一序列表示中除所述第二序列表示外其他第一序列表示的关注度,所述第二序列表示为所述多个第一序列表示中的一个;根据所述第二序列表示和所述关注度确定所述第二序列表示对应的目标词条合理或不合理。

可选的,所述处理模块2420根据一个或多个合理的目标词条对应的第一序列表示对所述目标语句进行自然语言理解处理之前,所述处理模块2420还用于:获取所述目标语句的上下文表示;将所述一个或多个合理的目标词条对应的第一序列表示中的每个合理的目标词条对应的第一序列表示和所述目标语句的上下文表示融合,以得到与所述一个或多个合理的目标词条对应的一个或多个第三序列表示。

应理解,人机交互系统中实现自然语言理解的装置2400可以用于实现上述图19、图21至图23中的人机交互系统中实现自然语言理解的方法,具体实现步骤可以参照上述对于图19、图21至图23的描述,为了简洁,本申请实施例在此不再赘述。

图25示出了本申请实施例的神经网络模型的训练装置的示意性框图,神经网络模型包括第一子网络模型、第二子网络模型和第三子网络模型。如图25所示,该训练装置包括获取模块2510和训练模块2520,其中:

获取模块2510,用于获取第一训练数据,所述第一训练数据包括训练语句和所述训练语句与目标词典匹配的多个匹配结果;

训练模块2520,用于根据所述第一训练数据对所述第一子网络模型进行训练,以得到训练后的第一子网络模型;

所述获取模块2510还用于获取第二训练数据,所述第二训练数据包括所述训练后的第一子网络模型的输出结果和所述多个匹配结果中满足预设要求的匹配结果;

所述训练模块2520还用于根据所述第二训练数据对所述第二子网络模型进行训练,以得到训练后的第二子网络模型;

所述获取模块2510还用于获取第三训练数据,所述第三训练数据包括所述训练后的第二子网络模型的输出结果和所述训练语句进行自然语言理解处理的处理结果;

所述训练模块2520还用于根据所述第三训练数据对所述第三子网络模型进行训练,以得到训练后的第三子网络模型。

应理解,神经网络模型的训练装置2500可以用于实现上述图20中的神经网络模型的训练方法,具体实现步骤可以参照上述对于图20的描述,为了简洁,本申请实施例在此不再赘述。

图26是本申请实施例的一种装置的硬件结构示意图。图26所示的装置2600(该装置2600具体可以是一种计算机设备)包括存储器2601、处理器2602、通信接口2603以及总线2604。其中,存储器2601、处理器2602、通信接口2603通过总线2604实现彼此之间的通信连接。

存储器2601可以是只读存储器(read only memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(random access memory,RAM)。存储器2601可以存储程序,当存储器2601中存储的程序被处理器2602执行时,处理器2602用于执行本申请实施例的人机交互系统中实现自然语言理解的方法和神经网络模型的训练方法的各个步骤。

处理器2602可以采用通用的中央处理器(central processing unit,CPU),微处理器,应用专用集成电路(application specific integrated circuit,ASIC),图形处理器(graphics processing unit,GPU)或者一个或多个集成电路,用于执行相关程序,以实现本申请实施例的人机交互系统中实现自然语言理解的方法和神经网络模型的训练方法。

处理器2602还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本申请的人机交互系统中实现自然语言理解的方法和神经网络模型的训练方法的各个步骤可以通过处理器2602中的硬件的集成逻辑电路或者软件形式的指令完成。

上述处理器2602还可以是通用处理器、数字信号处理器(digital signalprocessing,DSP)、专用集成电路(ASIC)、现成可编程门阵列(field programmable gatearray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器2601,处理器2602读取存储器2601中的信息,结合其硬件完成本申请实施例的人机交互系统中实现自然语言理解的装置和神经网络模型的训练装置中包括的单元所需执行的功能,或者执行本申请实施例的人机交互系统中实现自然语言理解的方法和神经网络模型的训练方法。

通信接口2603使用例如但不限于收发器一类的收发装置,来实现装置2600与其他设备或通信网络之间的通信。例如,可以通过通信接口2603获取用户输入的目标语句或训练数据。

总线2604可包括在装置2600各个部件(例如,存储器2601、处理器2602、通信接口2603)之间传送信息的通路。

应注意,尽管上述装置2600仅仅示出了存储器、处理器、通信接口,但是在具体实现过程中,本领域的技术人员应当理解,装置2600还可以包括实现正常运行所必须的其他器件。同时,根据具体需要,本领域的技术人员应当理解,装置2600还可包括实现其他附加功能的硬件器件。此外,本领域的技术人员应当理解,装置2600也可仅仅包括实现本申请实施例所必须的器件,而不必包括图26中所示的全部器件。

根据本申请实施例提供的方法,本申请还提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行图1、2、4、5、6、19、20所示实施例中任意一个实施例的方法。

需要说明的是,上述计算机程序代码可以全部或者部分存储在第一存储介质上,其中第一存储介质可以与处理器封装在一起的,也可以与处理器单独封装,本申请对此不作具体限定。

根据本申请实施例提供的方法,本申请还提供了一种芯片系统,包括:处理器,用于从存储器中调用并运行计算机程序,使得安装有所述芯片系统的通信设备执行图1、2、4、5、6、19、20所示实施例中任意一个实施例的方法。

根据本申请实施例提供的方法,本申请还提供了一种计算机可读介质,所述计算机可读介质存储有程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行图1、2、4、5、6、19、20所示实施例中任意一个实施例的方法。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号