自然语言理解缓存器转让专利

申请号 : CN201580074362.8

文献号 : CN107209757B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 马蒂厄·赫伯特安德烈·吉勒特

申请人 : 纽昂斯通讯公司

摘要 :

所公开的方法和系统针对自然语言理解缓存器使用。该方法和系统可以包括接收包括一个或更多个词的集合的第一自然语言输入,以及解析第一自然语言输入以确定第一预标签结果,该第一预标签结果至少包括第一串,该第一串包括来自一个或更多个词的集合中的至少一个词。方法和系统还可以确定如果第一预标签结果对应于存储在缓存器中的键,则检索对应于至少一个键的一个或更多个缓存的NLU结果。方法和系统还可以确定如果第一预标签结果不对应于存储在缓存器中的键,则基于一个或更多个词的集合来确定与第一自然语言输入相对应的第一NLU结果。

权利要求 :

1.一种用于经由计算机处理来执行自然语言理解NLU的方法,所述方法包括:由计算设备确定自然语言的一个或更多个先前输入中的每一个的预标签结果和试验性NLU结果,其中:自然语言的所述一个或更多个先前输入每个包括命名实体和意图,

所述预标签结果对应于所述命名实体,并且

所述试验性NLU结果对应于所述命名实体和所述意图;

在缓存器中存储一个或更多个键,每个键包括至少一个预标签结果和与每个预标签结果相对应的至少一个试验性NLU结果;

由所述计算设备接收包括一个或更多个词的集合的自然语言的第一输入,所述一个或更多个词的集合包括特定命名实体和特定意图;

由所述计算设备解析所述第一输入以确定至少包括第一串的第一预标签结果,所述第一串包括来自所述一个或更多个词的集合的至少一个词,其中,所述解析包括确定所述一个或更多个词中的任何一个是否匹配与联系人列表相关联的元数据;

由所述计算设备确定所述第一预标签结果是否对应于存储在所述缓存器中的至少一个键;

如果所述第一预标签结果对应于存储在所述缓存器中的至少一个键,则由所述计算设备从所述缓存器检索对应于所述至少一个键的一个或更多个缓存的试验性NLU结果;以及如果所述第一预标签结果不对应于存储在所述缓存器中的至少一个键:由所述计算设备基于所述一个或更多个词的集合来确定与所述第一输入相对应的第一试验性NLU结果,所述第一试验性NLU结果包括所述特定意图;

由所述计算设备在所述缓存器中存储所述第一试验性NLU结果;以及

由所述计算设备在所述缓存器中添加包括所述第一预标签结果的第一键,所述第一键对应于所述第一试验性NLU结果。

2.根据权利要求1所述的方法,其中,所述第一预标签结果对应于存储在所述缓存器中的至少一个键,所述方法还包括由所述计算设备针对所述第一输入,基于所述第一预标签结果以及所述一个或更多个缓存的试验性NLU结果确定最终NLU结果,并且其中,确定所述最终NLU结果包括从所述第一预标签结果解析命名实体,所述第一预标签结果具有对应于所述一个或更多个缓存的试验性NLU结果中的一个的意图。

3.根据权利要求1所述的方法,其中,在所述缓存器存储了所述第一试验性NLU结果和包括所述第一预标签结果的所述第一键之后,所述方法还包括:由所述计算设备接收包括一个或更多个词的自然语言的第二输入,其中所述第二输入包括所述特定命名实体和所述特定意图;

由所述计算设备解析所述第二输入以确定第二预标签结果;

由所述计算设备确定所述第二预标签结果对应于存储在所述缓存器中的所述第一键;

以及

由所述计算设备从所述缓存器中检索所述第一试验性NLU结果。

4.根据权利要求1所述的方法,其中,解析所述第一输入以确定所述第一预标签结果包括由所述计算设备基于在所述第一输入中包括的所述一个或更多个词来确定命名实体,所述命名实体包括在所述第一输入中包括的所述一个或更多个词中的至少一个。

5.根据权利要求4所述的方法,其中,包括所述一个或更多个词的集合中的至少一个词的所述第一串还包括所述元数据。

6.根据权利要求1所述的方法,其中,所述至少一个键包括下列项中的一个或更多个:根据在所述第一输入中包括的所述一个或更多个词识别的命名实体;以及包括在所述第一输入中包括的所述一个或更多个词中的至少一个词的字串。

7.根据权利要求1所述的方法,其中,确定自然语言的所述一个或更多个先前输入中的每一个的所述预标签结果包括基于设备或用户元数据来确定该先前输入中所包括的一个或更多个词的至少一个串,以及其中确定自然语言的所述一个或更多个先前输入中的每一个的所述试验性NLU结果包括确定与该先前输入相关联的意图、词串或命名实体。

8.根据权利要求1所述的方法,其中,解析所述第一输入以确定所述第一预标签结果还包括由所述计算设备基于另外的元数据来解析所述第一输入以确定所述第一预标签结果,以及其中,所述另外的元数据包括与下列项中的至少一项相关联的元数据:喜爱的网站的列表、喜爱的电话号码列表、喜爱的移动应用列表、喜爱的餐馆列表、喜爱的企业列表或喜爱的位置列表。

9.一种系统,包括:

至少一个处理器;以及

存储指令的至少一个存储器,所述指令当被所述至少一个处理器执行时使所述系统执行:由设备确定自然语言的一个或更多个先前输入中的每一个的预标签结果和试验性NLU结果,其中:自然语言的所述一个或更多个先前输入每个包括命名实体和意图,

所述预标签结果对应于所述命名实体,并且

所述试验性NLU结果对应于所述命名实体和所述意图;

在缓存器中存储一个或更多个键,每个键包括至少一个预标签结果和与每个预标签结果相对应的至少一个试验性NLU结果;

由所述设备接收包括一个或更多个词的集合的自然语言的第一输入,所述一个或更多个词的集合包括特定命名实体和特定意图;

解析所述第一输入以确定至少包括第一串的第一预标签结果,所述第一串包括来自所述一个或更多个词的集合中的至少一个词,其中,所述解析包括确定所述一个或更多个词中的任何一个是否匹配与联系人列表相关联的元数据;

确定所述第一预标签结果是否对应于存储在所述缓存器中的至少一个键;

如果所述第一预标签结果对应于存储在所述缓存器中的至少一个键,则从所述缓存器检索对应于所述至少一个键的一个或更多个缓存的试验性NLU结果;以及如果所述第一预标签结果不对应于存储在所述缓存器中的至少一个键:基于所述一个或更多个词的集合来确定与所述第一输入相对应的第一试验性NLU结果,所述第一试验性NLU结果包括所述特定意图;

在所述缓存器中存储所述第一试验性NLU结果;以及

在所述缓存器中添加包括所述第一预标签结果的第一键,所述第一键对应于所述第一试验性NLU结果。

10.根据权利要求9所述的系统,其中,所述第一预标签结果对应于存储在所述缓存器中的至少一个键,所述指令还使所述系统执行:针对所述第一输入,基于所述第一预标签结果以及所述一个或更多个缓存的试验性NLU结果来确定最终NLU结果,其中确定所述最终NLU结果包括从所述第一预标签结果解析命名实体,所述第一预标签结果具有对应于所述一个或更多个缓存的试验性NLU结果中的一个的意图。

11.根据权利要求9所述的系统,其中,在所述缓存器存储了所述第一试验性NLU结果和包括所述第一预标签结果的所述第一键之后,所述指令还使所述系统执行:接收包括一个或更多个词的自然语言的第二输入,其中所述第二输入包括所述特定命名实体和所述特定意图;

解析所述第二输入以确定第二预标签结果;

确定所述第二预标签结果对应于存储在所述缓存器中的所述第一键;以及从所述缓存器中检索所述第一试验性NLU结果。

12.根据权利要求9所述的系统,其中,解析所述第一输入以确定所述第一预标签结果包括基于在所述第一输入中包括的所述一个或更多个词来确定命名实体,所述命名实体包括在所述第一输入中包括的所述一个或更多个词中的至少一个。

13.根据权利要求9所述的系统,其中,所述至少一个键包括下列项中的一个或更多个:根据在所述第一输入中包括的所述一个或更多个词识别的命名实体;以及包括在所述第一输入中包括的所述一个或更多个词中的至少一个词的字串。

14.根据权利要求9所述的系统,其中,所述指令还使所述系统执行:通过基于设备或用户相关联的元数据来确定先前输入中所包括的一个或更多个词的至少一个串,来确定先前输入的所述预标签结果;以及通过确定与先前输入相关联的意图、词串或命名实体,来确定先前输入的所述试验性NLU结果。

15.根据权利要求9所述的系统,其中,解析所述第一输入以确定所述第一预标签结果还包括基于另外的元数据来解析所述第一输入以确定所述第一预标签结果,以及其中,所述另外的元数据包括与下列项中的至少一项相关联的元数据:喜爱的网站的列表、喜爱的电话号码列表、喜爱的移动应用列表、喜爱的餐馆列表、喜爱的企业列表或喜爱的位置列表。

16.一个或更多个非暂时性计算机可读存储介质,其具有储存在其上的指令,所述指令当被一个或更多个处理器执行时使所述一个或更多个处理器执行:由设备确定自然语言的一个或更多个先前输入中的每一个的预标签结果和试验性NLU结果,其中:自然语言的所述一个或更多个先前输入每个包括命名实体和意图,

所述预标签结果对应于所述命名实体,并且

所述试验性NLU结果对应于所述命名实体和所述意图;

在缓存器中存储一个或更多个键,每个键包括至少一个预标签结果和与每个预标签结果相对应的至少一个试验性NLU结果;

由所述设备接收包括一个或更多个词的集合的自然语言的第一输入,所述一个或更多个词的集合包括特定命名实体和特定意图;

解析所述第一输入以确定至少包括第一串的第一预标签结果,所述第一串包括来自所述一个或更多个词的集合中的至少一个词,其中,所述解析包括确定所述一个或更多个词中的任何一个是否匹配与联系人列表相关联的元数据;

确定所述第一预标签结果是否对应于存储在所述缓存器中的至少一个键;

如果所述第一预标签结果对应于存储在所述缓存器中的至少一个键,则从所述缓存器检索对应于所述至少一个键的一个或更多个缓存的试验性NLU结果;以及如果所述第一预标签结果不对应于存储在所述缓存器中的至少一个键:基于所述一个或更多个词的集合来确定与所述第一输入相对应的第一试验性NLU结果,所述第一试验性NLU结果包括与所述特定意图;

在所述缓存器中存储所述第一试验性NLU结果;以及

在所述缓存器中添加包括所述第一预标签结果的第一键,所述第一键对应于所述第一试验性NLU结果。

17.根据权利要求16所述的一个或更多个非暂时性计算机可读存储介质,其中,所述第一预标签结果对应于存储在所述缓存器中的至少一个键,所述指令还使所述一个或更多个处理器执行:针对所述第一输入,基于所述第一预标签结果以及所述一个或更多个缓存的试验性NLU结果确定最终NLU结果,其中确定所述最终NLU结果包括从所述第一预标签结果解析命名实体,所述第一预标签结果具有对应于所述一个或更多个缓存的试验性NLU结果中的一个的意图。

18.根据权利要求16所述的一个或更多个非暂时性计算机可读存储介质,其中,在所述缓存器存储了所述第一试验性NLU结果和包括所述第一预标签结果的所述第一键之后,所述指令还使所述一个或更多个处理器执行:接收包括一个或更多个词的自然语言的第二输入,其中所述第二输入包括所述特定命名实体和所述特定意图;

解析所述第二输入以确定第二预标签结果;

确定所述第二预标签结果对应于存储在所述缓存器中的所述第一键;以及从所述缓存器中检索所述第一试验性NLU结果。

19.根据权利要求16所述的一个或更多个非暂时性计算机可读存储介质,其中,解析所述第一输入以确定所述第一预标签结果包括基于在所述第一输入中包括的所述一个或更多个词来确定命名实体,所述命名实体包括在所述第一输入中包括的所述一个或更多个词中的至少一个。

20.根据权利要求16所述的一个或更多个非暂时性计算机可读存储介质,其中,解析所述第一输入以确定所述第一预标签结果还包括基于另外的元数据来解析所述第一输入以确定所述第一预标签结果,以及其中,所述另外的元数据包括与下列项中的至少一项相关联的元数据:喜爱的网站的列表、喜爱的电话号码列表、喜爱的移动应用列表、喜爱的餐馆列表、喜爱的企业列表或喜爱的位置列表。

说明书 :

自然语言理解缓存器

[0001] 相关申请的交叉引用
[0002] 本申请要求2014年12月1日提交的且标题为“NATURAL LANGUAGE UNDESTANDING CACHE”的序列号为14/556,904的美国专利申请的优先权,该专利申请的公开内容通过引用以其整体并入本文并作为本文的部分。
[0003] 领域
[0004] 本申请大体上涉及计算机和计算机软件。更具体地,本文描述的方面涉及自然语言处理软件应用,并且涉及用于在自然语言理解(NLU)缓存器中使用的语言解析和识别。
[0005] 背景
[0006] 自然语言处理(NLP)和自然语言理解(NLU)涉及使用计算机处理以从自然语言输入(例如,英语或某种其它语言的口头的或基于文本的串)提取有意义的信息。更多的应用使用NLP和NLU来与用户交互。NLU处理需要大量的计算资源,并可能对执行此处理的计算设备有不利影响。
[0007] 概述
[0008] 下文呈现了简化概述,以便提供对本公开的一些方面的基本理解。该概述并不是本公开的广泛综述。其既不意欲确定本公开的关键或重要元素也不描绘本公开的范围。下面的概述仅仅以简化的形式呈现本公开的一些概念,作为下面的描述的序言。
[0009] 鉴于对减少NLU处理的量同时仍然提供准确的NLU结果的所确定的需要,本公开的一个或更多个方面提供了一种方法,其可以包括:由设备接收包括一个或更多个词(term)的集合的第一自然语言输入;以及解析第一自然语言输入以确定第一预标签(pretag)结果,该第一预标签结果包括至少包括来自一个或更多个词的集合中的至少一个词的第一串。该方法还可以包括确定第一预标签结果是否对应于存储在缓存器中的至少一个键;如果第一预标签结果对应于存储在缓存器中的至少一个键,则从缓存器检索对应于至少一个键的一个或更多个缓存的NLU结果;以及如果第一预标签结果不对应于存储在缓存器中的至少一个键:基于一个或更多个词的集合来确定与第一自然语言输入相对应的第一NLU结果,该第一NLU结果包括与第一自然语言输入相关联的意图;在缓存器中存储第一NLU结果;以及在缓存器中存储包括第一预标签结果的第一键,该第一键对应于第一NLU结果。
[0010] 在一些实施例中,所述第一预标签结果对应于存储在所述缓存器中的至少一个键,所述方法还包括针对所述第一自然语言输入,基于所述第一预标签结果以及所述一个或更多个缓存的NLU结果确定最终NLU结果。
[0011] 在一些实施例中,所述第一预标签结果不对应于存储在所述缓存器中的至少一个键,并且其中所述缓存器存储所述第一NLU结果和包括所述第一预标签结果的所述第一键,所述方法还包括:接收包括一个或更多个词的第二自然语言输入;解析所述第二自然语言输入以确定第二预标签结果;确定所述第二预标签结果对应于存储在所述缓存器中的所述第一键;以及从所述缓存器中检索所述第一NLU结果。
[0012] 在一些实施例中,解析所述第一自然语言输入以确定所述第一预标签结果包括基于在所述第一自然语言输入中包括的一个或更多个词来确定命名实体,所述命名实体包括在所述第一自然语言输入中包括的所述一个或更多个词中的至少一个。
[0013] 在一些实施例中,包括所述一个或更多个词的集合中的至少一个词的所述第一串还包括设备或用户相关联的元数据。
[0014] 在一些实施例中,所述至少一个键包括下列项中的一个或更多个:根据在所述第一自然语言输入中包括的所述一个或更多个词识别的命名实体;以及包括在所述第一自然语言输入中包括的所述一个或更多个词中的至少一个词的字串。
[0015] 在一些实施例中,所述缓存器包括一个或更多个键,所述方法还包括通过以下步骤确定所述一个或更多个键:基于设备或用户相关联的元数据来确定对于至少一个先前自然语言输入中的每一个的先前预标签结果,每个先前预标签结果包括一个或更多个词的至少一个串;确定对于所述至少一个先前自然语言输入中的每一个的试验性NLU结果,每个试验性NLU结果包括与相应的自然语言输入相关联的意图、词串或命名实体;以及在所述缓存器中存储一个或更多个键,每个键包括所述先前预标签结果之一和相应的试验性NLU结果。
[0016] 在一些实施例中,解析所述第一自然语言输入以确定所述第一预标签结果包括基于设备或用户相关联的元数据来解析所述第一自然语言输入以确定所述第一预标签结果。
[0017] 在一些实施例中,所述设备或用户相关联的元数据包括与联系人列表或地理位置相关联的元数据。
[0018] 本公开的一个或更多个方面提供了一种系统,该系统包括:至少一个处理器;以及存储指令的至少一个存储器,当指令被至少一个处理器执行时使系统实行一个或更多个步骤。系统可以实行的步骤可以包括:由设备接收包括一个或更多个词的集合的第一自然语言输入;以及解析第一自然语言输入以确定第一预标签结果,该第一预标签结果至少包括包含来自一个或更多个词的集合中的至少一个词的第一串。步骤还可以包括确定第一预标签结果是否对应于存储在缓存器中的至少一个键;如果第一预标签结果对应于存储在缓存器中的至少一个键,则从缓存器检索对应于至少一个键的一个或更多个缓存的NLU结果;以及如果第一预标签结果不对应于存储在缓存器中的至少一个键:基于一个或更多个词的集合来确定与第一自然语言输入相对应的第一NLU结果,该第一NLU结果包括与第一自然语言输入相关联的意图;在缓存器中存储第一NLU结果;以及在缓存器中存储包括第一预标签结果的第一键,该第一键对应于第一NLU结果。
[0019] 在一些实施例中,所述第一预标签结果对应于存储在所述缓存器中的至少一个键,所述指令还使所述系统执行:针对所述第一自然语言输入,基于所述第一预标签结果以及所述一个或更多个缓存的NLU结果来确定最终NLU结果。
[0020] 在一些实施例中,所述第一预标签结果不对应于存储在所述缓存器中的至少一个键,并且其中所述缓存器存储所述第一NLU结果和包括所述第一预标签结果的所述第一键,所述指令还使所述系统执行:接收包括一个或更多个词的第二自然语言输入;解析所述第二自然语言输入以确定第二预标签结果;确定所述第二预标签结果对应于存储在所述缓存器中的所述第一键;以及从所述缓存器中检索所述第一NLU结果。
[0021] 在一些实施例中,解析所述第一自然语言输入以确定所述第一预标签结果包括基于在所述第一自然语言输入中包括的一个或更多个词来确定命名实体,所述命名实体包括在所述第一自然语言输入中包括的所述一个或更多个词中的至少一个。
[0022] 在一些实施例中,所述至少一个键包括下列项中的一个或更多个:根据在所述第一自然语言输入中包括的所述一个或更多个词识别的命名实体;以及包括在所述第一自然语言输入中包括的所述一个或更多个词中的至少一个词的字串。
[0023] 在一些实施例中,所述缓存器包括一个或更多个键,所述指令还使所述系统执行:基于设备或用户相关联的元数据来确定对于至少一个先前自然语言输入中的每一个的先前预标签结果,每个先前预标签结果包括一个或更多个词的至少一个串;确定对于所述至少一个先前自然语言输入中的每一个的试验性NLU结果,每个试验性NLU结果包括与相应的自然语言输入相关联的意图、词串或命名实体;以及在所述缓存器中存储一个或更多个键,每个键包括所述先前预标签结果之一和相应的试验性NLU结果。本公开的一个或更多个方面提供一个或更多个非暂时性计算机可读存储介质,其具有储存在其上的指令,当指令被一个或更多个处理器执行时,可使一个或更多个处理器实行步骤。一个或更多个处理器实行的步骤可以包括:由设备接收包括一个或更多个词的集合的第一自然语言输入;以及解析第一自然语言输入以确定第一预标签结果,该第一预标签结果至少包括包含来自一个或更多个词的集合中的至少一个词的第一串。步骤还可以包括确定第一预标签结果是否对应于存储在缓存器中的至少一个键;如果第一预标签结果对应于存储在缓存器中的至少一个键,则从缓存器检索对应于至少一个键的一个或更多个缓存的NLU结果;以及如果第一预标签结果不对应于存储在缓存器中的至少一个键:基于一个或更多个词的集合来确定与第一自然语言输入相对应的第一NLU结果,该第一NLU结果包括与第一自然语言输入相关联的意图;在缓存器中存储第一NLU结果;以及在缓存器中存储包括第一预标签结果的第一键,该第一键对应于第一NLU结果。
[0024] 在一些实施例中,所述第一预标签结果对应于存储在所述缓存器中的至少一个键,所述指令还使所述一个或更多个处理器执行:针对所述第一自然语言输入,基于所述第一预标签结果以及所述一个或更多个缓存的NLU结果确定最终NLU结果。
[0025] 在一些实施例中,所述第一预标签结果不对应于存储在所述缓存器中的至少一个键,并且其中所述缓存器存储所述第一NLU结果和包括所述第一预标签结果的所述第一键,所述指令还使所述一个或更多个处理器执行:接收包括一个或更多个词的第二自然语言输入;解析所述第二自然语言输入以确定第二预标签结果;确定所述第二预标签结果对应于存储在所述缓存器中的所述第一键;以及从所述缓存器中检索所述第一NLU结果。
[0026] 在一些实施例中,解析所述第一自然语言输入以确定所述第一预标签结果包括基于在所述第一自然语言输入中包括的一个或更多个词来确定命名实体,所述命名实体包括在所述第一自然语言输入中包括的所述一个或更多个词中的至少一个。
[0027] 在一些实施例中,所述至少一个键包括下列项中的一个或更多个:根据在所述第一自然语言输入中包括的所述一个或更多个词识别的命名实体;以及包括在所述第一自然语言输入中包括的所述一个或更多个词中的至少一个词的字串。
[0028] 将利用下面进一步详细讨论的公开的益处来理解这些和附加方面。
[0029] 附图简述
[0030] 可通过参照以下考虑到附图的描述来获得本文描述的方面的更完整的理解和其优势,其中相似的参考数字表示相似的特征,且在附图中:
[0031] 图1描绘了示出根据所公开的方面的示例系统的示意图。
[0032] 图2描绘了示出根据所公开的方面的自然语言理解架构的示例系统和流程过程的示意图。
[0033] 图3描绘了示出根据所公开的方面的没有缓存器的预标记(pre-tagging)结果的示例系统和流程过程的示意图。
[0034] 图4描绘了示出根据所公开的方面的没有缓存器的预标记结果的示例系统和流程过程的示意图。
[0035] 图5描绘了示出根据所公开的方面的没有缓存器的预标记结果的示例系统和流程过程的示意图。
[0036] 图6描绘了示出根据所公开的方面的没有缓存器的预标记结果的示例系统和流程过程的示意图。
[0037] 图7描绘了示出根据所公开的方面的具有缓存器的预标记结果的示例系统和流程过程的示意图。
[0038] 图8描绘了示出根据所公开的方面的具有缓存器的预标记结果的示例系统和流程过程的示意图。
[0039] 图9描绘了示出根据所公开的方面的具有缓存器的预标记结果的示例系统和流程过程的示意图。
[0040] 图10描绘了示出根据所公开的方面的具有缓存器的预标记结果的示例系统和流程过程的示意图。
[0041] 图11描绘了示出根据一个或更多个所公开的方面的示例缓存器和内容的示意图。
[0042] 图12描绘了示出根据一个或更多个所公开的方面的示例缓存器和内容的示意图。
[0043] 图13描绘了示出根据一个或更多个所公开的方面的示例缓存器和内容的示意图。
[0044] 图14描绘了示出根据一个或更多个所公开的方面的示例缓存器和内容的示意图。
[0045] 详细描述
[0046] 在各个实施方式的以下描述中,参考了上面确认的并形成其一部分的附图,并且其中通过说明的方式示出了可以实践本文描述的方面的各种实施方式。应当理解的是,可利用其它实施方式,并且在不脱离本文所描述的范围的情况下,可做出结构和功能的修改。各种方面能够是其它实施方式并能够以各种不同的方式实践或执行。
[0047] 应当理解的是,本文所使用的措辞和术语是出于描述的目的,并且不应被视为限制性的。相反,本文所使用的短语和术语将被给出它们最广泛的解释和含义。“包括(including)”和“包括(comprising)”及其变型的使用意在包含其后列出的项及其等效物以及附加项及其等效物。术语“安装”、“连接”、“耦合”、“定位”、“接合”和类似术语的使用意在包括直接和间接的安装、连接、耦合、定位和接合。
[0048] 图1示出了可用于实现本文描述的一个或更多个说明性方面的网络架构和数据处理设备的一个示例。各个网络节点103、105、107和109可经由诸如互联网的广域网(WAN)101进行互连。还可使用或可选地使用其它网络,包括私有内联网、企业网络、LAN、无线网络、个人网络(PAN)等。网络101是为了说明的目的并且可以用更少或附加的计算机网络来代替。局域网(LAN)可具有任何已知的LAN拓扑中的一个或更多个,并且可使用各种不同协议中的一个或更多个,诸如以太网。设备103、105、107、109和其它设备(未示出)可经由双绞线、同轴电缆、光纤、无线电波或其它通信介质连接到网络中的一个或更多个。
[0049] 设备103、105、107、109可以是自动会话系统,其具有用于与用户进行自动对话过程的多个计算机实现的对话组件。设备103、105、107、109可允许人机对话布置。根据一些方面,设备103、105、107、109可包括多个计算机实现的对话组件,该对话组件可被配置为互相通信并使用语境来缩小理解、识别和/或推理错误。在一些实施方式中,设备103、105、107、109可基于语言线索、对话语境和/或常识来检测和/或解决首语重复。
[0050] 如本文所使用以及附图中所描绘的术语“网络”不仅可以指其中远程存储设备经由一个或更多个通信路径耦合在一起的系统,而且还可以指可不时地耦合到具有存储能力的这样的系统的独立设备。因此,术语“网络”不仅包括“物理网络”,还包括由位于全部物理网络上的归属于单个实体的数据组成的“内容网络”。
[0051] 组件可包括数据服务器103、网络服务器105和客户端计算机107、109。数据服务器103提供对数据库的总体访问、控制和管理,以及用于执行本文描述的一个或更多个说明性方面的控制软件。数据服务器103可连接到网络服务器105,用户根据需要通过网络服务器
105与数据交互并获得数据。可选地,数据服务器103可充当网络服务器本身,并直接地连接到互联网。数据服务器103可通过网络101(例如,互联网)经由直接或间接连接或经由一些其它网络连接到网络服务器105。用户可以使用远程计算机107、109来与数据服务器103进行交互,例如,使用网络浏览器来经由通过网络服务器105托管的一个或更多个外部公开的网站连接至数据服务器103。客户端计算机107、109可与数据服务器103结合使用以访问储存在其中的数据,或可用于其它目的。例如,从客户端设备107,用户可使用如本领域已知的互联网浏览器或通过执行在计算机网络(诸如互联网)上与网络服务器105和/或数据服务器103进行通信的软件应用来访问网络服务器105。
[0052] 服务器和应用可在相同的物理机器上组合,并且保留单独的虚拟或逻辑地址,或可驻留在分离的物理机器上。图1仅示出可以被使用的网络架构的一个示例,并且本领域中的技术人员将认识到,如在本文进一步所描述的,所使用的特定网络架构和数据处理设备可以改变,并且对于它们提供的功能来说是次要的。例如,通过网络服务器105和数据服务器103提供的服务可被组合在单个服务器上。
[0053] 每个组件103、105、107、109可以是任何类型的已知计算机、服务器或数据处理设备。例如,数据服务器103可包括控制速率服务器103的总体操作的处理器111。数据服务器103还可包括RAM 113、ROM 115、网络接口117、输入/输出接口119(例如,键盘、鼠标、显示器、打印机等等)以及存储器121。I/O119可包括用于读取、写入、显示和/或打印数据或文件的各种接口单元和驱动器。存储器121还可存储用于控制数据处理设备103的整体操作的操作系统软件123、用于指示数据服务器103执行本文描述的方面的控制逻辑125以及提供辅助、支持和/或可以或不可以结合本文描述的其他方面使用的其他功能的其它应用软件
127。控制逻辑在本文中还可被称为数据服务器软件125。数据服务器软件的功能可以是基于被编码到控制逻辑中的规则自动做出的、由将输入提供到系统中的用户手动做出的操作或决定,和/或基于用户输入(例如,查询、数据更新等)的自动处理的组合。
[0054] 存储器121还可存储在本文描述的一个或更多个方面的执行中使用的数据,包括第一数据库129和第二数据库131。在一些实施方式中,第一数据库可包括第二数据库(例如,作为单独的表、报告等)。也就是说,根据系统设计,信息可存储在单个数据库中,或被分成不同的逻辑、虚拟或物理数据库。设备105、107、109可以具有与关于设备103所述的类似或不同的架构。本领域的技术人员将认识到,如本文所述的数据处理设备103(或设备105、107、109)的功能可遍布多个数据处理设备,例如,以跨多个计算机而分布处理负载、以基于地理位置、用户访问级别、服务质量(QoS)等隔离事务。
[0055] 本文描述的一个或更多个方面可以体现在由如本文所描述的一个或更多个计算机或其它设备执行的计算机可用或可读数据和/或计算机可执行指令中,诸如在一个或更多个程序模块中。通常,程序模块包括例程、程序、对象、组件、数据结构等,当其被计算机或其它设备中的处理器执行时,执行特定任务或实现特定的抽象数据类型。该模块可以用随后被编译用于执行的源代码编程语言来编写,或可以用诸如(但不限于)HTML或XML的脚本语言来编写。计算机可执行指令可以存储在诸如硬盘、光盘、可移动存储介质、固态存储器、RAM等的计算机可读介质上。如本领域技术人员将认识到的,程序模块的功能可以在各种实施方式中根据需要被组合或分布。此外,功能可整体或部分地体现在固件或硬件等同物中,诸如集成电路、现场可编程门阵列(FPGA)等。特定的数据结构可以被用于更有效地实现一个或更多个方面,并且预期这样的数据结构在本文所描述的计算机可执行指令和计算机可用数据的范围内。
[0056] 本文描述的一个或更多个方面针对自然语言理解。根据所公开的方面,文本样本可以是一个或更多个字(word)和/或词(term)的串。子串可以是串的一个或更多个连续的字,其中字的顺序被保留。文本样本的一个或更多个字可以是下义词(相对低级的概念),其对应于或以其它方式与一个或更多个上义词(相对高级的概念)相关联。本体论可定义在上义词和下义词之间的语义关系。下义词可以是文本样本的单个字或文本样本的多个连续的字。将认识到,在一些实例中,上义词可以是另一个上义词的下义词。例如,“芝加哥”可以是上义词“城市”的下义词,而“城市”又可以是上义词“位置”的下义词。因此,上义词可以是隶属于和/或以其它方式与下义词相关联的类别或标签。附加示例将借助本公开的益处被理解。简单的上义词可以是单个上义词,而复杂的上义词可以是至少两个简单的上义词的连接。复杂的上义词可包括分隔符(如,“&”),其将所连接的简单的上义词分隔。因此,复杂的上义词还可被称为连接的上义词。
[0057] 本文描述的一个或更多个方面针对内部概念映射。内部概念映射可以是将下义词映射到上义词的概念或键-值对的映射。例如,内部概念映射可将城市的名称(下义词)映射到概念“城市”(上义词)。在这个示例中,城市的名称可对应于映射的键,而“城市”的概念可对应于映射的值(如,“纽约”→“城市”)。内部概念映射可包括以下功能:搜索键-值对或概念;添加新的键-值对或概念以及执行本领域的技术人员将认识到的与映射相关联的其它类型的动作。
[0058] 所公开的实施方式可以被配置为在操作中注释文本样本并生成对于文本样本的注释。所公开的实施方式可以被配置为以自动方式或者另外地或可选地响应于从用户接收到的输入(即,以手动方式)来注释文本样本。所公开的实施方式可以被配置为生成对应于文本样本的可能注释的注释候选项的集合。注释候选项的集合可以包括一个或更多个注释候选项,并且可以被称为注释候选项的列表。所公开的实施方式然后可以选择注释候选项中的一个作为对于文本样本的注释。作为对于文本样本的注释的注释候选项的选择可以被自动执行,或者可以响应于从用户接收到的输入来执行。所公开的实施方式可以例如被配置为向命名的实体分配注释。所公开的实施方式可以基于与文本样本的n元(n-grams)相关联的上义词来生成注释候选项的列表。所公开的实施方式可以至少部分地基于内部概念映射、本体论、外部语言资源或其组合来确定与文本样本的n元相关联或以其他方式对应于文本样本的n元的上义词。
[0059] 根据一些方面,一些概念可以是上义词和下义词二者。例如,“JFK纽约”概念可以是“位置”概念的下义词,其又可以是“机场城市”概念的下义词。所公开的实施方式可以基于由本体论定义的关系来生成该注释。所公开的实施方式可以通过基于所识别的命名实体、内部概念映射、本体论和键-值对将“JFK”与“机场”以及“纽约”与“城市”关联来生成注释(例如,“从机场城市飞”而不是“从JFK飞”)。
[0060] 本公开的方面可利用语言资源,诸如可定义概念之间的语义关系的数据库。例如,外部语言资源因此可以是诸如例如WordNet的词汇数据库。外部语言资源的其它示例包括能够提供词典编辑数据的字典,例如维基词典。语法构造系统可向外部语言资源提交请求,例如超文本传输协议(HTTP)请求,并在响应(如,HTTP响应)中接收结果。
[0061] 所公开的实施方式可经由在例如设备103、105、107、109上的应用来实现。例如,应用可以是基于语音的个人辅助应用,诸如SIRI、NINA、Dragon Mobile Assistant等。这样的个人辅助应用可以在其中被实现的应用的示例可以包括基于文本消息的应用(例如,SMS、TMS)、电子邮件应用、网络浏览器、字处理应用和/或任何基于文本或基于语音的应用。
[0062] 以下段落列出了可用于描述本文公开的一个或更多个特征的示例首字母缩写词。
[0063] ASR自动语音识别引擎
[0064] PT预标记引擎
[0065] NLU自然语言理解引擎
[0066] VR可变解析器
[0067] NE命名实体
[0068] QI查询意图
[0069] 图2是可以实现本文所述的一个或更多个特征的说明性系统200。系统200可以是自动会话系统,其具有用于与用户或设备进行自动对话过程的多个计算机实现的对话组件。系统200可允许人机对话布置。根据一些方面,该布置可包括多个计算机实现的对话组件,该对话组件可被配置为互相通信并使用语境来缩小理解、识别和/或推理错误。在一些实施方式中,系统可基于语言线索、对话语境和/或常识来检测和/或解决首语重复。系统200的组件可以与如图1所示的系统100的组件类似和/或相同。系统200的组件可以位于系统100的一个或更多个组件(诸如设备103、105、107、109上或位于其处。系统200的组件可以经由一个或更多个网络(例如,LAN、WAN等)连接。
[0070] 系统200可以包括输入设备201,其可以是例如麦克风、键盘、鼠标、触摸显示器、运动传感器、照相机等。根据一些方面,输入设备201可以向人类用户(或能够输入/产生语音/字输入的其他实体/设备)传送输出提示,并且可以接收包括来自用户的语音输入的对话输入。输入设备201可以驻留在诸如移动设备、膝上型计算机、嵌入式平台等的计算设备上。输入设备201可以显示用户界面,提供/接收触摸输入等。
[0071] 系统200可以包括自动语音识别(ASR)引擎202,其可以是系统200的软件和/或硬件组件,并且可以处理输入(例如,语音和/或文本输入)以确定代表性文本字的相应序列。例如,ASR 202可以产生语音输入的一个或更多个基于文本的转录或查询,该语音输入可以由一个或多个词、字、数字或其他文本组成。
[0072] 系统200可以包括预标记(PT)引擎204,其可以对转录或查询执行预处理/预标记。PT 204可以利用/处理可存储在数据库中和/或设备上的设备和/或用户元数据。例如,PT 
204可以解析一串字(例如,使用语法、命名实体处理和/或内部概念处理)来确定在串中的字中的任一个是否与用户元数据中的任一个(诸如在联系人列表(例如,存储在数据库中,诸如下面更详细地讨论的数据库214)中的名字)匹配。因此,如果用户声明/输入“呼叫妈妈”,则PT 204可以解析声明“呼叫妈妈”以确定妈妈是否在用户的联系人列表中。在这种情况下,PT 204可以在字的查询中将“妈妈”识别为命名实体。根据一些方面,PT 204可以用更广泛的类别来注释所识别的命名实体。在这种情况下,“妈妈”可能是一个下义词,“本地_联系人”或“用户_联系人”可能是下义词“妈妈”的上义词。因此,预标记结果可以包括“呼叫[本地_联系人]”的所解析的串和[本地_联系人=“妈妈”]的命名实体。PT204还可以执行其他操作,诸如信息检索、句法分析等。下面将更详细地讨论预标记。
[0073] 系统200可以包括一个或更多个缓存器206,其可以是储存存储器和/或设备,其可以用于存储由PT 204输出的结果和由自然语言理解(NLU)引擎208(下面讨论的)输出的结果。缓存器206可以将由PT 204输出的结果存储为键,并且可以将由NLU 208输出的结果存储为对于这些键的对应值。每个键可以对应于一个值,并且每个值可以对应于一个键。这些键和值可以例如存储在表中。缓存器206可以是全局缓存器,使得多个设备可以从缓存器206检索信息和/或发送信息。例如,缓存器206可以位于远程位置处,诸如服务器场和/或企业场所处。缓存器206也可以在本地被定位,诸如在用户设备上。例如,本地缓存器可以被在其上定位缓存器的用户设备访问。缓存器206还可以是本地和远程的(例如,一个或更多个本地缓存器和一个或更多个远程缓存器)。缓存器206可以是可配置的和/或老化的。例如,元素和/或条目(例如,键和值)可以被配置为在某个时间处和/或在某个时间段(其可以被预先确定或动态地确定)之后超时和/或到期。例如,条目可能在一天或几个小时后过期,但也可以根据该条目被使用的次数或与该条目相关联的使用频率来延长。在另一示例中,可以用键和/或值预先配置缓存器206,使得可以将键和/或值添加到缓存器206。根据一些方面,可以存在多个缓存器206,其可以将由PT 204输出的多个结果存储为键,并且可以将由NLU 208输出的多个结果存储为对于这些键的对应值。
[0074] 系统200可以包括自然语言理解(NLU)引擎208,其可以是系统200的软件和/或硬件组件,并且可以处理文本字的查询以确定对于每个语义解释的结果。例如,NLU 208可以解析查询并且可以为查询中的每一个产生一个或更多个语义解释。NLU 208可以解决可能存在于语义解释中的任何首语重复。NLU 208可以产生可以包括查询意图的结果,其可以识别从用户接收到的字的查询的意图。每个查询可能有一个查询意图。在用户声明“呼叫妈妈”并且妈妈在用户的联系人列表上的上述示例中,NLU 208可以确定输入“呼叫妈妈”的查询意图可以是“拨打:联系人”。NLU208可以确定这个意图是因为妈妈在用户的联系人列表上,并且字“呼叫”的处理可能对应于拨号的意图。根据一些方面,如果NLU 208将意图确定为拨打:联系人,则应用可以发起对联系人(例如,妈妈)的呼叫。因此,查询意图可以对应于被访问/控制的应用(例如,诸如SIRI、NINA、Dragon Mobile Assistant等的个人辅助应用)的特定行为。根据一些方面,在NLU 208确定查询意图之后,应用可以在发起行动之前呈现与用户可以从中选择的查询意图相对应的项目列表,诸如要呼叫的企业列表。根据一些方面,确定查询意图可能消耗大量处理资源(例如,在计算上昂贵)。NLU结果还可以包括命名实体,其可以是可表示由查询意图指定的行动的目标的查询的片段(例如,查询的一个或更多个字)。在上述示例中,“本地_联系人”可以是命名实体,因为“本地_联系人”是其中“拨号:联系人”针对的实体。根据一些方面,NLU 208可以对于每个查询或对于多个查询生成命名实体的列表。NLU结果还可以包括解析结构,其可以确定命名实体被嵌入其中的查询的结构。
[0075] 系统200可以包括可变解析器(VR)210。VR 210可以获得来自PT 204的预标签结果和/或来自NLU 208的NLU结果,并且可以解决包含在每个结果中的信息以产生最终NLU结果。类似于由NLU 208生成的NLU结果,最终NLU结果可以包括查询意图、命名实体和解析。在用户输入“呼叫妈妈”且妈妈在用户的联系人列表中的上述示例中,PT结果可以包括:解析=“呼叫[本地_联系人]”、命名实体(NE)=[本地_联系人=“妈妈”]。NLU结果可以包括:QI=拨号:联系人,解析=“呼叫[联系人]”、NE=[联系人=本地_联系人]。在这样的示例中,VR 210可以使用本地_联系人=“妈妈”来解决联系人=本地_联系人。因此,VR 210可以产生QI=拨号:联系人,解析=“呼叫[联系人]”,NE=[联系人=“妈妈”]的最终NLU结果。在VR210确定最终NLU结果之后,应用可以执行与最终NLU结果相关联的行动,其可以基于最终NLU结果的QI。在上述示例中,应用可以向“妈妈”联系人(例如,经由电话应用)发起电话呼叫(例如,拨号)。
[0076] 系统200可以包括输出设备212,其可以是例如显示设备、扬声器等。输出设备212可以显示在列表中的一个或更多个最终NLU结果。根据一些实施方式,用户可以选择要实现的这些最终NLU结果之一。例如,输出设备212可以向用户呈现企业及其电话号码的列表。
[0077] 系统200可以包括可以存储诸如与设备或用户相关联的元数据的信息的数据库214。可以由可能拥有、控制应用和/或以其他方式与应用相关联的实体(例如,计算设备、个人、企业、公司和/或组织)收集(例如,在以前)该信息(元数据)。每当用户根据所公开的方面使用应用(例如,个人辅助应用)时,该信息可以由服务器214和/或数据库214记录和/或传送到服务器214和/或数据库214。该信息可以包括联系人列表、收藏列表(例如,喜爱的网站、电话号码、应用、餐馆、企业、位置等)、设备或用户的地理位置、音乐列表(例如,可以存储在设备上和/或由设备链接的音乐)、视频列表(例如,可以存储在设备上和/或由设备链接的视频)、媒体列表(例如,可以存储在设备上和/或由设备链接的媒体)等。该信息可以定期地被更新,诸如每当用户或设备更新歌曲的播放列表或将联系人添加到联系人列表时。
[0078] 根据一些方面,对话管理器可以生成输出提示和/或对语义解释作出响应,以便管理与人类用户的对话过程。对话组件可以使用公共上下文共享机制彼此共享上下文信息,使得每个对话组件的操作反映可用的上下文信息。
[0079] 图3-6示出了根据本文所述的一个或更多个特征的示例系统和过程流程。例如,图3-6所示的系统和过程可针对执行一个或更多个所公开的方面,而不需要缓存器,诸如缓存器206。图3-6中示出的过程可以按顺序次序执行,使得一个过程可以在另一个过程之后发生。在一个或更多个实施方式中,图3-6中示出的过程和/或其一个或更多个步骤可以由诸如设备103、105、107和/或109的计算设备执行。在其它实施方式中,图3-6中示出的过程和/或其一个或更多个步骤可以体现在计算机可执行指令中,该计算机可执行指令存储在诸如非暂时性计算机可读存储器的计算机可读介质中。图3-6中的所公开步骤中的任一个(和/或本文中的相关联描述)可以被省略、以除了所列举的次序之外的次序执行、重复和/或组合。
[0080] 图3示出了说明根据本文所描述的一个或更多个特征的过程流程301的示例系统300。系统300可以是自动会话系统,其可以类似于、相同于或者包括系统200或其部分。例如,系统300可以包括输入设备和ASR(未示出)、PT 204、NLU 208、VR 210和数据库214(其可以包括元数据)。过程301可以利用系统300的一个或更多个组件来实现。过程301可以被实现用于用户A和/或与用户A相关联的设备。
[0081] 过程301可以以步骤302开始,其中PT 204可以从数据库214检索和/或访问信息。该信息可以包括来自用户(例如,用户A)和/或设备(例如,与用户A相关联的设备,诸如设备
103、105、107和/或109)的以前和/或当前正由数据库214存储/检索的任何元数据。如图3所示,该信息可以包括联系人列表,其可以包括对于在联系人列表上列出的每个联系人的各种类型的信息,诸如姓名、电话号码、电子邮件地址、物理地址/位置、头衔名称(handle name)等。根据一些方面,数据库214可以是服务器或其他计算系统的一部分。根据一些方面,数据库214可以存储在远离设备(或用户)的地点处,诸如在公司服务器中。根据一些方面,数据库可以存储在设备的本地存储器中。在一个示例中,PT 204可以使用用户或设备ID从数据库214检索诸如联系人姓名和/或电话号码的信息。例如,存储在数据库214中的信息可以根据用户和/或设备被存储,并且PT 204可以使用用户ID或设备ID检索与用户和/或设备相关联的信息(例如,元数据)。如3图所示,用户A的联系人列表可以包括家得宝、鲍勃和妈妈的联系人。
[0082] 在步骤304处,PT 204可以检索可由一个或更多个词、字、数字等组成的输入或查询。该输入可以由ASR(诸如ASR 202)发送。例如,可以经由语音识别得出查询,其中语音输入可以被译成文本。根据一些方面,输入可以由输入设备或其他计算设备发送。根据一些方面,输入可以是基于文本的输入。如图3所示,在该示例中的输入可以包括查询“呼叫家得宝”。
[0083] 在步骤306处,在接收到输入之后,PT 204可以分析查询。例如,PT204可以使用内部概念映射来确定查询中的一个或更多个命名实体。这些命名实体可被格式化为上义词和/或下义词。例如,使用来自数据库214的信息/元数据,PT 204可以实现命名实体识别算法,以确定查询包含一个或更多个词(例如,命名实体),其可以对应于(例如,匹配)与用户A相关联的数据库(例如,用户A的联系人列表中的联系人)。在这种情况下,用户可以具有被编程到他的电话内的在本地家得宝处工作的用户的妻子的电话号码,并且可以在他的联系人列表中将电话号码只标记为“家得宝”。在该示例中,PT 204可以确定查询内的命名实体是“家得宝”。PT 204还可以确定这个所识别的命名实体(或其某个部分)在用户A的联系人列表中。PT 204然后可以将这个所识别的命名实体(家得宝)与匹配源(本地联系人)相关联。根据一些方面,命名实体可以是源的下义词,使得源可以识别对于命名实体的类别。然后,PT 204可以产生和/或存储对于在结果355中的命名实体的值。例如,结果355可以包括NE=[本地_联系人=“家得宝”]的数据结果。根据一些方面,PT 204可以在数据库214中搜索可对应和/或匹配所识别的命名实体的全部或一部分的任何元数据(例如,经由串匹配算法)。PT 204还可以通过使用串匹配和/或基于语法的方法来处理查询(例如,语法和/或库存可以从用户的元数据中导出)。例如,PT 204可以确定解析结构,其可以确定命名实体被嵌入其中的查询的结构。例如,对于输入“呼叫家得宝”,PT 204可以确定命名实体“家得宝”在用户A的联系人列表上,并且可以用相关联的下义词和/或类别(例如,本地_联系人)代替(例如,注释,如上所讨论的)在查询中的命名实体。因此,结果355也可以包括解析=“呼叫[本地_联系人]”的数据结果。
[0084] 在步骤308处,可将结果355和/或原始查询(例如,来自步骤304)发送到NLU 208。在步骤310处,NLU 208可以处理文本字的查询以确定结果365。该结果365可以包括命名实体项、解析项和查询意图项。例如,NLU 208可以为查询“呼叫[本地_联系人]”确定命名实体,该查询是结果355中的解析项。NLU 208可以确定命名实体是“本地_联系人”,且然后可以确定对于该命名实体的类别和/或上义词。在这种情况下,“本地_联系人”可以是上义词“联系人”的下义词。根据一些方面,上义词联系人可以具有一个或更多个其他的下义词,诸如远程_联系人(例如,可能不存储在用户A的电话上的联系人)。因此,结果365可以包括NE=[联系人=本地_联系人]的数据结果。NLU 208可以确定解析结构,其可以确定命名实体被嵌入其中的查询的结构。例如,对于输入“呼叫[本地_联系人”,NLU 208可以确定命名实体“[本地_联系人]”在联系人的类别中,并且可以用相关联的下义词和/或类别(例如,联系人)代替(例如,注释,如上所讨论)查询中的命名实体。因此,结果365也可以包括解析=“呼叫[联系人]的数据结果。NLU 208还可以确定查询意图。例如,字“呼叫”的自然语言处理可对应于拨号的意图,并且因为NLU 208已经将命名实体识别为“联系人”,所以结果365可以包括“拨号:联系人”的查询意图。根据一些方面,确定查询意图或任何其他注释可能消耗大量处理资源(例如,在计算上昂贵)。
[0085] 在步骤312处,NLU 208可以将结果365发送到VR 210,并且在步骤314处,PT 204可以将结果355发送到VR 210。然后,在步骤316处,VR210可以解决包含在每个结果中的信息以产生最终NLU结果475,其可以包括查询意图、命名实体和解析。如图3所示,PT结果355可以包括:解析=“呼叫[本地_联系人]”、命名实体(NE)=[本地_联系人=“家得宝”]。NLU结果365可以包括:QI=拨号:联系人,解析=“呼叫[联系人]”、NE=[联系人=本地_联系人]。在这样的示例中,VR 210可以用本地_联系人=“家得宝”来解决联系人=本地_联系人。因此,VR 210可以产生QI=拨号:联系人,解析=“呼叫[联系人]”,NE=[联系人=“家得宝”]的最终NLU结果375。
[0086] 图4示出了说明根据本文所描述的一个或更多个特征的过程流程401的示例系统400。系统400可以是可类似于、相同于、或包括系统200和/或300或其部分的自动会话系统。
例如,系统400可以包括输入设备和ASR(未示出)、PT 204、NLU 208、VR 210和数据库214(其可以包括元数据)。过程401可以用系统400的一个或更多个组件来实现。可以为用户B和/或与用户B相关联的设备实现过程401。
[0087] 过程401可以以步骤402开始,其中PT 204可以从数据库214检索和/或访问信息。该信息可以包括来自用户(例如,用户B)和/或设备(例如,与用户B相关联的设备,诸如设备
103、105、107和/或109)的以前和/或当前正由数据库214存储/检索的任何元数据。如图4所示,该信息可以包括联系人列表,其可以包括在联系人列表上列出的每个联系人的各种类型的信息,诸如姓名、电话号码、电子邮件地址、物理地址/位置、头衔名称等。在一个示例中,PT 204可以使用用户或设备ID从数据库214检索诸如联系人姓名和/或电话号码的信息。例如,存储在数据库214中的信息可以根据用户和/或设备被存储,并且PT 204可以使用用户ID或设备ID检索与用户和/或设备相关联的信息(例如,元数据)。如图4所示,用户B的联系人列表可以包括为玛丽、鲍勃和妈妈的联系人。
[0088] 在步骤404处,PT 204可以检索可由一个或更多个词、字、数字等组成的输入或查询。该输入可以由ASR(诸如ASR 202)发送。根据一些方面,输入可以是基于文本的输入。如图4所示,该示例中的输入可以包括查询“呼叫家得宝”。根据一些方面,图4所示的PT 204可以是与图3所示相同的PT 204。例如,用户A和用户B可以操作同一设备,但是可以单独地登录到设备,使得每当该用户登录时PT 204从数据库214检索与相应用户相关联的信息。根据一些方面,图4中的PT 204可以是如图3所示的单独的PT 204。例如,用户A可以操作可包括第一PT 204的第一设备,并且用户B可以操作可包括第二PT 204的第二设备。类似地,系统400的其他组件(例如,NLU 208、VR 210、数据库214等)可以与系统300的一个或更多个组件相同或分离。
[0089] 在步骤406处,在接收到输入之后,PT 204可以分析查询。例如,PT204可以使用内部概念映射来确定查询中的一个或更多个命名实体。这些命名实体可被格式化为上义词和/或下义词。例如,使用来自数据库214的信息/元数据,PT 204可以实现命名实体识别算法,以确定该查询包含可能不对应于(例如,不匹配)与用户B相关联的数据库中的信息的一个或更多个词(例如,命名实体)。在该示例中,PT 204可以确定“家得宝”可能不对应于用户B的联系人列表中的联系人。因为没有命名实体与用户B的联系人列表匹配,所以结果455中的NE词为空(NE=[])。结果455还可以包括解析=“呼叫家得宝”的数据结果,因为可能由于在用户B的联系人列表中没有匹配而没有执行任何注释。
[0090] 在步骤408处,可将结果455和/或原始查询(例如,来自步骤404)发送到NLU 208。在步骤410处,NLU 208可以处理文本字的查询以确定结果465。该结果465可以包括命名实体项、解析项和查询意图项。例如,NLU 208可以为查询“呼叫家得宝”确定命名实体,该查询是结果455中的解析项。NLU 208可以确定命名实体是“家得宝”,然后可以确定该命名实体的类别和/或上义词。在这种情况下,“家得宝”可能是上义词“企业”的下义词。因此,结果
465可以包括NE=[企业=“家得宝”]的数据结果。NLU208可以确定解析结构,其可以确定命名实体被嵌入其中的查询的结构。例如,对于输入“呼叫家得宝”,NLU 208可以确定命名实体“家得宝”是在企业的类别中,并且可以用相关联的下义词和/或类别(例如,企业)代替(例如,注释,如上所讨论的)在查询中的命名实体。因此,结果465还可以包括解析=“呼叫[企业]”的数据结果。NLU 208还可以确定查询意图。例如,字“呼叫”的自然语言处理可能对应于拨号的意图,并且因为NLU 208已将该命名实体识别为“企业”,所以结果465可以包括“拨号:企业”的查询意图。在这种情况下,NLU 208可以查看诸如黄页的电话簿,或者在互联网上查看以确定对于这样的企业(例如,本地家得宝)的电话号码。根据一些方面,确定查询意图可能消耗大量处理资源(例如,在计算上昂贵)。
[0091] 在步骤412处,NLU 208可以将结果465发送到VR 210,并且在步骤414处,PT 204可将结果455发送到VR 210。在步骤416处,VR 210然后可以解决包含在每个结果中的信息以产生最终NLU结果475,其可以包括查询意图、命名实体和解析。如图4所示,因为结果455中没有NE项,所以最终NLU结果475可以与结果465相同。
[0092] 图5示出了说明根据本文所描述的一个或更多个特征的过程流程501的示例系统500。系统500可以是可以类似于、相同于、或包括系统200和/或300或其部分的自动会话系统。例如,系统500可以包括输入设备和ASR(未示出)、PT 204、NLU 208、VR 210和数据库214(其可以包括元数据)。过程501可以利用系统300的一个或更多个组件来实现。可以为用户C和/或与用户C相关联的设备来实现过程501。过程501非常类似于过程301,区别在于用户的联系人列表包含家得宝、妻子和学校。因为输入/查询(呼叫家得宝)与过程301中的相同并且用户C的联系人列表包含“家得宝”,所以过程501的步骤(步骤502、504、508、510、512、514和516)可以与过程301的步骤(步骤302、304、308、310、312、314和316)实质上类似和/或相同。此外,结果555、556和575可以与结果355、365和375实质上相似和/或相同。根据一些方面,图5所示的PT 204可以是与图3所示的相同的PT 204。例如,用户A和用户C可以操作同一设备,但是可以单独地登录到设备,使得每当该用户登录时PT 204从数据库214检索与相应用户相关联的信息。根据一些方面,图5中的PT 204可以是如图3所示的单独PT 204。例如,用户A可以操作可包括第一PT 204的第一设备,并且用户C可以操作可包括第二PT 204的第二设备。类似地,系统500的其他组件(例如,NLU 208、VR 210、数据库214等)可以与系统300的一个或更多个组件相同或分离。
[0093] 图6示出了说明根据本文所描述的一个或更多个特征的过程流程601的示例系统600。系统600可以是可以类似于、相同于或者包括系统200和/或300或其部分的自动会话系统。例如,系统600可以包括输入设备和ASR(未示出)、PT 204、NLU 208、VR 210和数据库214(其可以包括元数据)。过程601可以用系统600的一个或更多个组件来实现。可以为用户D和/或与用户D相关联的设备实现过程601。过程601非常类似于过程401,不同之处在于用户的联系人列表可能不包含任何联系人。因为输入/查询(呼叫家得宝)与过程401中的相同并且用户D的联系人列表可能不包含“家得宝”,所以过程601的步骤(步骤602、604、608、610、
612、614和616)可以与过程401的步骤(步骤402、404、408、410、412、414和416)实质上类似和/或相同。此外,结果655、665和675可以实质上与结果455、465和475相似和/或相同。根据一些方面,图6所示的PT 204可以是与图3所示相同的PT 204。例如,用户A和用户D可以操作同一设备,但是可以单独地登录到设备,使得每当该用户登录时PT 204从数据库214检索与相应用户相关联的信息。根据一些方面,图6中的PT 204可以是如图3所示的单独PT 204。例如,用户A可以操作可包括第一PT 204的第一设备,并且用户D可以操作可包括第二PT 204的第二设备。类似地,系统600的其他组件(例如,NLU 208、VR 210、数据库214等)可以与系统300的一个或更多个组件相同或分离。
[0094] 图7-10示出了根据本文所描述的一个或更多个特征的示例系统和过程流程。例如,图7-10所示的系统和过程可以针对执行有缓存器(诸如缓存器206)的一个或更多个所公开的方面。图7-10所示的过程可以按顺序的次序执行,使得一个过程可以在另一个过程之后出现。在一个或更多个实施方式中,在图7-10中示出的过程和/或其一个或更多个步骤可以由诸如设备103、105、107和/或109的计算设备执行。在其它实施方式中,在图7-10中示出的过程和/或其一个或更多个步骤可以体现在计算机可执行指令中,该计算机可执行指令存储在诸如非暂时性计算机可读存储器的计算机可读介质中。图7-10中的所公开的步骤中的任一个(和/或本文中的相关联的描述)可以被省略、以除了所列举的次序之外的次序执行、重复和/或组合。
[0095] 图7示出了说明根据本文所描述的一个或更多个特征的过程流程701的示例系统700。系统700可以是可以类似于、相同于或者包括系统200或其部分的自动会话系统。例如,系统700可以包括输入设备和ASR(未示出)、PT 204、缓存器206、NLU 208、VR 210和数据库
214(其可以包括元数据)。过程701可以利用系统700的一个或更多个组件来实现。可以为用户A和/或与用户A相关联的设备实现过程701。
[0096] 过程701可以以步骤702开始,其中PT 204可以从数据库214检索和/或访问信息。该信息可以包括来自用户(例如,用户A)和/或设备(例如,与用户A相关联的设备,诸如设备
103、105、107和/或109)的以前和/或当前正由数据库214存储/检索的任何元数据。如图7所示,该信息可以包括联系人列表,其可以包括在联系人列表上列出的每个联系人的各种类型的信息,诸如姓名、电话号码、电子邮件地址、物理地址/位置、头衔名称等。根据一些方面,数据库214可以是服务器或其他计算系统的一部分。根据一些方面,数据库214可以存储在远离设备(或用户)的地点处,诸如在公司服务器中。根据一些方面,数据库可以存储在设备的本地存储器中。在一个示例中,PT 204可以使用用户或设备ID从数据库214检索诸如联系人姓名和/或电话号码的信息。例如,存储在数据库214中的信息可以根据用户和/或设备存储,并且PT 204可以使用用户ID或设备ID检索与用户和/或设备相关联的信息(例如,元数据)。如图7所示,用户A的联系人列表可以包括家得宝、鲍勃和妈妈的联系人。
[0097] 在步骤704处,PT 204可以检索可由一个或多个词、字、数字等组成的输入或查询。该输入可以由ASR(诸如ASR 202)发送。例如,可以经由语音识别得出查询,其中语音输入可以被译成文本。根据一些方面,输入可以由输入设备或其他计算设备发送。根据一些方面,输入可以是基于文本的输入。如图7所示,该示例中的输入可以包括查询“呼叫家得宝”。
[0098] 在步骤706处,在接收到输入之后,PT 204可以分析查询。例如,PT204可以使用内部概念映射来确定查询中的一个或更多个命名实体。这些命名实体可被格式化为上义词和/或下义词。例如,使用来自数据库214的信息/元数据,PT 204可以实现命名实体识别算法,以确定查询包含一个或更多个词(例如,命名实体),其可以对应于(例如,匹配)与用户A相关联的数据库中的信息(例如,用户A的联系人列表中的联系人)。在这种情况下,用户可以具有被编程到他的电话的、在本地家得宝工作的用户的妻子的电话号码,并且可以在他的联系人列表中将电话号码只标记为“家得宝”。在该示例中,PT 204可以确定查询内的命名实体是“家得宝”。PT 204还可以确定这个所识别的命名实体(或其某个部分)在用户A的联系人列表中。PT 204然后可以将这个所识别的命名实体(家得宝)与匹配源(本地联系人)相关联。根据一些方面,命名实体可以是源的下义词,使得源可以识别命名实体的类别。PT 204然后可以在结果755中产生和/或存储对于命名实体的值。例如,结果755可以包括NE=[本地_联系人=“家得宝”]的数据结果。根据一些方面,PT 204可以在数据库214中搜索可以对应和/或匹配所识别的命名实体的全部或一部分的任何元数据(例如,经由串匹配算法)。PT 204还可以通过使用串匹配和/或基于语法的方法来处理查询(例如,语法和/或库存可以从用户的元数据导出)。例如,PT 204可以确定解析结构,其可以确定命名实体被嵌入其中的查询的结构。例如,对于输入“呼叫家得宝”,PT 204可以确定命名实体“家得宝”在用户A的联系人列表上,并且可以用相关联的下义词和/或类别(例如,本地联系人)代替(例如,注释,如上所讨论的)在查询中的命名实体。因此,PT结果755还可以包括解析=“呼叫[本地_联系人]”的数据结果。
[0099] 在步骤708处,PT 204可以将PT结果755发送到缓存器206。在步骤710处,缓存器206可以分析结果755以确定结果755的一部分或全部是否对应于和/或匹配位于缓存器206中的任何条目或键。缓存键可以是存储在缓存器中的条目,其对应于NLU结果。根据一些方面,NLU结果可以是部分NLU结果。例如,完整的NLU结果可以由A和B两部分组成。在这种情况下,缓存键可以对应于A和B、仅仅A或者仅仅B。缓存键可以具有与PT结果的形式/格式相似的形式/格式。下面将更详细地描述缓存键。根据一些方面,在步骤710处,缓存器206可以是空的或者以其他方式不包含与结果755(例如,缓存器未命中)对应和/或匹配的缓存键,并且因此由缓存器206在步骤710处产生的缓存结果760可能是空的。
[0100] 在步骤712处,结果755和/或原始查询(例如,来自步骤704)可被发送到NLU 208。在步骤714处,NLU 208可以处理文本字的查询以确定结果765。该结果765可以包括命名实体项、解析项和查询意图项。例如,NLU 208可以为查询“呼叫[本地_联系人]”确定命名实体,该查询是结果755中的解析项。NLU 208可以确定命名实体是“本地_联系人”,且然后可以确定对于该命名实体的类别和/或上义词。在这种情况下,“本地_联系人”可以是上义词“联系人”的下义词。根据一些方面,上义词联系人可以具有一个或更多个其他的下义词,诸如远程_联系人(例如,可能不存储在用户A的电话上的联系人)。因此,结果765可以包括NE=[联系人=本地_联系人]的数据结果。NLU 208可以确定解析结构,其可以确定命名实体被嵌入其中的查询的结构。例如,对于输入“呼叫[本地_联系人”,NLU 208可以确定命名实体“[本地_联系人]”在联系人的类别中,并且可以用相关联的下义词和/或类别(例如,联系人)代替(例如,注释,如上所讨论的)查询中的命名实体。因此,结果765还可以包括解析=“呼叫[联系人]的数据结果。NLU 208还可以确定查询意图。例如,字“呼叫”的自然语言处理可能对应于拨号的意图,并且因为NLU 208已将命名实体识别为“联系人”,所以结果765可以包括“拨号:联系人”的查询意图。根据一些方面,确定查询意图可能消耗大量处理资源(例如,在计算上昂贵)。
[0101] 在步骤716处,NLU 208然后可以将结果765发送到缓存器206。然后,缓存器206可以将结果765存储为对应于特定键的值。该特定键可以是PT结果755。这个的示例可以在图11中示出,图11示出了可以在步骤716之后描述缓存器206的内容的示例键/值表1100。如图
11所示,表1100可以包含存储一个或更多个键的键列1102和存储一个或更多个值的值列
1104。每个键可以对应于一个值,并且每个值可以对应于一个键。例如,如图11所示,第一条目包括包含结果755的键和包含结果765的值。因此,对于此条目,结果755对应于765。因此,每当PT结果与条目的键1102匹配和/或对应时,取代、代替或除了试验性的NLU结果以外,还可以根据所公开的方面来检索和/或使用相应的值1104。根据一些方面,键可以对应于多个值,和/或值可以对应于一个或更多个键。这将在下面被更详细地描述。
[0102] 在步骤718处,NLU 208可以将结果765发送到VR 210,并且在步骤720处,PT 204可以将结果755发送到VR 210。在步骤722处,VR 210然后可以解决包含在每个结果中的信息以产生最终NLU结果775,其可以包括查询意图、命名实体和解析。如图7所示,PT结果755可以包括:解析=“呼叫[本地_联系人]”、命令实体(NE)=[本地_联系人=“家得宝”]。NLU结果765可以包括:QI=拨号:联系人,解析=“呼叫[联系人]”、NE=[联系人=本地_联系人]。在这样的示例中,VR 210可以用本地_联系人=“家得宝”来解决联系人=本地_联系人。因此,VR 210可以产生QI=拨号:联系人,解析=“呼叫[联系人]”,NE=[联系人=“家得宝”]的最终NLU结果775。
[0103] 图8示出了说明根据本文所描述的一个或更多个特征的过程流程801的示例系统800。系统800可以是可以类似于、相同于或者包括系统200和/或700或其部分的自动会话系统。例如,系统800可以包括输入设备和ASR(未示出)、PT 204、缓存器206、NLU 208、VR 210和数据库214(其可以包括元数据)。过程801可以用系统800的一个或更多个组件来实现。过程801可以被实现用于用户B和/或与用户B相关联的设备。关于图8,过程701可以在图8所示的过程801之前发生。因此,相对于图8所示的过程801的NLU缓存器206的状态可以如图11所述和所示。本领域中的普通技术人员将认识到,过程801可以不紧接着在过程701之后发生。
例如,过程801可以在一个或更多个查询(例如,5、100、50000个等查询)之后发生。
[0104] 过程801可以以步骤802开始,其中PT 204可以从数据库214检索和/或访问信息。该信息可以包括来自用户(例如,用户B)和/或设备(例如,与用户B相关联的设备,诸如设备
103、105、107和/或109)的以前和/或当前正由数据库214存储/检索的任何元数据。如图8所示,该信息可以包括联系人列表,其可以包括在联系人列表上列出的每个联系人的各种类型的信息,诸如姓名、电话号码、电子邮件地址、物理地址/位置、头衔名称等。在一个示例中,PT 204可以使用用户或设备ID从数据库214检索诸如联系人姓名和/或电话号码的信息。例如,存储在数据库214中的信息可以根据用户和/或设备被存储,并且PT 204可以使用用户ID或设备ID检索与用户和/或设备相关联的信息(例如,元数据)。如图8所示,用户B的联系人列表可以包括玛丽、鲍勃和妈妈的联系人。根据一些方面,图8中的PT 204可以是如图7所示的单独PT 204。例如,用户A可以操作可以包括第一PT 204的第一设备,并且用户B可以操作可以包括第二PT 204的第二设备。类似地,系统800的其他组件(例如,缓存器、
206、NLU 208、VR 210、数据库214等)可以与系统700的一个或更多个组件相同或分离。
[0105] 在步骤804处,PT 204可以检索可由一个或更多个词、字、数字等组成的输入或查询。该输入可以由ASR(诸如ASR 202)发送。根据一些方面,输入可以是基于文本的输入。如图8所示,该示例中的输入可以包括查询“呼叫家得宝”。
[0106] 在步骤806处,在接收到输入之后,PT 204可以分析查询。例如,PT204可以使用内部概念映射来确定查询中的一个或更多个命名实体。这些命名实体可被格式化为上义词和/或下义词。例如,使用来自数据库214的信息/元数据,PT 204可以实现命名实体识别算法,以确定该查询包含可能不对应于(例如,不匹配)与用户B相关联的数据库中的信息的一个或更多个项(例如,命名实体)。在该示例中,PT 204可以确定“家得宝”可能不对应于用户B的联系人列表中的联系人。因为没有命名实体与用户B的联系人列表匹配,所以结果855中的NE项为空(NE=[])。结果855还可以包括解析=“呼叫家得宝”的数据结果,因为可能由于在用户B的联系人列表中没有匹配而没有执行任何注释。
[0107] 在步骤808处,PT 204可以将PT结果855发送到缓存器206,缓存器206可以是系统700中的相同的缓存器206。在步骤810处,缓存器206可以分析结果855以确定结果855中的任一个是否对应于和/或匹配位于缓存器206中的任何条目或键。根据一些方面,在步骤810处,缓存器206可以包含条目,其可以包括包含结果755的键和包含结果765的对应值(如图
11所示)。在该示例中,缓存器206可以确定PT结果855可能不匹配或对应于表1100的第一条目(或任何其他条目)的键(例如,缓存器未命中),并且因此在步骤810处由缓存器206产生的缓存结果860可以是空的。
[0108] 在步骤812处,结果855和/或原始查询(例如,来自步骤804)可被发送到NLU 208。在步骤814处,NLU 208可以处理文本字的查询以确定结果865。该结果865可以包括命名实体项、解析项和查询意图项。例如,NLU 208可以为查询“呼叫家得宝”确定命名实体,该查询是结果855中的解析项。NLU 208可以确定命名实体是“家得宝”,且然后可以确定该命名实体的类别和/或上义词。在这种情况下,“家得宝”可以是上义词“企业”的下义词。因此,结果
865可以包括NE=[企业=“家得宝”]的数据结果。NLU208可以确定解析结构,其可以确定命名实体被嵌入其中的查询的结构。例如,对于输入“呼叫家得宝”,NLU 208可以确定命名实体“家得宝”是在企业类别中,并且可以用相关联的下义词和/或类别(例如,企业)代替(例如注释,如上所讨论的)在查询中的命名实体。因此,结果865还可以包括解析=“呼叫[企业]”的数据结果。NLU 208还可以确定查询意图。例如,字“呼叫”的自然语言处理可能对应于拨号的意图,并且因为NLU 208将该命名实体识别为“企业”,所以结果865可以包括“拨号:企业”的查询意图。根据一些方面,确定查询意图可能消耗大量处理资源(例如,在计算上昂贵)。
[0109] 在步骤816处,NLU 208可以接着将结果865发送到缓存器206。然后,缓存器206可以将结果865存储为对应于特定键的值。该特定键可以是PT结果855。这个的示例可以在图12中示出,图12示出了可以在步骤816之后描述缓存器206的内容键/值的表1100。如图12所示,表1100的第一条目包括包含结果755的键和包含结果765的值,并且表1100的第二条目包括包含结果855的键和包含结果865的值。因此,对于第二个条目,结果855对应于865。因此,每当PT结果与条目的键1102匹配和/或对应时,取代、代替或除了试验性的NLU结果以外,还可以根据所公开的方面来检索和/或使用相应的值1104。这将在下面被更详细地描述。
[0110] 在步骤818处,NLU 208可以将结果865发送到VR 210,并且在步骤820处,PT 204可以将结果855发送到VR 210。在步骤822处,VR 210然后可以解决包含在每个结果中的信息以产生最终NLU结果875,其可以包括查询意图、命名实体和解析。如图8所示,因为在结果855中没有NE项,所以最终NLU结果875可以与结果865相同。
[0111] 图9示出了说明根据本文所描述的一个或更多个特征的过程流程901的示例系统900。系统900可以是可以类似于、相同于或者包括系统200和/或700或其部分的自动会话系统。例如,系统900可以包括输入设备和ASR(未示出)、PT 204、缓存器206、NLU 208、VR 210和数据库214(其可以包括元数据)。过程901可以利用系统900的一个或更多个组件来实现。
过程901可以被实现用于用户C和/或与用户C相关联的设备。关于图9,图7和图8所示的过程
701或801可以在图9所示的过程901之前发生。因此,相对于图9所示的过程901的NLU缓存器
206的状态可以如图11或图12所述和所示。本领域中的普通技术人员将认识到,过程901可能不紧接着在过程701或过程801之后发生。例如,过程901可以在一个或更多个查询(例如,
5、100、50000个等查询)之后发生。
[0112] 过程901可以以步骤902开始,其中PT 204可以从数据库214检索和/或访问信息。该信息可以包括来自用户(例如,用户C)和/或设备(例如,与用户C相关联的设备,诸如设备
103、105、107和/或109)的以前和/或当前正由数据库214存储/检索的任何元数据。如图9所示,该信息可以包括联系人列表,其可以包括在联系人列表上列出的每个联系人的各种类型的信息,诸如姓名、电话号码、电子邮件地址、物理地址/位置、头衔名称等。例如,存储在数据库214中的信息可以根据用户和/或设备被存储,并且PT 204可以使用用户ID或设备ID检索与用户和/或设备相关联的信息(例如,元数据)。如图9所示,用户C的联系人列表可以包括家得宝、妻子和学校的联系人。根据一些方面,PT 204可以是用户设备的本地存储的组件,且因此,图9中的PT 204可以是如图7所示的单独PT 204。例如,用户A可以操作可以包括第一PT 204或与第一PT 204相关联的第一设备,并且用户C可以操作可以包括第二PT 204或与第二PT 204相关联的第二设备。类似地,系统900的其他组件(例如,缓存器206、NLU 
208、VR 210、数据库214等)可以与系统700的一个或更多个组件相同或分离。根据一些方面,PT 204可以是可由一个或更多个用户设备访问和/或使用的全局组件。
[0113] 在步骤904处,PT 204可以检索可由一个或更多个词、字、数字等组成的输入或查询。该输入可以由ASR(诸如ASR 202)发送。例如,可以经由语音识别导出查询,其中语音输入可以被译成文本。根据一些方面,输入可以由输入设备或其他计算设备发送。根据一些方面,输入可以是基于文本的输入。如图9所示,该示例中的输入可以包括查询“呼叫家得宝”。
[0114] 在步骤906处,在接收到输入之后,PT 204可以分析查询。例如,PT204可以使用内部概念映射来确定查询中的一个或更多个命名实体。这些命名实体可被格式化为上义词和/或下义词。例如,使用来自数据库214的信息/元数据,PT 204可以实现命名实体识别算法,以确定查询包含一个或更多个词(例如,命名实体),其可以对应于(例如,匹配)与用户C相关联的数据库(例如,用户C的联系人列表上的联系人)。在该示例中,PT 204可以确定查询内的命名实体是“家得宝”。PT 204还可以确定这个所识别的命名实体(或其某个部分)在用户C的联系人列表中。PT 204然后可以将这个所识别的命名实体(家得宝)与匹配源(本地联系人)相关联。根据一些方面,命名实体可以是源的下义词,使得源可以识别命名实体的类别。然后,PT 204可以产生和/或存储在结果955中的命名实体的值。例如,结果955可以包括NE=[本地_联系人=“家得宝”]的数据结果。根据一些方面,PT 204可以在数据库214中搜索可以对应于和/或匹配所识别的命名实体的全部或一部分的任何元数据(例如,经由串匹配算法)。PT 204还可以通过使用串匹配和/或基于语法的方法来处理查询(例如,语法和/或库存可以从用户的元数据导出)。例如,PT 204可以确定解析结构,其可以确定命名实体被嵌入其中的查询的结构。例如,对于输入“呼叫家得宝”,PT 204可以确定命名实体“家得宝”在用户C的联系人列表上,并且可以用相关联的下义词和/或类别(例如,本地联系人)代替(例如注释,如上所讨论的)在查询中的命名实体。因此,PT结果955还可以包括解析=“呼叫[本地_联系人]”的数据结果。
[0115] 在步骤908处,PT 204可以将PT结果955发送到缓存器206,缓存器206可以是与如图7和图8所示相同的缓存器。在步骤910处,缓存器206可以分析结果955以确定结果955中的任一个是否对应于和/或匹配位于缓存器206中的任何条目或键。图13示出了在过程901中显示在这个点处的缓存器206的内容的表1100。如图13所示,表1100的第一条目可以包括与PT结果955匹配或以其他方式对应的键1102(例如,解析值匹配和NE值匹配)。第一条目的键1102可以响应于缓存器接收到当前未存储在缓存器中的PT结果而在以前已经被生成/创建/存储(例如,参见图7中的步骤708)。由于在PT结果955和第一条目的键1102之间的这个对应性,缓存器206可以检索键的对应值1104。在该示例中,对应值1104可以响应于缓存器接收到在其中该值的对应键被创建的过程(例如,过程701)期间在以前生成的试验性NLU结果(例如,参见步骤716)而已经在以前被生成/创建。因此,在该示例中,对应值可以是在过程701中由NLU 208在以前生成并由缓存器206存储的试验性结果765(参见图7)。因此,通过使用缓存的试验性NLU结果,系统900可以能够节省可能与生成试验性NLU结果的NLU 208相关联的计算资源(如上所示)。
[0116] 在步骤912处,缓存器206然后可以将缓存器结果960发送到VR 210,并且在步骤914处,PT 204可以将结果955发送到VR 210。在步骤916处,VR 210然后可以解决包含在每个结果中的信息以产生最终NLU结果975,其可以包括查询意图、命名实体和解析。如图9所示,PT结果955可以包括:解析=“呼叫[本地_联系人]”、命名实体(NE)=[本地_联系人=“家得宝”]。缓存器结果960可以包括:QI=拨号:联系人,解析=“呼叫[联系人]”,NE=[联系人=本地_联系人]。在这样的示例中,VR 210可以使用本地_联系人=“家得宝”解决联系人=本地_联系人。因此,VR 210可以产生QI=拨号:联系人,解析=“呼叫[联系人]”,NE=[联系人=“家得宝”]的最终NLU结果975。
[0117] 根据一些方面,键可以对应于多个值。例如,与系统900相关联的实体(例如,公司、企业、服务器等)可以确定用户可能更喜欢在用户的正常工作时间期间被呈递对联系人列表条目的直接呼叫,并且用户可能更喜欢在用户的正常下班时间期间被呈递对本地企业的呼叫。因此,特定的键可以在用户的正常工作时间期间检索第一结果(例如,所存储的联系人家得宝的号码),并且相同的键可以在该用户的正常下班时间期间检索第二个结果(例如,本地家得宝的主号码)。根据一些方面,这个确定可以是当键被输入到缓存器206中时。根据一些方面,可以作出这个确定作为进入VR210的处理步骤。例如,可以将多个NLU结果推入缓存器206内,并且可以在VR 210中执行基于用户工作时间的确定。根据一些方面,值可以对应于多个键。例如,与系统900相关联的实体可以确定包括解析=“呼叫[本地_联系人]”,解析=“电话[本地_联系人]”,或解析=“铃声[本地_联系人]”的值都可以具有相同或相似的含义(例如,对应相同的键)。因此,这些值可能与缓存器中的相同的(或类似的)键相关联。
[0118] 图10示出了说明根据本文所描述的一个或更多个特征的过程流程1001的示例系统1000。系统1000可以是可以类似于、相同于或者包括系统200和/或700或其部分的自动会话系统。例如,系统1000可以包括输入设备和ASR(未示出)、PT 204、缓存器206、NLU 208、VR 210和数据库214(其可以包括元数据)。过程1001可以用系统1000的一个或更多个组件来实现。过程1001可以被实现以用于用户D和/或与用户D相关联的设备。关于图10,过程701、801和/或901可以在图10所示的过程1001之前发生。因此,相对于图10所示的过程1001的NLU缓存器206的状态可以如图11、图12或图13所述和所示。本领域中的普通技术人员将认识到,过程1001可能不紧接着在过程701、过程801或过程901之后发生。例如,过程1001可以在一个或更多个查询(例如,5、100、50000个等查询)之后发生。
[0119] 过程1001可以以步骤1002开始,其中PT 204可以从数据库214检索和/或访问信息。该信息可以包括来自用户(例如,用户D)和/或设备(例如,与用户D相关联的设备,诸如设备103、105、107和/或109)的以前和/或当前正由数据库214存储/检索的任何元数据。如图10所示,该信息可以包括联系人列表,其可以包括在联系人列表上列出的每个联系人的各种类型的信息,诸如姓名、电话号码、电子邮件地址、物理地址/位置、头衔名称等。在一个示例中,PT 204可以使用用户或设备ID从数据库214检索诸如联系人姓名和/或电话号码的信息。例如,存储在数据库214中的信息可以根据用户和/或设备被存储,并且PT 204可以使用用户ID或设备ID检索与用户和/或设备相关联的信息(例如,元数据)。如图10所示,用户D的联系人列表可能不包含任何联系人。根据一些方面,图10中的PT204可以是如图7所示的单独PT 204。例如,用户A可以操作可以包括第一PT 204的第一设备,并且用户D可以操作可以包括第二PT 204的第二设备。类似地,系统1000的其他组件(例如,缓存器206、NLU 208、VR210、数据库214等)可以与系统700的一个或更多个组件相同或分离。
[0120] 在步骤1004处,PT 204可以检索可由一个或多个词、字、数字等组成的输入或查询。该输入可以由ASR(诸如ASR 202)发送。根据一些方面,输入可以是基于文本的输入。如图10所示,该示例中的输入可以包括查询“呼叫家得宝”。
[0121] 在步骤1006处,在接收到输入之后,PT 204可以分析查询。例如,PT 204可以使用内部概念映射来确定查询中的一个或更多个命名实体。这些命名实体可被格式化为上义词和/或下义词。例如,使用来自数据库214的信息/元数据,PT 204可以实现命名实体识别算法,以确定该查询包含可能不对应(例如,不匹配)与用户D相关联的数据库中的信息的一个或更多个词(例如,命名实体)。在该示例中,PT 204可以确定“家得宝”可能不对应于用户D的联系人列表中的联系人。因为没有命名实体与用户D的联系人列表匹配,所以结果1055中的NE项为空(NE=[])。结果1055还可以包括解析=“呼叫家得宝”的数据结果,因为可能由于用户D的联系人列表中没有匹配而没有执行任何注释。
[0122] 在步骤1008处,PT 204可以将PT结果1055发送到缓存器206,缓存器206可以是系统700中的相同的缓存器206。在步骤1010处,缓存器206可以分析结果1055以确定结果1055中的任何一个是否对应于和/或匹配位于缓存器206中的任何条目或键。图14示出了表1100,其在过程1001中示出了在这个点处的缓存器206的内容。如图14所示,表1100的第二条目可以包括与PT结果1055匹配或以其他方式对应的键1102(例如,解析值匹配和NE值匹配)。第二条目的键1102可以响应于缓存器接收到当前未存储在缓存器中的PT结果而已经在以前被生成/创建/存储(例如,参见图8中的步骤808)。由于在PT结果1055和第二条目的键1102之间的这个对应性,缓存器206可以检索键的对应值1104。在该示例中,对应值1104可以响应于缓存器接收到在其中该值的对应的键被创建的过程(例如,过程801)期间在以前生成的试验性NLU结果(例如,参见步骤816)而已经在以前被生成/创建。因此,在该示例中,对应值可以是在过程801中以前由NLU 208生成并由缓存器206存储的试验性结果865(参见图8)。因此,通过使用缓存的试验性NLU结果,系统1000可能能够节省可与生成试验性NLU结果的NLU 208相关联的计算资源(如上所示)。
[0123] 在步骤1012处,缓存器206然后可以将缓存结果1060发送到VR 210,并且在步骤1014处,PT 204可以将结果1055发送到VR 210。在步骤1016处,VR 210然后可以解决包含在每个结果中的信息以产生最终NLU结果975,其可以包括查询意图、命名实体和解析。如图10所示,因为在结果1055中没有NE项,所以最终NLU结果1075可以与缓存结果1060相同。根据一些方面,缓存结果(例如,缓存结果1060)可以作为最终NLU结果1075返回,并且因此绕过VR 210。
[0124] 虽然上述示例针对PT 204导出与用户的联系人列表相关联的信息/元数据以生成缓存键1102,但是可以根据所公开的特征来使用任何其他信息和/或元数据。例如,与用户相关联的元数据可以是用户的地理位置。在这个示例中,威奇托福尔斯(Wichita Falls)的用户E可以在处于位于威奇托福尔斯中的实际的家得宝的5km之内时向设备输入“去家得宝”。PT 204可以处理该查询以确定家得宝是企业(例如,经由如上所述的命名实体识别),并且可以使用户的地理位置与5km之内的家得宝交叉引用。因此,PT结果可以包括解析=“去[企业,距离<5km]”,以及NE=[企业,距离<5km=“家得宝”]。此外,在该示例中,用户的缓存器206可以不包含与该PT结果相对应的键,并且因此可能导致缓存器未命中。然后,NLU 208可以处理查询(去家得宝)和/或PT结果,并且可以返回NLU结果。然后,该NLU结果可以作为具有对应键的值存储在缓存器206中,该对应键包括解析=“去[企业,距离<5km]”和NE=[企业,距离<5km=“家得宝”]的PT结果。继续这个示例,在用户E执行了上面列出的步骤后的几天,旧金山的用户F可在处于位于旧金山的家得宝的5km之内时将“去家得宝”输入设备(例如,不在威奇托福尔斯的家得宝的5km内)。PT 204可以分析该查询并且可以产生与在用户E场景中产生的相同的PT结果,且因此用户F的PT结果可以包括解析=“去[企业,距离<
5km]”,并且NE=[企业,距离<5km=“家得宝”]。如在用户E的场景中那样使用相同的缓存器
206(例如,可以位于远程位置处),但是现在缓存器206包括与用户F的PT结果相对应的键(例如,缓存器命中),则NLU 208可能不需要处理查询和/或PT结果。相反,可以检索和使用与PT结果相对应的值,从而节省计算资源。然后,该设备可以例如检索地图应用并产生到家得宝的行程路线或方向。此外,洛杉矶的用户G可以在没有处于位于洛杉矶的家得宝5km之内(例如,不在威奇托福尔斯或旧金山的家得宝5km以内)时将“去家得宝”输入设备。在这种情况下,NLU结果可能是在用户G的设备上启动网络浏览器并检索家得宝网站。
[0125] 一个或更多个实施方式可以在任何常规计算机编程语言中实现。例如,实施方式可以以过程编程语言(例如,“C”)或面向对象编程语言(例如,“C++”、Python)来实现。一些实施方式可以被实现为预编程的硬件元件、其它相关的组件或者硬件和软件组件的组合。
[0126] 实施方式可以被实现为用于与计算机系统一起使用的计算机程序产品。这样的实现方式可以包括一系列的计算机指令,该一系列的计算机指令经由诸如经介质连接到网络的通信适配器的调制解调器或其它接口设备固定在诸如计算机可读介质(例如,软盘、CD-ROM、ROM或固定盘)等的有形介质上或可传输到计算机系统。介质可以是有形介质(例如,光通信线路或模拟通信线路)或用无线技术(例如,微波、红外线或其它传输技术)实现的介质。该一系列的计算机指令可体现本文之前描述的关于系统的全部或部分功能。这样的计算机指令可以以用于与一个或更多个计算机架构或操作系统一起使用的多种编程语言编写。此外,这样的指令可以存储在诸如半导体存储器设备、磁存储器设备、光学存储器设备或其它存储器设备的任何存储器设备中,并且可以使用诸如光传输技术、红外线传输技术、微波传输技术或其它传输技术的任何通信技术传输。这样的计算机程序产品可以作为预载有计算机系统(例如,在系统ROM或固定盘上)、具有附带的打印或电子文档(例如,压缩打包软件)的可移动介质发布,或者通过网络(例如,互联网或万维网)从服务器或电子公告板发布。一些实施方式可以被实现为软件(例如,计算机程序产品)和硬件的组合。还有其他实施方式可以被实现为完全硬件或完全软件(例如,计算机程序产品)。
[0127] 所描述的“过程”是在使用计算机硬件(诸如处理器、域可编程门阵列或其它电子组合逻辑或类似设备)的计算机中执行所描述的功能,该计算机硬件可以在软件或固件或这些中任何的组合的控制下操作或在上述任何一种的控制之外操作。所描述的功能的全部或部分可以由诸如晶体管或电阻器的有源或无源电子组件执行。术语“过程”的使用不一定暗示可调度实体,但是在一些实施方式中,过程可以由这种可调度实体来实现。此外,除非上下文另有要求,“过程”可以使用多于一个处理器或多于一个(单或多处理器)计算机来实现,并且它可以是计算机程序的实例或者计算机程序的指令的子集的实例。
[0128] 本文描述的各个方面可以体现为方法、装置或者体现为存储计算机可执行指令的一个或更多个计算机可读介质。因此,那些方面可以采取完全硬件实施方式、完全软件实施方式、完全固件实施方式或以任何组合结合软件、硬件和固件方面的实施方式。另外,可以用光或电磁波的形式在源和目的地之间传递表示如本文所描述的数据或事件的各种信号,该光或电磁波通过信号传导介质(诸如金属丝、光纤或无线传输介质(例如,空气或空间))传播。一般来说,一个或更多个计算机可读介质可以包括一个或更多个非暂时性计算机可读介质。
[0129] 如本文所描述的,各种方法和动作可以跨一个或更多个计算设备和一个或更多个网络操作。功能可以以任何方式分布,或者可以位于单个计算设备(例如,服务器、客户端计算机等)中。
[0130] 已经根据其说明性实施方式描述了本公开的各方面。通过回顾本公开内容,本领域中的普通技术人员将想到在所附权利要求的范围和精神内的很多其它实施方式、修改和变化。例如,说明性附图中所描绘的步骤中的一个或更多个步骤可以以除了所阐述的顺序之外的顺序来执行,并且一个或更多个所描绘的步骤可以根据本公开的方面是可选的。