用于语言理解的分布式服务器系统的制作方法

文档序号:14203827阅读:185来源:国知局
用于语言理解的分布式服务器系统的制作方法



背景技术:

机器学习、语言理解和人工智能正在改变用户与计算机交互的方式。计算机和应用的开发人员总是试图改进人与计算机之间的交互。然而,语言理解模型的发展通常需要大量的时间、金钱和其他资源来完成。

关于这些和其他一般考虑而已经做出了本文中公开的各方面。而且,虽然可以讨论相对具体的问题,但是应当理解,这些方面不应当局限于解决在本公开的背景技术或其他地方确定的具体问题。



技术实现要素:

总而言之,本公开总体上涉及用于训练和使用自然语言理解系统的系统和方法。更具体地,本文中公开的系统和方法训练和使用自然语言理解系统,其利用一个或多个特征服务器上的特征提取器的分布式网络。因此,本文中公开的系统和方法提供了更准确的自然语言理解系统、更可靠的自然语言理解系统和更高效的自然语言理解系统。此外,本文中描述的系统和方法提供了具有更好的开发(包括更新能力)、生产力和可扩展性的自然语言理解系统。

本公开的一个方面包括一种语言理解系统。语言理解系统包括语言理解服务器。语言理解服务器包括处理器和存储器。处理器执行存储在存储器上的指令以执行方法。该方法包括从多个特征提取器中取回训练特征,并且基于训练算法来估计模型参数以形成经训练的语言理解模型,该训练算法利用来自不同的特征服务器的训练特征。多个特征提取器各自位于不同的特征服务器上。语言理解服务器与不同的特征服务器分离。

本公开的另一方面涉及一种用于训练和使用自然语言理解系统的方法。该方法包括训练语言理解系统的语言理解模型。语言理解模型的训练包括在语言理解服务器处从多个特征提取器接收训练特征,并且基于训练算法来估计模型参数以形成经训练的语言理解模型,该训练算法利用来自不同的特征服务器的训练特征。多个特征提取器各自位于不同的特征服务器上。语言理解服务器与不同的特征服务器分离。

本公开的又一方面包括一种系统。该系统包括至少一个处理器和存储器。存储器包括存储在其上的计算机可执行指令。计算机可执行指令由至少一个处理器执行。计算机可执行指令引起该系统执行操作,该操作包括:在自然语言服务器上从客户端设备接收自然语言输入,从自然语言服务器向第一服务器上的第一特征提取器发送自然语言输入,从自然语言服务器向第二服务器上的第二特征提取器发送自然语言输入,以及从自然语言服务器向第三服务器上的第三特征提取器发送自然语言输入。第一服务器、第二服务器、第三服务器和自然语言服务器彼此不同并且彼此分离。计算机可执行指令引起该系统执行另外的操作,该操作包括由自然语言服务器从第一特征提取器接收针对自然语言输入的第一潜在特征集,由自然语言服务器从第二特征提取器接收针对自然语言输入的第二潜在特征集,以及由自然语言服务器从第三特征提取器接收针对自然语言输入的第三潜在特征集。计算机可执行指令引起该系统执行附加操作,该操作包括对第一潜在特征集、第二潜在特征集和第三潜在特征集以形成聚合的潜在特征集进行聚合,并且利用语言理解模型来评估聚合的潜在特征集,该语言理解模型利用来自第一特征提取器、第二特征提取器和第三特征提取器的训练特征而被训练。计算机可执行指令引起该系统执行另外的操作,该操作包括基于评估聚合的潜在特征集来确定用户意图、域和实体以及相关联的置信度得分,并且基于用户意图、域和实体以及相关联的置信度得分来生成响应。

提供本“发明内容”是为了以简化的形式介绍将在以下“具体实施方式”中进一步描述的概念的选择。本“发明内容”不是为了确定所要求保护的主题的关键特征或基本特征,也并非旨在用于限制所要求保护的主题的范围。

附图说明

非限制性和非穷尽性的示例或方面参考以下附图来描述。

图1是示出包括客户端设备、自然语言理解系统和多个分布式特征提取器的分布式系统的示例的示意图。

图2是示出包括客户端设备、在地点域中操作的自然语言理解系统以及用于地点域的多个分布式特征提取器的分布式系统的示例的示意图。

图3是示出用于训练自然语言理解系统的语言理解模型的方法的示例的流程图。

图4是示出用于使用自然语言理解系统的方法的示例的流程图。

图5是示出可以实践本公开的各方面的计算设备的示例物理部件的框图。

图6a和图6b是可以实践本公开的各方面的移动计算设备的简化框图。

图7是可以实践本公开的各方面的分布式计算系统的简化框图。

图8示出了可以实践本公开的各方面的平板计算设备。

具体实施方式

在下面的详细描述中,参考形成其一部分的附图,并且其中通过说明的方式示出了具体的方面或示例。可以组合这些方面,可以利用其他方面,并且可以在不偏离本公开的精神或范围的情况下进行结构改变。因此,下面的详细描述不是限制性的,并且本公开的范围由权利要求及其等同物限定。

机器学习、语言理解和人工智能的进步正在改变用户与计算机交互的方式。诸如siri、googlenow和cortana等数字助理应用是人机交互中的转换(shift)的示例。自然语言理解(nlu)系统负责提取语义帧来以表示自然语言输入的域、意图和语义插槽(或实体)。nlu系统利用nlu模型,nlu模型通常使用语义标注从域特定的输入(本文中也被称为查询)而被训练。诸如单词n元语法、字典、个性化等来自特征提取器的各种特征用于构建nlu模型。来自用于训练nlu模型的特征提取器的相同的特征集也在运行时被提取,用于在nlu已经被训练之后对所接收的自然语言输入进行语义解码。

传统上,用于特征提取的nlu模型和相关资源(例如,特征提取器)驻留在nlu系统的同一服务器上。特征提取(例如,特征化处理)和查询理解(例如,解码处理)紧密地耦合,并且因此,这种先前使用的配置是有意义的。但是,随着nlu系统变得越来越复杂,并且能够处理来自更多特征提取器的更多数据,这种配置变得非常局限。例如,nlu服务器必须具有足够的存储来托管所有的特征提取器,诸如实体字典。此外,解码过程可能会减慢,因为更大量的存储器被用于存储特征及其特征提取器。此外,由于每个域和语言都需要附加的存储器和存储空间,所以nlu系统将难以扩展到更多的语言和域。此外,nlu系统上的每个特征都必须独立更新,这通常要求整个服务器停止服务。

例如,在“地点”域中,仅商业名称字典可以包含针对特定美国地点的1200万个条目。这个单个字典可能需要大约1gb的存储器。如果nlu系统想要支持15个区域(locale),则nlu系统的服务器将消耗15gb的存储器,以仅用于支持业务名称字典,因为每个地区都需要本地化的字典。由于字典消耗的存储器太多,可用于支持更多的域和地区的存储器会少得多。此外,字典每天都在变化,这就要求nlu服务器每天更新和离线,以便跟得上变化。

通常没有系统或方法允许通过访问可以被保存在不同服务器上的多个不同特征提取器来训练和利用nlu系统。本文中公开的系统和方法提供分布式nlu系统。因此,本文中公开的系统和方法能够训练nlu模型,并且利用来自不同且分离的服务器上的多个特征提取器的输入来对所接收的自然语言输入进行处理。使用面向服务的架构而将nlu系统分为多个服务。不同的服务(本文中也称为特征提取器)可以位于不同的服务器上,并且提供不同的功能,诸如特征提取和/或语义解码。例如,第一服务可以提供商业名称特征提取,并且第二服务可以提供位置特征处理。因此,当新的商业名称被添加或移除时,商业名称服务被更新并且离线,而nlu服务器和用于位置特征处理的服务器保持不变。因此,服务可以独立开发和托管。此外,在一些示例中,服务或特征提取器可以是另一nlu系统。在这些示例中,来自这个辅助nlu系统的输出被用作如本文中公开的nlu系统的输入。相应地,本文中公开的系统和方法改进了nlu系统的开发、生产力和可扩展性。

因此,本文中公开的系统和方法提供了更准确的nlu系统、更可靠的nlu系统和更高效的nlu系统。例如,基于增加的存储器(源于将特征提取器从服务器移除)并且基于特征提取器能够并行地运行,对所接收的自然语言输入进行响应的处理时间可以被减少。此外,本文中描述的系统和方法防止必须使nlu系统离线以更新由nlu系统利用的实体字典。

图1示出了包括客户端设备114、自然语言理解(nlu)系统102和多个分布式特征提取器110的分布式系统100的示例。nlu系统102被设计为利用机器学习技术对来自客户端设备114的各种不同的自然语言输入116进行分类(本文中也称为标注或标记)和解码。输入116可以是需要被聚类或分类和解码的任何自然语言数据序列,诸如查询、搜索查询、命令等。

nlu系统102包括语言理解(lu)解码器104、和语言理解(lu)服务器103上的一个或多个lu模型106。nlu系统102的lu服务器103不包括任何特征提取器110或特征数据库112。相反,nlu系统102与一个或多个特征提取器110通信。每个特征提取器110位于与另一特征提取器110的特征服务器108分离并且不同的特征服务器108上。nlu系统102在训练和输入处理期间与一个或多个特征提取器110通信。

在nlu系统102可以对所接收的输入信号116进行分类和解码之前,nlu系统102的lu模型106基于nlu系统102从客户端设备114所接收的输入信号116的类型而被训练以用于特定任务。特定任务在本文中也可以称为“特定应用”。换言之,lu模型106可以使用与lu模型将要响应于nl输入116而接收的数据相同类型的数据来训练。

nlu系统102向特征服务器108上的一个或多个特征提取器110发送针对用于特定任务的训练输入的请求。特征提取器110基于特定任务从它们的特征数据库112中拉取信息并且生成训练特征。训练特征可以包括项目,诸如客户端意图、域和实体。此外,训练特征可以包括针对每个确定的项目的置信度得分。置信度得分是表示特征提取器对于所标识的训练项目有多准确或有多自信的指示符,诸如排名或百分比。每个特征提取器110向nlu系统102的lu服务器103发送训练特征。nlu系统102的lu服务器103从每个特征提取器110接收训练特征。利用训练特征结合训练算法来训练lu模型106以形成经训练的语言理解(lu)模型106。如本领域技术人员已知的用于训练一个或多个lu模型106的任何合适的训练算法可以用于训练lu模型106。例如,lu模型106可以基于训练算法来估计模型参数,该训练算法利用来自不同的特征服务器108的训练特征来形成经训练的lu模型106。在一些示例中,lu模型106的训练在nlu系统102没有与客户端设备114通信或没有连接到客户端设备114时(本文中称为“离线”)发生。另外,特征提取器110可以并行地处理或生成训练特征。换言之,每个特征提取器可以处理所接收的输入、生成训练特征、并且同时地或在交叠的时间向nlu系统102的lu服务器103发送所生成的训练特征。因此,nlu系统102支持同时多个训练特征提取。

一旦lu模型106已经被训练,nlu系统102可以用于处理来自客户端设备114的自然语言输入116。对来自客户端设备114的自然语言输入116的解码和分类在nlu系统102与客户端设备114通信或连接至客户端设备114(本文中称为“在线”)时发生。当其在线时,nlu系统102的lu服务器103从客户端设备114接收nl输入116。例如,驻留在lu服务器103上的lu解码器104可以接收输入116。在一些示例中,lu解码器104确定输入116是否需要任何预处理。如果lu解码器104确定对输入116的预处理是必要的,则lu解码器104对输入116进行预处理,诸如对nl输入116的归一化或重新格式化。如果lu解码器104确定对输入116的预处理不是必要的,则lu解码器104不对自然语言输入116进行修改。nlu系统102的lu服务器103向位于特征服务器108上的一个或多个特征提取器110发送整个输入116,特征服务器108彼此而分离并且彼此不同,并且与lu服务器103分离并且不同。

特征提取器110可以使用特征集定义来从所接收的nl输入116中提取潜在特征。换言之,每个特征提取器110利用其特征数据库112(诸如实体字典)来分析nl输入116,以确定所接收的输入的潜在特征。在一些示例中,潜在特征包括不同的特征,诸如客户端意图、域和实体。此外,潜在特征可以包括每个确定的项目的置信度得分。置信度得分是表示特征提取器对于所标识的项目有多准确或有多自信的指示符,例如排名或百分比。在一些示例中,nlu系统102与多个特征提取器(第一特征提取器110a、第二特征提取器110b、第三特征提取器110c...第n特征提取器110n)通信,其各自在多个不同的特征服务器(第一特征服务器108a、第二特征服务器108b、第三特征服务器108c...第n特征服务器108n)上具有它们自己的特征数据库(第一特征数据库112a、第二特征数据库112b、第三特征数据库112c...第n特征数据库112n)。不同的特征服务器108n上的任何数目的特征提取器110n可以由nlu系统102的lu服务器103利用。特征提取器110可以并行地处理或生成潜在特征。换言之,每个特征提取器110可以处理所接收的nl输入、生成潜在特征、并且同时地或在交叠的时间向nlu系统102的lu服务器103发送潜在特征。因此,nlu系统102支持一次多个特征提取。

在一些方面,不同的特征提取器110中的一些可以具有不同的特定的特征特性(specialty)。在其他方面,特征提取器110可以具有与每个其他特征提取器不同的特定的特征特性。例如,特征特性可以包括商业名称提取器、位置提取器、地址匹配提取器、地点类型提取器、机场提取器、学校名称提取器、通用实体提取器和任何其他已知类型的特征提取器。如本文中使用的,通用特征提取器可以指代辅助或补充的自然语言理解系统。换言之,本文中使用的nlu系统102可以从其他nlu系统接收潜在特征。因此,如本文中公开的nlu系统102可以将任何现有的nlu系统或新创建的nlu系统作为个体特征提取器并入其系统中。因此,通用实体提取器可以在一个特征服务器上包括多个特征提取器和特征数据库。

不同的特征服务器上的分布式特征提取器110允许不同的特征提取器110被单独地更新,而不影响nlu系统102或者不需要更新的任何其他特征提取器。例如,可以更新一个或多个特征提取器及其数据库,而不需要使nlu系统102离线。换言之,在一个或更多个特征提取器110被更新之后,nlu系统102的lu模型106不需要被重新训练。在对lu模型、lu解码器和同一服务器上的特征提取器进行分组的先前使用的自然语言理解系统中,nlu系统102将必须离线以更新特征提取器及其数据库,并且响应于对特征提取器的更新来重新训练lu模型106。因此,可以容易地向/从一个或多个特征数据库112添加或移除不同的特征,诸如商业名称、餐馆、不同地区等,而不需要重新训练lu模型并且不要求nlu系统102的lu服务器103离线。因此,nlu系统102比不使用分布式特征提取器的先前使用的nlu系统更容易扩展。例如,通过集成更多的服务(或更多的特征提取器),而不是必须重建nlu系统102,附加的特征、域、语言环境和/或意图可以被添加到现有的nlu系统102。在另一示例中,附加的特征、域、语言环境和意图可以被添加到已经使用的特征提取器以更新nlu系统102,而不必重建nlu系统102。在另外的示例中,可以通过从其特征提取器移除诸如域、地区和意图等已经存储的特征,而从现有的nlu系统102中移除这些特征,而不必重建nlu系统102。另外,因为nlu系统102利用在不同的特征服务器108上的分布式特征提取器110,所以lu服务器103具有更多的空间(存储器和硬盘)来执行解码和查询或输入理解。因此,与不使用分布式特征提取器的先前使用的nlu系统相比,nlu系统102更快并且更有效地处理所接收的nl输入。

每个特征提取器110向nlu系统102的lu服务器103发送所确定的潜在特征。nlu系统102的lu服务器103从每个特征提取器110接收潜在特征。潜在特征可以被评估以估计针对nl输入116的输入特征。潜在特征可以通过聚合(或处理)潜在特征并且通过将潜在特征输入到经训练的lu模型106中以估计nl输入116的输入特征来被估计。输入到lu模型106中的潜在特征可以是经过处理或聚合的潜在特征。在一些方面,特征通过全局地重新评估潜在特征权重(或置信度得分)中的一些来被聚合。在一些方面,所提供的特征权重可以增加或减少。在其他方面,一些特征可以在潜在特征的聚合期间被消除。潜在特征的聚合可以由lu解码器104和/或lu模型106执行。输入特征包括诸如客户端意图、域和实体等项目。此外,输入特征可以包括针对每个确定的项目的置信度得分。如本文中使用的置信度得分是指表示lu模型对于所标识的项目有多准确或有多自信的指示符,诸如排名或百分比。

lu解码器104使用输入特征和经训练的lu模型106来理解查询,或者换言之从输入116中提取语义含义。lu解码器104基于所确定的语义含义来生成对所接收的输入的响应118。如上所述,响应118提供输入的语义含义。例如,nlu系统可以针对所接收的输入“提醒我明天打电话给妈妈”生成以下响应:

域:提醒;

意图:创建提醒;

插槽:提醒;

内容:打电话给妈妈;以及

提醒时间:明天。

nlu系统102向客户端设备114发送所生成的响应118。在一些方面,客户端设备114向客户端设备114的用户提供所生成的响应118。在其他方面,客户端设备114利用所接收的响应118来确定如何对来自客户端设备114的用户的所接收的输入116进行响应。

例如,nlu系统102的lu服务器103可以接收nl输入“南门餐厅贝尔维尤”。这个输入由lu服务器103发送给各种特征提取器110。“地点名称”特征提取服务可以检测到“南门”可能是地点名称,并且向nlu系统102的lu服务器103发送这个潜在特征。“地点类型”特征提取服务可以检测到“餐馆”可能是“地点类型”,并且向nlu系统102的lu服务器103发送这个潜在特征。另外,在这个示例中,“位置”特征提取服务可以将“贝尔维尤”标识为城市名称,并且将这个潜在特征发送给nlu系统102的lu服务器103。在这个示例中,lu服务器103将所有这些特征作为针对lu模型106的输入,并且确定针对nl输入的正确或最佳输入特征。例如,在nlu系统102的lu服务器103上运行的lu模型可以确定域是“地点”,意图是“查找地点”,并且提取所接收的nl输入的三个插槽:作为“地点名称”的“南门”;作为“地点类型”的“餐厅”;以及作为“绝对位置”的“贝尔维尤”。nlu系统102的lu服务器103上的lu解码器104利用这些项目来理解查询或确定“南门餐厅贝尔维尤”的nl输入的语义含义。lu解码器104基于所确定的语义含义来生成对输入“南门餐厅贝尔维尤”的响应。

在一些方面,nlu系统102可以被应用于特定的域。例如,图2示出了包括客户端设备214、在地点域中操作的自然语言理解(nlu)系统202和用于地点域的多个分布式特征提取器210的分布式系统200的示例。nlu系统202包括存储在lu服务器203上的lu解码器204和地点模型206。

在这个示例中,分布式特征提取器包括商业名称提取器201a,其具有位于第一特征服务器208a上的商业名称数据库212a、位置提取器210b,其具有存储在第二特征服务器208b上的位置数据库212b、地址匹配器提取器210c,其具有存储在第三特征服务器208c上的地址数据库212c、地点类型提取器210d,其利用存储在第四特征服务器208d上的地点数据库212d、机场提取器210e,其使用存储在第五特征服务器208e上的机场名称数据库212e、学校名称提取器210f,其利用存储在第六特征服务器208f上的学校名称数据库212f、以及通用实体提取器210g,其利用存储在第七特征服务器208g上的知识图表212g。与以上类似,来自特征提取器210的训练特征由nlu系统202的lu服务器103接收,并且被用于训练一个或多个地点模型206。尽管关于图2描述了特定的特征提取器,但是本领域技术人员将会认识到,在不偏离本公开的范围的情况下,可以采用其他特征提取器。

一旦地点模型206被训练,nlu系统202准备好由客户端设备214使用。客户端设备214向nlu系统202发送自然语言(nl)输入216。nlu系统202向特征服务器208上的特征提取器210发送nl输入216。在一些方面,在nlu系统202向特征提取器210发送输入216之前,lu解码器204对输入216进行预处理。nl输入216是任务特定的并且涉及地点域。特征提取器210利用它们的数据库212分析所接收的输入216,并且确定输入216的潜在特征。特征提取器210向nlu系统202的lu服务器103发送潜在特征。

nlu系统202的lu服务器203接收潜在特征,并且利用经训练的地点模型206来评估潜在特征以确定nl输入216的输入特征。lu服务器203对潜在特征的评估包括潜在特征的处理。潜在特征的处理包括修剪或选择用于输入到地点模型206中的期望的潜在特征。在一些方面,潜在特征的处理由lu解码器204和/或lu模型206执行。lu服务器203对潜在特征的评估还包括将潜在特征或经处理的潜在特征输入到地点模型206中。随后,利用lu解码器204的nlu系统202基于所确定的输入特征来确定或生成对lu输入216的响应。如上所述,响应可以包括lu输入216的语义含义。nlu系统202的lu服务器103向客户端设备214发送响应218。客户端设备214可以将响应提供给客户端设备214的用户或利用响应218来确定如何对客户端设备214的用户进行响应。

图3是概念性地示出用于训练自然语言理解(nlu)系统的语言理解(lu)模型的方法300的示例的流程图。在一些方面,方法300由存储在lu服务器上的nlu系统执行。在另外的方面,方法300可以在nlu系统没有与客户端设备通信或没有连接到其的情况下(本文中称为离线)执行。

方法300通过利用来自位于与lu模型分离并且不同的服务器上的特征提取器的分布式网络的特征来训练lu模型。因此,与利用位于同一服务器上的特征提取器和lu模型的nlu系统相比,方法300提供了更准确的nlu系统、更可靠的nlu系统和更高效的nlu系统。例如,lu服务器上的增加的存储器(由于移除了特征提取器)减少了用于训练lu模型的处理时间,并且特征提取器并行运行的能力减少了接收训练特征所需要的时间量。此外,与利用位于同一服务器上的特征提取器和lu模型的nlu系统相比,方法300提供了更好的开发、生产力和可扩展性。例如,因为nlu系统没有存储器限制,所以可以利用任何数目的期望的特征提取器来训练lu模型,包括通用特征提取器。另外,与利用位于同一服务器上的特征提取器和lu模型的nlu系统相比,方法300提供了更易于更新的nlu系统。例如,可以更新每个特征提取器而不影响nlu系统或任何其他特征提取器。此外,不像利用位于同一服务器上的特征提取器和lu模型的nlu系统,在对特征提取器的更新之后,nlu系统的lu模型不需要被重新训练。

在一些方面,方法300包括操作302。在操作302,向一个或多个特征提取器发送训练特征请求。如上所述,特征提取器位于可以与存储语言理解模型的语言理解服务器分离并且不同的特征服务器上。此外,每个特征提取器可以位于与其他特征服务器不同并且分离的特征服务器上。在一些方面,nlu系统的lu服务器执行操作302。基于nlu系统将要从客户端设备接收的输入信号的类型,训练特征请求可以针对特定任务。特定任务在本文中也可以被称为“特定应用”。换言之,训练特征请求确保lu模型使用与lu模型将要响应于nl输入而接收的数据相同类型的数据来被训练。

在操作304,从一个或多个特征提取器中的每个获取或取回训练特征。如上所述,训练特征可以是任务特定的。特征提取器基于特定任务来从它们的特征数据库中拉取信息并且生成训练特征。训练特征可以包括项目,诸如客户端意图、域和实体。此外,训练特征可以包括针对每个确定的项目的置信度得分。

在操作306,利用训练算法并基于训练特征来估计模型参数,以形成经训练的语言理解(lu)模型。如本领域技术人员已知的用于训练lu模型的任何合适的训练算法可以由操作306使用。例如,可以使用支持向量机(svm)来对域和意图检测进行建模。在另外的示例中,可以使用条件随机域模型来标记语义插槽。

一旦lu模型通过方法300被训练,包括lu模型的nlu系统可以应用于或用于各种标记任务。图4是概念性地示出用于使用自然语言理解(nlu)系统的方法400的示例的流程图。在一些方面,方法400由nlu系统的lu服务器执行。在另外的方面,方法400在nlu系统的lu服务器在线时执行。

方法400利用来自特征提取器的分布式网络的潜在特征,特征服务器位于与lu模型分离并且不同的服务器上。因此,与利用位于同一服务器上的特征提取器和lu模型的nlu系统相比,方法400提供了更准确的nlu系统、更可靠的nlu系统和更高效的nlu系统。例如,lu服务器上的增加的存储器(由于移除了特征提取器)减少了所接收的nl输入的处理时间,并且特征提取器并行运行的能力减少了接收潜在特征输入所需要的时间量。此外,与利用位于同一服务器上的特征提取器和lu模型的nlu系统相比,方法400提供了更好的开发、生产力和可扩展性。例如,因为nlu系统没有存储器限制,所以可以利用任何数目的期望的特征提取器来处理nl输入并且提供nl输入的潜在特征,包括通用特征提取器。另外,与利用位于同一服务器上的特征提取器和lu模型的nlu系统相比,方法400提供了更易于更新的nlu系统。例如,可以更新每个特征提取器而不影响nlu系统(诸如使其离线)或者任何其他特征提取器。此外,不像利用位于同一服务器上的特征提取器和lu模型的nlu系统,在对特征提取器的更新之后,nlu系统的lu模型不必被重新训练。

例如,可以在方法400期间通过集成更多的服务(或更多的特征提取器)而不是必须重建nlu系统、并且不必停止执行方法400来添加附加的特征、域、语言环境和意图。在另一示例中,可以在方法400期间向已经使用的特征提取器添加附加的特征、域、语言环境和意图以更新nlu系统而不必重建nlu系统、并且不必停止执行方法400。在另外的示例中,已经存储的特征(诸如域、语言环境和意图)可以在方法400期间通过从其特征提取器中移除这些特征而不必重建nlu系统、并且不必停止执行方法400来从现有的nlu系统中移除。

在操作402,从客户端设备接收自然语言(nl)输入。输入可以是需要被聚集或分类和解码的任何自然语言数据序列,诸如查询、搜索查询、命令等。

在一些方面,方法400包括操作404。在操作404,可以对输入进行预处理。在操作404,可以评估输入以确定是否有任何预处理是必要的。在操作404,如果确定输入的预处理是必要的,则对输入进行预处理。在操作404,如果确定输入的预处理不是必要的,则不对输入进行预处理。在一些方面,操作404由lu服务器上的lu解码器执行。

在操作406,向每个特征提取器发送输入。在操作406处发送的输入可以被预处理或者可以不被预处理。每个特征提取器使用特征集定义来从所接收的nl输入中提取潜在特征。换言之,每个特征提取器利用它们的特征数据库(诸如实体字典)来分析nl输入,以确定所接收的输入的潜在特征。在一些示例中,潜在特征包括诸如客户端意图、域、实体等项目。此外,潜在特征可以包括针对每个确定的项目的置信度得分。在操作406,可以利用在不同的特征服务器上的任何数目的特征提取器。在一些方面,特征提取器可以并行地处理或生成潜在特征。换言之,每个特征提取器可以评估或处理所接收的输入,以同时地或在交叠的时间生成潜在特征并且向nlu系统的lu服务器发送潜在特征。

在一些方面,每个特征提取器具有特定的特征特性。在其他方面,每个特征提取器具有与每个其他特征提取器不同的特定的特征特性。在另外的方面,特征提取器可以是通用特征提取器。因此,在操作406,可以从任何现有的nlu系统或新创建的nlu系统接收潜在特征。

在操作408,从每个特征提取器接收潜在特征。在操作408期间,nlu系统的lu服务器可以接收潜在特征。

在操作410,评估潜在特征以确定或估计nl输入的输入特征。在一些方面,在操作410,通过聚合(或处理)潜在特征并且通过将聚合的特征输入到lu模型中来评估输入特征。在一些方面,lu模型聚合潜在特征。在其他方面,lu解码器聚合潜在特征。输入特征可以包括诸如客户端意图、域和实体等项目。此外,输入特征可以包括针对每个确定的项目的置信度得分。

在操作412,基于输入特征来生成针对输入的响应。响应包括输入的语义含义。在一些方面,基于输入特征和/或预先训练的lu模型和/或潜在特征来确定语义含义。在一些方面,操作412由nlu系统的lu服务器上的lu解码器来执行。

在一些方面,方法400包括操作414。在操作414,向客户端设备发送响应。客户端设备可以向客户端设备的用户提供响应,或者利用响应来确定如何对来自客户端设备的用户的所接收的输入进行响应。

图5-8和相关联的描述提供了可以实践本公开的各方面的各种操作环境的讨论。然而,关于图5-8示出和讨论的设备和系统是出于示例和说明的目的,并不对可以用于实践本文中描述的本公开的各方面的大量计算设备配置进行限制。

图5是示出可以实践本公开的各方面的计算设备500的物理部件(例如,硬件)的框图。例如,自然语言理解(nlu)系统102可以由计算设备500来实施。在一些方面,计算设备500是移动电话、智能手机、平板电脑、平板手表、智能手表、可穿戴计算机、个人计算机、台式计算机、游戏系统、膝上型计算机等。下面描述的计算设备部件可以包括:可以被执行以采用方法300或400、并且实施本文中公开的系统100或200的部分的用于nlu系统的计算机可执行指令。在基本配置中,计算设备500可以包括至少一个处理单元502和系统存储器504。取决于计算设备的配置和类型,系统存储器504可以包括但不限:于易失性存储器(例如,随机存取存储器)、非易失性存储器(例如,只读存储器)、闪存或这样的存储器的任何组合。系统存储器504可以包括操作系统505和适合于运行软件应用520的一个或多个程序模块506。例如,操作系统505可以适合于控制计算设备500的操作。此外,本公开的各方面可以结合图形库、其他操作系统或者任何其他应用程序来实践,并且不限于任何特定的应用或系统。这个基本配置在图5中通过虚线508内的那些部件来示出。计算设备500可以具有附加的特征或特征。例如,计算设备500还可以包括附加的数据存储设备(可移除的和/或不可移除的),诸如例如磁盘、光盘或磁带。这样的附加的存储器在图5中用可移除存储设备509和不可移除存储设备510示出。例如,训练特征、潜在特征、输入特征和/或响应可以存储在所示出的任何存储设备上。

如上所述,多个程序模块和数据文件可以存储在系统存储器504中。当在处理单元502上执行时,程序模块506(例如,nlu系统102)可以执行过程,包括但不限于不限于执行如本文中描述的方法300和/或方法400。例如,处理单元502可以实施nlu系统102。可以根据本公开的各方面来使用的、并且特别地用于生成屏幕内容的其他程序模块可以包括:数字助理应用、语音识别应用、电子邮件应用、社交网络应用、协作应用、企业管理应用、消息传递应用、文字处理应用、电子表格应用、数据库应用、演示应用、联系人应用、游戏应用、电子商务应用、电子商业应用、交易应用、兑换(exchange)应用、日历应用等。在一些方面,nlu系统102由以上引用的应用之一来执行。

此外,本公开的方面可以在包括分立电子元件、包含逻辑门的封装或集成电子芯片、利用微处理器的电路、或包含电子元件或微处理器的单个芯片上的电路中实践。例如,本公开的各方面可以经由片上系统(soc)来实践,其中图5所示的每个或多个部件可以集成到单个集成电路上。这样的soc器件可以包括一个或多个处理单元、图形单元、通信单元、系统虚拟化单元和各种应用特征,所有这些都作为单个集成电路被集成(或“烧制”)到芯片基底上。当经由soc操作时,本文中描述的关于客户端能够切换协议的能力的功能可以经由与单个集成电路(芯片)上的计算设备500的其他部件集成的应用特定的逻辑来操作。本公开的各方面还可以使用能够执行逻辑操作(诸如例如and、or和not)的其他技术来实践,其包括但不限于机械、光学、流体和量子技术。另外,本公开的各方面可以在通用计算机内或者在任何其他电路或系统中实践。

计算设备500还可以具有一个或多个输入设备512,诸如键盘、鼠标、笔、麦克风或者其他声音或语音输入设备、触摸或轻扫输入设备等。计算设备500还可以包括输出设备514,诸如显示器、扬声器、打印机等。上述设备是示例,并且可以使用其他设备。计算设备500可以包括一个或多个通信连接516,允许与其他计算设备550的通信的。合适的通信连接516的示例包括但不限于:rf发射器、接收器和/或收发器电路、通用串行总线(usb)、并行和/或串行端口。

本文中使用的术语计算机可读介质或存储介质可以包括计算机存储介质。计算机存储介质可以包括:以用于存储诸如计算机可读指令、数据结构或程序模块等信息的任何方法或技术来实施的易失性和非易失性、可移除和不可移除介质。系统存储器504、可移除存储设备509和不可移除存储设备510都是计算机存储介质示例(例如,存储器存储)。计算机存储介质可以包括:ram、rom、电可擦除只读存储器(eeprom)、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光存储、盒式磁带、磁带、磁盘存储或其他磁性存储设备、或者可以用于存储信息并且可以被计算设备500访问的任何其他制品。任何这样的计算机存储介质可以是计算设备500的部分。计算机存储介质不包括载波或其他传播或调制的数据信号。

通信介质可以通过计算机可读指令、数据结构、程序模块或调制数据信号中的其他数据(诸如载波或其他传输机制)来实施,并且包括任何信息传递介质。术语“调制的数据信号”可以描述:以能够在信号中对信息进行编码的方式设置或改变其一个或多个特征的信号。作为示例而非限制,通信介质可以包括有线介质(诸如有线网络或直接有线连接)以及无线介质(诸如声学、射频(rf)、红外线和其他无线介质)。

图6a和图6b示出了可以实践本公开的各方面的移动计算设备600,例如移动电话、智能手机、平板电脑、平板手表、智能手表、可穿戴计算机、个人计算机、台式计算机、游戏系统、膝上型计算机等。参考图6a,示出了适合于实施这些方面的移动计算设备600的一个方面。在基本配置中,移动计算设备600是具有输入元件和输出元件两者的手持式计算机。移动计算设备600通常包括显示器605和允许用户向移动计算设备600中输入信息的一个或多个输入按钮610。移动计算设备600的显示器605也可以用作输入设备(例如,触摸屏显示器)。

可选的侧面输入元件615(如果包括)允许另外的用户输入。侧面输入元件615可以是旋转开关、按钮或任何其他类型的手动输入元件。在备选方面,移动计算设备600可以合并更多或更少的输入元件。例如,在一些方面,显示器605可以不是触摸屏。在又一备选方面,移动计算设备600是便携式电话系统,诸如蜂窝电话。移动计算设备600还可以包括可选的小键盘635。可选的小键盘635可以是物理小键盘,或者是在触摸屏显示器上生成的“软”小键盘。

除了或代替与显示器605和/或小键盘635相关联的触摸屏输入设备之外,自然用户界面(nui)可以被合并在移动计算设备600中。如本文中使用的,nui包括使得用户能够以“自然”方式与设备交互,而不受由输入设备(诸如鼠标、键盘、遥控器等)施加的人为约束的影响的任何接口技术。nui方法的示例包括:依赖于语音识别、触摸和手写笔识别、屏幕上和屏幕附近的手势识别、空中手势、头部和眼睛跟踪、声音和语音、视觉、触摸、手势和机器智能的那些nui方法。

在各个方面,输出元件包括用于示出图形用户界面(gui)的显示器605。在本文中公开的各方面,各种用户信息收集可以被显示在显示器605上。另外的输出元件可以包括视觉指示器620(例如,发光二极管)和/或音频换能器625(例如,扬声器)。在一些方面,移动计算设备600合并有用于向用户提供触觉反馈的振动换能器。在又一方面,移动计算设备600合并有用于向外部设备发送信号或从外部设备接收信号的输入和/或输出端口,诸如音频输入(例如,麦克风插孔)、音频输出(例如,耳机插孔)和视频输出(例如,hdmi端口)。

图6b是示出移动计算装置的一个方面的架构的框图。也就是说,移动计算设备600可以合并有用于实施一些方面的系统(例如,架构)602。在一个方面,系统602被实施为能够运行一个或多个应用(例如,浏览器、电子邮件、日历、联系人管理器、消息传递客户端、游戏和媒体客户端/播放器)的“智能手机”。在一些方面,系统602被集成作为计算设备,诸如集成的个人数字助理(pda)和无线电话。

一个或多个应用程序666和/或nlu系统102可以被加载到存储器662中,并且在操作系统664上或者与操作系统664相关联地运行。应用程序的示例包括:电话拨号程序、电子邮件程序、个人信息管理(pim)程序、文字处理程序、电子表格程序、互联网浏览器程序、消息传递程序等。系统602还包括存储器662内的非易失性存储区域668。非易失性存储区域668可以用于存储在系统602断电时不应当丢失的持久信息。应用程序666可以使用非易失性存储区域668中的信息,并且将信息存储在非易失性存储区域668中,诸如由电子邮件应用使用的电子邮件或其他消息等。同步应用(未示出)也驻留在系统602上,并且被编程为与驻留在主机上的相应的同步应用交互,以使得存储在非易失性存储区域668中的信息保持与存储在主机处的相应信息同步。应当理解,其他应用可以被加载到存储器662中,并且在移动计算设备600上运行。

系统602具有电源670,电源670可以被实施为一个或多个电池。电源670可以还包括外部电源,诸如对电池进行补充或再充电的ac适配器或电动对接支架。

系统602还可以包括无线电672,其执行发射和接收射频通信的功能。无线电672经由通信载波或服务提供商来支持系统602与“外部世界”之间的无线连接。去往和来自无线电672的传输是在操作系统664的控制下进行的。换言之,由无线电672接收的通信可以经由操作系统664传播到应用程序666,反之亦然。

视觉指示器620可以用于提供视觉通知,和/或音频接口674可以用于经由音频换能器625产生可听通知。在所示出的方面,视觉指示器620是发光二极管(led),并且音频换能器625是扬声器。这些设备可以直接耦合到电源670,使得当被激活时,即使处理器660和其他部件可能关闭以保存电池电力,它们仍然在由通知机制规定的持续时间内保持开启。led可以被编程为无限期地保持开启,直到用户采取行动来指示设备的开机状态。音频接口674用于向用户提供可听信号以及从用户接收可听信号。例如,除了耦合到音频换能器625之外,音频接口674还可以耦合到麦克风以接收可听输入。系统602可以还包括视频接口676,其支持车载相机630的操作记录静止图像、视频流等。

所述系统602的移动计算设备600可以具有附加的特征或功能。例如,移动计算设备600还可以包括附加的数据存储设备(可移除的和/或不可移除的),诸如磁盘、光盘或磁带。这样的附加存储在图6b中通过非易失性存储区域668示出。

如上所述,由移动计算设备600生成或捕获并且经由系统602存储的数据/信息可以本地存储在移动计算设备600上,或者数据可以存储在任何数目的存储介质上,这些存储介质可以由设备经由无线电672或经由移动计算设备600与关联于移动计算设备600的分离的计算设备(例如,诸如因特网等分布式计算网络中的服务器计算机)之间的有线连接来访问。应当理解,这样的数据/信息可以经由无线电672经由移动计算设备600、或者经由分布式计算网络来访问。类似地,根据众所周知的数据/信息传送和存储装置(包括电子邮件和协作的数据/信息共享系统),这样的数据/信息可以容易地在计算设备之间传送以用于存储和使用。

图7示出了如上所述的用于处理在计算系统处从远程源(诸如通用计算设备704、平板电脑706或移动设备708)接收的数据的系统的架构的一个方面。在服务器设备702处显示的内容可以被存储在不同的通信信道或其他存储类型中。例如,各种文档可以使用目录服务722、网络门户724、邮箱服务726、即时消息存储器728或社交网站730来存储。作为示例,nlu系统102可以在通用计算设备704、平板计算设备706和/或移动计算设备708(例如,智能手机)中实施。在其他方面,服务器702被配置为经由网络715来实现nlu系统102。

图8示出了可以执行本文中公开的一个或多个方面的示例性平板计算设备800。另外,本文中描述的各方面和功能可以在分布式系统(例如,基于云的计算系统)上运行,其中应用功能、存储器、数据存储和取回以及各种处理功能可以通过诸如因特网或内联网等分布式计算网络彼此远离地运行。用户界面和各种类型的信息可以经由机载计算设备显示器,或者经由与一个或多个计算设备相关联的远程显示单元来显示。例如,用户界面和各种类型的信息可以在墙面上被显示和交互,其中用户界面和各种类型的信息被投影到该墙面。与可以实践本发明的各方面的多个计算系统的交互包括键击输入、触摸屏输入、语音或其他音频输入、其中相关联的计算设备配备有用于捕获和解释用于控制计算设备的功能的用户手势的检测(例如,相机)功能的手势输入等。

在一些方面,提供了一种语言理解系统。语言理解系统包括语言理解服务器。语言理解服务器包括处理器和存储器。处理器执行存储在存储器上的指令以执行方法。该方法包括从多个特征提取器中取回训练特征,并且基于训练算法来估计模型参数以形成经训练的语言理解模型,该训练算法利用来自不同的特征服务器的训练特征。多个特征提取器各自位于不同的特征服务器上。语言理解服务器与不同的特征服务器分离。在一些方面,该方法还包括从客户端设备接收自然语言输入,并且响应于接收到自然语言输入来向多个特征提取器发送自然语言输入。在另外的方面,该方法还包括在向多个特征提取器发送自然语言输入之后从多个特征提取器接收潜在特征,并且接收和评估潜在特征以确定针对自然语言输入的输入特征。在一些方面,该方法还包括基于输入特征来确定自然语言输入的语义,并且向客户端设备发送包括自然语言输入的语义含义的响应。

在其他方面,提供了一种用于训练和使用自然语言理解系统的方法。该方法包括训练语言理解系统的语言理解模型。语言理解模型的训练包括在语言理解服务器处从多个特征提取器接收训练特征,并且基于训练算法来估计模型参数以形成经训练的语言理解模型,该训练算法利用来自不同的特征服务器的训练特征。多个特征提取器各自位于不同的特征服务器上。语言理解服务器与不同的特征服务器分离。

在其他方面,提供了一种系统。该系统包括至少一个处理器和存储器。存储器包括存储在其上的计算机可执行指令。计算机可执行指令由至少一个处理器执行。计算机可执行指令引起该系统执行操作,该操作包括:在自然语言服务器上从客户端设备接收自然语言输入,从自然语言服务器向第一服务器上的第一特征提取器发送自然语言输入,从自然语言服务器向第二服务器上的第二特征提取器发送自然语言输入,以及从自然语言服务器向第三服务器上的第三特征提取器发送自然语言输入。第一服务器、第二服务器、第三服务器和自然语言服务器彼此不同并且彼此分离。计算机可执行指令还引起该系统执行操作,该操作包括由自然语言服务器从第一特征提取器接收自然语言输入的第一潜在特征集,由自然语言服务器从第二特征提取器接收自然语言输入的第二潜在特征集,以及由自然语言服务器从第三特征提取器接收自然语言输入的第三潜在特征集。计算机可执行指令还引起该系统执行操作,该操作包括对第一潜在特征集、第二潜在特征集和第三潜在特征集进行聚合以形成聚合的潜在特征集,利用语言理解模型来评估聚合的潜在特征集,该语言理解模型利用来自第一特征提取器、第二特征提取器和第三特征提取器的训练特征而被训练,基于评估聚合的潜在特征集来确定用户意图、域和实体以及相关联的置信度评分,并且基于用户意图、域和实体以及相关联的置信度得分来生成响应。

根据权利要求19所述的系统,其中第一特征提取器是辅助语言理解系统,第二特征提取器是位置提取器,并且第三特征提取器是地点类型提取器。

上面参考根据本公开的各方面的方法、系统和计算机程序产品的框图和/或操作说明来描述本公开的各方面。框中记录的特征/动作可以不按照在任何流程图中示出的顺序发生。例如,取决于所涉及的功能/动作,连续示出的两个框实际上可以基本上同时执行,或者框有时可以以相反的顺序执行。

本公开参考附图描述了本技术的一些方面,其中仅描述了一些可能的方面。然而,其他方面可以以很多不同的形式来实施,并且本文中公开的具体方面不应当被解释为限于本文中阐述的本公开的各个方面。相反,提供这些示例性方面使得本公开是彻底和完整的,并且向本域技术人员充分地传达其他可能方面的范围。例如,在不偏离本公开的范围的情况下,可以修改和/或组合本文中公开的各个方面中的各方面。

虽然本文中描述了具体方面,但是本技术的范围不限于这些具体方面。本领域技术人员将认识到在本技术的范围和精神内的其他方面或改进。因此,具体的结构、动作或介质被公开仅作为说明性的方面。本技术的范围由以下权利要求和其中的任何等同物来限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1