首页> 中国专利> 基于生成的子查询的集合确定复合查询的响应内容

基于生成的子查询的集合确定复合查询的响应内容

摘要

实现方式涉及基于作为复合查询的提交的查询确定多个子查询的集合共同作为复合查询的适当解释。那些实现方式进一步涉及响应于这种确定提供针对所确定的集合的每个子查询的对应的命令。每个命令都去往(一个或多个代理中的)对应的代理,并使该代理生成并提供对应的响应内容。那些实现方式进一步涉及使内容响应于所提交的查询被渲染,其中,内容基于响应于命令接收的对应的响应内容。

著录项

  • 公开/公告号CN112236765A

    专利类型发明专利

  • 公开/公告日2021-01-15

    原文格式PDF

  • 申请/专利权人 谷歌有限责任公司;

    申请/专利号CN201880094249.X

  • 申请日2018-05-07

  • 分类号G06F16/332(20190101);G06F16/33(20190101);G10L15/22(20060101);G06F16/215(20190101);G06F16/903(20190101);G06F16/338(20190101);G06F16/242(20190101);G10L15/26(20060101);

  • 代理机构11219 中原信达知识产权代理有限责任公司;

  • 代理人周亚荣;邓聪惠

  • 地址 美国加利福尼亚州

  • 入库时间 2023-06-19 09:33:52

说明书

背景技术

计算系统可以处理来自于人类的各种查询。例如,人类可以参与与在本文中称为“自动助理”(也称为“聊天机器人”、“交互式个人助理”、“智能个人助理”、“个人话音助理”、“谈话代理”等)的交互式软件应用的人机对话。例如,人类(其在他们与计算系统交互时可以被称为“用户”)可以使用自由形式自然语言输入和/或通过键入的自由形式的自然语言输入来提供命令、查询和/或请求(在本文中统称为“查询”),该自由形式自然语言输入可以是被转换成文本并且然后处理的声音话语。

计算系统使用响应内容来响应查询。例如,响应于提交给搜索系统的对“Whattime is it in Paris,France(法国巴黎现在几点钟)”的查询,搜索系统可以提供反映法国巴黎当前时间的响应。同样地,例如,响应于提供给自动助理的“Turn off the couchlight(关闭沙发灯)”的话语,自动助理可以使“couch light(沙发灯)”关闭,并提供确认沙发灯已关闭的响应。尽管各种计算系统可以适当地响应许多查询,但是许多系统无法执行复合查询。例如,许多计算系统都因为用户的话语“What time is it in Paris,France,what's the population,and what's the average high temperature in July(法国巴黎现在几点钟,人口多少,7月的平均高温是多少)”而失败。例如,许多计算系统通过提供错误的响应,未确定适当的响应,而是提供默认的错误响应等方式而失败。结果,用户经常被迫将复合查询拆分为多个不同类的查询,这可能会共同要求更多的计算机和/或网络资源来处理。此外,抑制了用户与计算系统的交互。

发明内容

本文所述的实现方式涉及基于作为复合查询的提交的查询来确定多个子查询的集合共同是复合查询的适当解释。那些实现方式进一步涉及响应于这种确定,为所确定的集合的每个子查询提供对应的命令。每个命令都发送给(一个或多个代理中的)对应的代理,并使该代理生成并提供对应的响应内容。此外,那些实现方式进一步涉及响应于提交的查询而使得内容被渲染,其中,该内容基于响应于命令而接收到的对应的响应内容。

因而,本文公开的实现方式使得用户能够提交复合查询,并且能够生成和提供对那些复合查询的适当响应。例如,这可以通过减少例如需要由用户提供的输入量(例如,由用户提供给自动助理界面的输入)来改善人机交互。例如,用户可以提供包括复合查询并且具有第一持续时间的单个口头话语,代替需要提供多个不同类话语,这些不同类话语共同地具有比第一持续时间更长的第二持续时间。除了改善人机交互(例如,人类-自动助理交互)之外,相对于例如要求用户将复合查询拆分为多个不同类查询的技术,这样的实现方式还可以直接产生各种计算机和/或网络效率。例如,与将复合查询分成多个不同类查询的多个口头话语相比,包括复合查询的单个口头话语可以具有更短的持续时间和/或包括更少的单词。因而,这种单个口头话语的声音到文本和/或其他处理可以比多个口头话语的声音到文本处理更高效。作为另一示例,可以利用单个口头话语的单个客户端到服务器传输(或其客户端侧声音到文本转换)来传达复合查询,以代替可能需要多个口头话语的多个(总体上更高数据)传输。作为又另一示例,可以利用单个服务器到客户端传输来提供响应于复合查询的内容,该内容的大小可以小于响应于多个口头话语的多个内容实例的大小,和/或与响应于多个口头话语的多个内容实例相比,可以更高效地(例如,在更少的时间内)渲染内容。

在各个实现方式中,用户通过讲出单个口头话语来提交复合查询。例如,可以执行单个口头话语的声音到文本转换来生成与复合查询相对应的文本。例如,可以响应于用户经由客户端设备的助理界面提供对应的口头话语来生成文本“How far is Paris andwhat's the weather there(巴黎有多远,那里的天气如何)”。助理界面可以经由客户端设备的自动助理客户端来实现,并且使用户能够与自动助理进行交互,自动助理可以经由自动助理客户端和/或经由一个或多个远程计算设备(例如,基于云的自动助理组件)来实现。

本文所述的实现方式生成一个或多个子查询的集合,其中,每个集合中的每个子查询共同表示复合查询的一种解释。作为一个示例,并继续前面的示例,可以生成子查询的集合,其包括“How far is Paris(巴黎有多远)”和“What's the weather in Paris(巴黎天气如何)”的子查询。

此外,可以为每个子查询的集合确定质量得分。如果集合之一的质量得分满足阈值,则可以选择该集合作为响应于复合查询而用于获得和/或提供用于渲染的内容的集合。在一些实现方式中,确定给定集合的质量得分满足阈值可以包括:确定相对于其他集合的质量得分,给定集合的质量得分满足阈值(由此指示与其他集合的子查询相比,给定集合的子查询是更合适的解释);确定给定集合的质量得分相对于复合查询质量得分满足阈值,该复合查询质量得分是针对复合查询可选地确定的,不将其拆分为子查询(由此指示与不拆分复合查询相比,将复合查询拆分为子查询更合适);和/或确定给定集合的质量得分满足固定阈值(由此指示给定集合的子查询是一致的解释)。在一些实现方式中,在确定子查询的集合的质量得分时,可以确定该集合的每个子查询的个别质量得分,然后可以基于该集合的子查询的个别质量得分确定该集合的子查询的质量得分。给定集合的质量得分可以指示例如该集合正确表示包括在文本中的单独查询的意图的似然性。例如,对于复合查询“What's the weather in Turks and Caicos and Haiti(特克斯,凯科斯和海地的天气如何)”,可以生成第一子查询的集合,其中包括“What's the weather in Turks(特克斯的天气如何)”,“What's the weather in Caicos(凯科斯的天气如何)”和“What's theweather in Haiti(海地的天气如何)”(即由于“Turks and Caicos”是一个国家,因此无法正确反映用户意图的集合)。此外,可以生成第二子查询的集合,其包括“What's theweather in Turks and Caicos(特克斯,和凯科斯的天气如何)”和“What's the weatherin Haiti(海地的天气如何)”,正确地分开了各个国家。根据本文所述的技术,可以为第一集合确定第一质量得分,并且可以为第二集合确定第二质量得分,并且第二集合(可以适当地反映用户的意图)可以根据第一和第二质量得分在第一集合上进行选择。

如上所述,如果集合之一的质量得分满足阈值,则可以将其选择为将用于响应于复合查询而获得和/或提供用于渲染的内容的集合。对于所选择的集合的每个子查询,都生成命令并将其提供给对应的代理,从对应的代理接收响应内容,并提供内容以进行渲染,其中内容基于从代理接收到的响应内容。向其提供命令的代理可以是例如通用搜索系统或特定代理,诸如本文所述的第一方(IP)或第三方(BP)助理代理。作为一个示例,对于“What'sthe weather in Paris”的子查询,可以将结构化命令提供给请求“Paris”当前天气的天气代理。作为另一示例,对于“Turn on the couch light”的子查询,可以将结构化命令提供给3P照明代理,使3P代理将“couch light”(映射到经由其提交复合查询的客户端设备)转换为“on”状态。作为又另一示例,对于“can an ant jump(蚂蚁能跳吗)”的子查询,可以将符合该查询的命令提交给搜索系统。在一些实现方式中,可以将从子查询的集合生成的多个命令提供给单个代理,而在其他实现方式中,将第一命令提供给第一代理,将第二命令提供给第二代理,等等。

响应于被提供命令,对应的代理提供响应内容。然后,可以将基于响应内容的内容渲染给用户。渲染的内容可以是响应内容本身,或者是基于响应内容确定,但是不严格符合响应内容的内容。例如,响应于来自天气代理的集合响应内容的第一子查询可以包括文本“80degrees and sunny(80度,晴天)”,并且响应于来自照明代理的集合响应内容的第二子查询可以包括实现了照明命令的“confirmation(确认)”。使要渲染的内容可以包括指示已实现了照明命令的可听见的“ding(叮)”声,以及“80degrees and sunny”的讲出输出,即文本“80degrees and sunny”的文本到语音转换。在一些实现方式中,可以利用来自原始子查询的一个或多个词项来渲染响应内容。例如,对于发送到基于“What's the weather inParis”的子查询生成的天气代理的“Paris”命令,代理可以提供结果“68”,并且可以利用从子查询中识别出词项“Paris”,经由声音响应“The weather in Paris is 68degreesFahrenheit right now,(巴黎现在的天气是华氏68度)”向用户渲染响应内容。在一些实现方式中,来自助理代理的响应内容可以被用来生成附加子查询,来自附加子查询的响应内容被渲染给用户。

在一些实现方式中,一个或多个实体可以在查询文本中被识别,并且可以被用来生成集合的子查询。例如,对于“Tell me how long it would take to bike 25miles andrun 2miles(告诉我骑自行车25英里并跑2英里要花多长时间)”的文本,可以识别与“biking(骑自行车)”和“running(跑)”相关联的实体的别名。可以生成包括通常用作搜索查询的模式的子查询,诸如“How long would it take to travelby行驶<距离>需要多长时间)”的模式。因为查询包括成对的距离和运输模式,所以会生成两个子查询的集合:“How long would it take to travel25miles by bike(骑自行车行驶25英里需要多长时间)”和“How long would it take totravel 2miles by running(跑步2英里需要多长时间)”。在某些情况下,可以在单个文本中识别出多种模式(例如,“I want to go to Paris,show me restaurants and hotelsthere(我想去巴黎,告诉我那里的餐馆和旅馆)”。

作为另一示例,模式可以包括一个或多个词项和/或实体,诸如“What's theweather in(中的天气如何)”,其中是城市实体别名的占位符。因而,对于“What's the weather in Paris and Rome(巴黎和罗马的天气如何)”的查询,可以基于文本中的词项与模式中的词项之间的相似性来生成“What's the weather in Paris(巴黎的天气如何)”和“What's the weather in Rome(罗马的天气如何)”子查询。在某些情况下,可以将通常辨识的模式与可用代理相关联,并且可以将这些常见模式用于确定子查询。例如,天气代理可以与“weather in(中的天气)”,“weather inon(中的天气)”和/或“temperature in(中的温度)”的常见模式相关联。然后,可以利用相关联的模式以基于文本中的实体以及模式与文本之间的相似性来生成一个或多个子查询。

在一些实现方式中,可以基于文本中的前缀和/或后缀(即,分别在文本开头和结尾处的一个或多个词项)来生成一个或多个子查询。例如,文本“When were Romania andPoland founded(罗马尼亚和波兰何时建立)”包括前缀“When were(何时)”和后缀“founded(建立)”。可以生成包括“When was Romania founded(罗马尼亚何时建立)”和“When was Poland founded(波兰何时建立)”的子查询的集合,两个子查询都包括原始文本的前缀(具有动词的重新变位)和后缀。

作为另一示例,可以基于仅包括前缀或仅包括后缀的文本来生成一个或多个子查询。例如,文本“turn on the kitchen lights and the TV in the living room(打开厨房的灯和客厅中的电视)”包括前缀“turn on(打开)”,该前缀适用于两种不同的动作(即,打开厨房的照明设备和打开客厅里的电视)。通过将前缀“turn on”附加到每个子查询,可以生成包括子查询“turn on the kitchen lights(打开厨房的灯)”和“turn on theliving room TV(打开客厅电视)”的集合。

提供以上说明作为本文公开的各个实现方式的概述。那些各个实现方式以及附加实现方式在本文中更详细地加以描述。

一方面,提供了一种由一个或多个处理器实现的方法,该方法包括:在用户的客户端设备的助理界面处接收响应于检测到用户的单个口头话语而生成的文本,该文本对应于单个口头话语并基于单个口头话语的声音到文本转换而生成;基于文本生成子查询的集合,该集合的子查询至少包括第一子查询和第二子查询,其中,该集合的子查询共同定义文本的一个候选解释;确定该子查询的集合的质量得分;以及确定该子查询的集合的质量得分满足至少一个阈值。响应于确定质量得分满足阈值,该方法进一步包括:为该集合的每个子查询向对应的助理代理提供对应的命令,该对应的命令至少包括基于该第一子查询的第一命令和基于第二子查询的第二命令;响应于提供对应的命令,接收对应的响应内容,对应的响应内容至少包括响应于第一命令的第一响应内容和响应于第二命令的第二响应内容;以及使客户端设备向用户渲染基于对应的响应内容的内容。

本文公开的技术的这些和其他实现方式可以包括以下特征中的一个或多个。

在一些实现方式中,使客户端设备向用户渲染内容可以包括使客户端设备基于第一响应内容渲染第一内容,并且进一步包括使客户端设备基于第二响应内容渲染第二内容。

在一些实现方式中,第一命令被提供给第一助理代理,并且第一助理代理是由第三方控制的第三方代理,该第三方与控制助理界面的一方不同。在那些实现方式中,第一命令可以是基于第一子查询生成的结构化命令,其使第一助理代理改变第一已连接设备的状态,并且第一响应内容可以包括确认响应于结构化命令发生状态的改变。

在一些实现方式中,该方法可以进一步包括:基于文本,生成第二子查询的第二集合,第二集合的第二子查询与该集合的子查询相比是独特的,并且共同定义文本的附加候选解释;和确定第二子查询的第二集合的附加质量得分。此外,可以基于该集合的质量得分与第二集合的附加质量得分的比较来确定子查询的集合的质量得分满足阈值。

在一些实现方式中,确定集合的质量得分可以包括:确定第一子查询的第一质量得分;确定第二子查询的第二质量得分;以及根据第一质量得分和第二质量得分确定集合的质量得分。在那些实现方式中的一些中,确定第一子查询的第一质量得分可以包括确定第一子查询是否符合任何助理代理的一个或多个已辨识的命令,并且确定第二子查询的第二质量得分可以包括确定第二子查询是否符合任何助理代理的一个或多个已辨识的命令。

在一些实现方式中,该集合可以包括至少三个子查询。

在一些实现方式中,生成该集合可以包括生成文本的第一部分和文本的第二部分,其中,第一部分与第二部分相比是独特的,并且可以基于第一部分来生成第一子查询。此外,在那些实现方式中,可以基于第二部分并且基于所述文本中的不包括在文本的第二部分中的一个或多个词项来生成第二子查询。在那些实现方式的一些版本中,可以进一步基于所述文本中的不包括在文本的第一部分中的一个或多个词项来生成第一子查询。在那些实现方式的一些版本中,不包括在文本的第二部分中并且在生成第二子查询时采用的一个或多个词项可以包括来自文本的第一部分的至少一个词项。在那些版本中的一些中,不包括在文本的第二部分中并且在生成第二子查询时采用的一个或多个词项可以包括发生在文本的第一部分之前的至少一个词项。在那些版本中的一些中,不包括在文本的第二部分中并且在生成第二子查询时采用的一个或多个词项可以包括发生在文本的第二部分之后的至少一个词项。

在一些实现方式中,生成集合可以包括:识别文本中包括的一个或多个实体的别名;基于文本识别第一模式,其中,第一模式包括一个或多个词项和实体类型;基于第一模式生成第一部分;基于文本识别第二模式,其中,第二模式包括一个或多个第二词项和实体类型或附加的实体类型;基于第二模式生成第二部分;以对应一个别名替换第一部分中的实体类型来生成第一子查询;以及以对应一个别名替换第二部分中的实体类型或附加的实体类型以生成第二子查询。在那些版本中的一些中,第一模式和第二模式是独特的,并且第一子查询中的别名可以与第二子查询中的别名相同。在那些实现方式中的一些中,第一模式和第二模式可以相同,并且第一子查询中的别名可以与第二子查询中的别名不同。

在一些实现方式中,该方法可以进一步包括:基于响应内容来生成聚合查询;基于该聚合查询向一个或多个附加的助理代理提供聚合命令;以及响应于提供该聚合命令,从基于聚合响应内容的一个或多个附加的助理代理接收聚合响应内容。

在一些实现方式中,该方法可以进一步包括确定文本的文本质量得分,其中,确定子查询的集合的质量得分满足阈值可以基于质量得分与文本质量得分的比较。此外,响应于满足该阈值的子查询的集合的质量得分,该方法可以进一步包括基于该子查询的集合来生成命令,而不是基于文本来生成命令。

另一方面,提供了一种由一个或多个处理器实现的另一种方法,该方法包括:在用户的客户端设备的界面处接收响应于用户输入而生成的文本;基于至少包括第一子查询和第二子查询的文本生成子查询的集合,其中,该集合的子查询共同定义该文本的一个候选解释;确定该子查询的集合的集合质量得分;确定文本的文本质量得分;以及确定子查询的集合的质量得分满足至少一个阈值,包括相对于文本的文本质量得分的阈值。响应于确定质量得分满足阈值,该方法进一步包括:针对该集合的每个子查询向对应的代理提供对应的命令,该对应的命令至少包括基于第一子查询的第一命令和基于第二子查询的第二命令;响应于提供对应的命令而接收对应的响应内容,至少包括响应于第一命令的第一响应内容和响应于第二命令的第二响应内容;以及使客户端设备基于对应的响应内容向用户渲染内容。

另一方面,提供了一种由一个或多个处理器实现的另一种方法,该方法包括:在用户的客户端设备的界面处接收响应于用户输入而生成的文本;基于该文本生成子查询的集合,该集合的子查询至少包括第一子查询和第二子查询,该集合的子查询共同定义文本的一个候选解释;确定子查询的集合的集合质量得分;以及确定子查询的集合的质量得分满足至少一个阈值,包括相对于文本的文本质量得分的阈值。响应于确定质量得分满足阈值,该方法进一步包括:针对集合的每个子查询,向对应的代理提供对应的命令,对应的命令至少包括基于第一子查询的第一命令以及基于第二子查询的第二命令;响应于提供对应的命令而接收对应的响应内容,至少包括响应于第一命令的第一响应内容和响应于第二命令的第二响应内容;以及使客户端设备将基于第一响应内容的第一内容渲染给用户,并将基于第二响应内容的第二内容渲染给用户。

本文公开的技术的这些和其他实现方式可以包括以下特征中的一个或多个。

在一些实现方式中,该方法进一步包括确定文本满足一个或多个条件。仅在确定文本满足一个或多个条件之后,可以执行生成子查询的集合。

另一方面,提供了一种由一个或多个处理器实现的方法,该方法包括:在用户的客户端设备的助理界面处接收响应于检测到用户的单个口头话语而生成的文本,该文本对应于该单个口头话语并且基于该单个口头话语的声音到文本转换而生成;生成该文本的第一部分和该文本的第二部分,其中,第一部分于第二部分相比是独特的;基于第一部分生成第一子查询;基于第二部分并基于文本的第二部分中未包括的文本的一个或多个词项生成第二子查询;针对集合的每个子查询,将对应的命令提供给对应的助理代理,对应的命令至少包括基于第一子查询的第一命令和基于第二子查询的第二命令;响应于提供对应的命令接收对应的响应内容,该对应的响应内容至少包括响应于第一命令的第一响应内容和响应于第二命令的第二响应内容;以及使客户端设备向用户渲染基于对应的响应内容的内容。

另外,一些实现方式包括一个或多个计算设备的一个或多个处理器,其中一个或多个处理器可操作以执行存储在相关联的存储器中的指令,并且其中所述指令被配置成使得执行本文所述的任何方法。一些实现方式还包括一个或多个非暂时性计算机可读存储介质,其存储可由一个或多个处理器执行以执行本文描述的任何方法的计算机指令。

应当理解,本文中更详细描述的前述概念和附加概念的所有组合被认为是本文公开的主题的一部分。例如,出现在本公开的结尾处的要求保护的主题的所有组合被认为是本文公开的主题的一部分。

附图说明

图1描绘根据本文公开的各种实现方式的示例过程流程,该示例过程流程例示从单个话语生成多个子查询的集合,并为该集合中的每个子查询生成响应内容的示例。

图2描绘根据本文公开的各种实现方式的示例过程流程,该示例过程流程例示从包括复合查询的文本生成子查询的集合的示例。

图3图示根据本文公开的各种实现方式的示例过程流程,该示例过程流程例示针对基于复合查询生成的多个子查询生成响应内容,并在响应于复合查询而生成用于渲染的内容中利用响应内容的示例。

图4是示例环境的框图,其中可以响应于包括复合查询的话语来生成响应内容。

图5图示根据本文公开的各种实现方式的示例方法的流程图。

图6图示计算设备的示例架构。

具体实施方式

首先参考图1,接收到用户的单个口头话语180。例如,单个口头话语180可以基于来自客户端设备的一个或多个麦克风的输出来生成,并且可以被实施在通过一个或多个麦克风响应于用户讲出该口头话语而生成的音频数据中。单个口头话语180可以是用户的连续话语,诸如由声音活动检测器基于音频数据的分析确定的单个话语。

口头话语180被提供给语音到文本模块162,其将口头话语180转换成文本181。在一些情况下,单个口头话语180可以包括复合查询,因为它包括被组合成单个话语的多个子查询。例如,文本181“I want to go to Paris,show me hotels and the weather(我想去巴黎,告诉我旅馆和天气)”包括两个独立但相关的查询。一个子查询与巴黎的旅馆有关,第二子查询与巴黎的当前天气有关。

尽管图1中所示的技术以单个口头话语180的输入开始,但是可以经由一个或多个可替代来源从用户接收文本181。例如,用户可以例如经由虚拟键盘(例如,经由触敏显示器)和/或经由另一输入设备直接提交文本181。因而,尽管在图1中被描述为源自单个口头话语,但是文本181可以基于来自用户的任何单个输入来生成。

如下面更详细地所述的,集合生成器121可以基于文本181生成一个或多个子查询的集合(例如,集合182),并且可以选择给定的子查询的集合作为应为其生成响应内容,并且响应于单个话语180渲染对应内容的集合。例如,可以基于评分器122确定给定集合的质量得分满足至少一个阈值来选择给定集合。在那些实现方式中的一些中,评分器122也可以确定文本181本身的质量得分,并且基于确定其质量得分相对于针对文本181本身的质量得分满足阈值而选择给定集合。换句话说,在那些实现方式中,如果所选的给定集合的质量得分相对于针对文本181的质量得分满足阈值(以及可选地如果其满足一个或多个其他阈值),则仅选择子查询的给定的集合来代替文本181本身使用。

在一些实现方式中,集合生成器121总是生成一个或多个集合,并且将所生成集合的质量得分与文本181的质量得分进行比较。在一些实现方式中,通过集合生成器121的集合的生成取决于满足一个或多个标准的文本181。例如,一个或多个标准可以包括文本181的质量得分不满足阈值,由此指示文本181的响应内容(如果有)是低质量的。同样地,例如,一个或多个标准可以附加地或可替代地包括文本181不匹配对任何单个代理的所需输入,文本181无法从一个或多个(例如,任何)代理返回任何“非错误”响应内容等等。同样地,例如,一个或多个标准可以附加地或可替代地包括文本181包括指示可能的复合查询的一个或多个词项(例如,文本181包括词项“和”)。

集合生成器121生成一个或多个子查询的集合,诸如包括两个或多个子查询183和184的集合182。尽管集合182被示为包括两个子查询,但是集合生成器121可以生成包括任何数量的子查询的集合,如本文进一步所述。例如,文本181“What are the populationsof Paris and London,and who are their mayors(巴黎和伦敦的人口是多少,他们的市长是谁)”可能使得集合182包括子查询“What is the population of Paris(巴黎的人口是多少)”,“What is the population of London(伦敦的人口是多少)”,“Who is themayor of Paris(巴黎市长是谁)”以及“Who is the mayor of London(伦敦市长是谁)”。在生成集合182时,集合生成器121可以利用各种技术中的一种或多种,诸如本文进一步所述的那些技术。

在一些实现方式中,集合生成器121可以基于发生在文本181的开始处的前缀和/或发生在文本181的末尾处的后缀来生成子查询183和184。例如,并参考图2,文本“Whenwere Poland and Romania founded”205包括前缀“When were”210和后缀215“founded”。集合生成器121可以确定文本205的非前缀和非后缀部分“Poland and Romania(波兰和罗马尼亚)”可以基于(例如)两个国家被“and”分开的两个词项而被分成两个子查询。因而,集合生成器121将中间部分分为两部分,“Poland(波兰)”220和“Romania(罗马尼亚)”225。然后可以将前缀210和后缀215附加到部分220和部分225,产生子查询“When was Polandfounded”230和“When was Romania founded”235。如本示例中所示,当前缀和/或后缀附加到部分以允许主题一致时,前缀和/或后缀的某些词项可能会略微更改,诸如动词变位。此外,尽管图2的示例包括前缀和后缀两者,但是在一些情况下,集合生成器121可以仅附加前缀或仅附加后缀,这取决于初始文本181。例如,对于文本“Turn on the kitchen lightsand the living room TV”,可以利用前缀“Turn on”来生成子查询“Turn on the kitchenlights”和“Turn on the living room TV”。

在一些实现方式中,集合生成器121可以通过识别文本181中的一个或多个模式来生成子查询183。可以从包括频繁搜索查询模式、频繁语音命令和/或其他频繁查询的数据库中识别模式。可以基于先前命令的日志来识别频繁模式。而且,例如,一个或多个代理可以与通常被识别为特定代理的输入的模式相关联,并且集合生成器121可以检查文本181中与可用代理命令接近或共同的词项。例如,在某个位置提供温度的代理可以与询问天气的常见模式相关联,诸如“What is the current temperature in(中的当前温度是多少)”和/或“What's the weather in(中的天气怎么样)”。同样地,例如,控制一个或多个照明设备的代理可以具有相关联的模式“Turn on the lights(打开灯)”和/或“Turn off thelights(关闭<房间>的灯)”。

在一些实现方式中,可以向集合生成器121提供文本181,文本181已经用语音、实体和/或其他背景信息做标签。文本181的标签可以用于识别可以提供给代理的潜在模式。例如,集合生成器121可以接收带有标签词项的文本“I want to go to Paris,show mebars and what's the weather there(我想去巴黎,告诉我酒吧和那里的天气)”,包括被加标签为实体的“Paris”。基于文本中的词项,集合生成器121可以识别常见查询“bars in”和“weather in”。基于所标识的模式,集合生成器121可以通过将实体占位符替换为文本181中被标签的城市,来生成第一子查询“bars in Paris”和第二查询“weather in Paris”。作为另一示例,文本“I want to go Paris or Rome.What's theweather there(我要去巴黎或罗马。那里的天气如何)”可以得到识别模式“weather in”并生成子查询“weather in Paris”和“weather in Rome”。

在一些实现方式中,集合生成器121可以通过对文本181背景扩展来生成子查询183。背景扩展包括识别文本181中的实体的列表,并且进一步识别文本181中的一个或多个词项和/或模式。因而,实体列表可用于将文本扩展为列表中每个实体的多个子查询。例如,对于文本“What are the populations of Rome,Paris,and London,and who are theirmayors(罗马、巴黎和伦敦的人口是多少,以及他们的市长是谁)”,识别包括“Rome”、“Paris”和“London”的实体列表。在文本中进一步识别了两种模式:“Population of”和“Mayor of”。然后,集合生成器121可以通过将每个实体应用于每个识别出的模式,生成包括下列子查询“population of Rome(罗马的人口)”,“population ofParis(巴黎的人口)”,“population of London(伦敦的人口)”,“mayor of Rome(罗马的市长)”,“mayor of Paris(巴黎的市长)”以及“mayor of London(伦敦的市长)”的集合。

一旦已经生成了子查询183和184的集合182,就将集合182提供给集合评分器122以确定该集合182的质量得分。在一些实现方式中,评分器122确定指示提交文本181的用户可能对从集合181的子查询获得结果的似然性的质量得分。例如,对于包括子查询“Weatherin Paris”和“hotels in Paris”的集合182,评分器122可以确定指示原始文本181“"Iwant to go to Paris,show me the weather and hotels there(我要去巴黎,告诉我那里的天气和旅馆)”中所包括的询问由子查询表示的似然性的质量得分。在一些实现方式中,质量得分可以指示一个或更多可用代理将接收子查询作为输入的似然性。例如,集合生成器121可以生成包括子查询“What's the weather in Paris”和“What's the weatherin London”的集合,并且确定指示天气代理将基于子查询提供有意义的响应内容的似然性的质量得分。

在一些实现方式中,除了集合182之外,还可以将原始文本181提供给集合评分器122。可以为集合182确定质量得分,其指示如果被提供给一个或多个代理,集合182是否将引起来自可用代理的有意义内容。例如,针对文本“What's the weather in Trinidad andTobago(特立尼达和多巴哥天气如何)”,集合生成器121可以生成子查询“weather inTrinidad(特立尼达天气)”和“weather in Tobago(多巴哥天气)”。然而,由于“Trinidadand Tobago”是单个国家,所以原始文本“What's the weather in Trinidad and Tobago”可以提供比子查询更有意义的结果。因而,原始文本的质量得分可以比集合的质量得分更指示质量。因而,在那些实现方式中,可以采用原始文本181来生成命令从而提供给代理,并且可以采用来自代理的响应内容来向用户渲染内容。因而,可以通过仅在与原始文本相比,集合更可能提供有意义的响应内容时才基于子查询的集合提供命令,来改善与自动助理的用户交互。

在一些实现方式中,可以基于集合182的每个子查询的质量得分来确定质量得分。例如,可以将集合182提供给评分器122,然后,评分器122可以确定子查询182和183每一个的质量得分。这些质量得分可以基于,例如,每个子查询是对代理的有效输入的似然性和/或基于子查询是否是代表文本181的良好候选。在一些实现方式中,评分器122可以访问一个或多个数据库(未示出),数据库包括例如语法和响应动作(或更一般地,意图),视觉提示和响应动作,和/或触摸输入和响应动作之间的多个映射。例如,包括在映射中的语法可以随着时间的流逝被选择和/或学习,并且可以表示用户的常见意图。例如,一个语法“turnoff thelights(关闭灯)”可以被映射到意图,该意图调用响应动作,该响应动作引起中的一个或多个灯关掉。另一个语法“[weather|forecast]today(今天的[天气|预报])”可以与用户查询匹配,诸如“what's the weather today(今天的天气如何)”和“what's the forecast for today?(今天的天气预报怎样?)”。在一些实现方式中,子查询的质量得分可以基于出现在一个或多个先前查询日志中的子查询的频率。在一些实现方式中,可以基于响应于子查询的搜索结果的数量(和/或搜索结果的质量)来确定子查询的质量得分。在一些实现方式中,可以基于子查询是否对应于声音动作操作来确定质量得分。在一些实现方式中,子查询的质量得分可以基于子查询中不在文本中的多个词项,或者不在集合中的任何子查询中但是在文本中的多个词项中的一个或多个。然后可以采用子查询的质量得分来生成集合182的整体集合质量得分。

如果集合182的质量得分满足阈值,则将集合181提供给代理引擎123。例如,由评分器122确定的质量得分可以在0至1.0的范围内,其中1.0是用于表示文本181和/或精确匹配与可用代理相关联的一个或多个模式的理想候选。例如,如果集合质量得分超过阈值质量,诸如0.8,则可以将子查询182和183提供给代理引擎123。在一些实现方式中,如果集合质量得分不满足阈值,则作为代替可以将文本181提供给代理引擎123。在一些实现方式中,可以生成多个集合182,由评分器122对其评分,并且可以仅将具有最能指示质量的质量得分的集合182提供给代理引擎123。例如,可以生成第一集合并且并确定的质量得分可以是0.6,而可以使用所确定的质量得分0.8生成第二集合。只能将具有较高质量得分的集合提供给代理引擎123。

作为示例,集合生成器121基于文本生成第一集合和第二集合。然后,可以由评分器122对每个集合进行评分。此外,由评分器122对原始文本进行评分。例如,如果确定第一集合的质量得分为0.8,确定第二集合的质量得分为0.7,并且确定该集合的质量得分为0.6,则可以将第一集合提供给代理引擎123,因为第一集合的质量得分高于第二集合的质量得分和文本的质量得分两者。同样地,例如,集合(或文本)在被提供给代理引擎123之前可能必须满足基本阈值。在前面的示例中,基本阈值可以是0.75,并且第一集合的质量得分是满足基本阈值的唯一质量得分。因而,第一集合被提供给代理引擎123。

代理引擎123确定针对集合的每个子查询提供给代理的命令。命令包括直接提供给代理的一个或多个词项,这些词项传达来自子查询的必要信息。例如,用户可以提供“What's the weather in Paris”的查询,该查询包括为了提供给代理以接收有效的响应内容所不必要的一个或多个词项。作为代替,代理引擎123可以生成“Paris”命令并将该命令提供给天气代理。另外,例如,对于“What is the weather in Paris tomorrow(巴黎明天天气如何)”的查询,代理引擎123可以向天气代理生成“Paris,tomorrow”的命令。

对于每个子查询183和184,代理引擎123都生成命令185和186以提供给代理191和192。本文所使用的“代理”涉及自动助理所采用的一个或多个计算设备和/或软件。在某些情况下,代理可以与自动助理分开,和/或可以通过一个或多个通信通道与自动助理通信。在那些情况中的一些情况下,自动助理可以从第一网络节点向实现代理的功能的全部或各个方面的第二网络节点传输数据(例如,代理命令)。在某些情况下,代理可以是第三方(3P)代理,因为它是由与管理自动助理的一方分开的一方来管理的。在一些其他情况下,代理可以是第一方(IP)代理,因为它是由管理自动助理的同一方管理的。

代理被配置成从自动助理接收(例如,通过网络和/或经由API)调用请求和/或其他代理命令。响应于接收到代理命令,代理基于代理命令生成响应内容,并发送响应内容以提供基于响应内容的用户界面输出。例如,代理可以将响应内容传输到自动助理,以由自动助理基于响应内容提供输出。作为另一示例,代理本身可以提供输出。例如,用户可以经由客户端设备与自动助理进行交互(例如,可以在客户端设备上和/或在与客户端设备通信的网络中实现自动助理)。代理可以是安装在客户端设备上的应用,或者是远离客户端设备的可执行应用,但在客户端设备上是“可流式(streamable)”的。当应用被调用时,它可以由客户端设备执行和/或被客户端设备置于最前列(例如,其内容可以取代客户端设备的显示)。

在一些情况下,响应于根据本文公开的技术对特定代理的调用,可以将人类-自动助理对话至少临时地(实际上或有效地)转移到特定代理。例如,可以将基于特定代理的响应内容的输出提供给用户以促进对话,并且响应于该输出来接收进一步的用户输入。可以将进一步的用户输入(或其转换)提供给特定代理。特定代理可以在生成进一步的响应内容时利用其自身的语义引擎和/或其他组件,该进一步的响应内容可以用于生成进一步的输出以促进对话。该一般过程可以继续进行,直到例如特定代理提供终止特定代理对话的响应内容(例如,答案或解决方案而不是提示),用户的附加用户界面输入终止特定代理对话(例如,代替从自动助理或其他代理调用响应),等等。

在一些情况下,当对话有效地转移到特定代理时,自动助理仍可以充当中介。例如,在充当用户自然语言输入为声音输入的中介的情况下,自动助理可以将声音输入转换为文本,将文本(以及可选的文本注释)提供给特定代理,从特定代理接收响应内容,并提供基于特定响应内容的输出以渲染给用户。同样地,例如,在充当中介时,自动助理可以分析特定代理的用户输入和/或响应内容,以确定是否应终止与特定代理的对话,是否应将用户转移到替代代理,是否应根据特定代理对话等更新全局参数值。在一些情况下,对话可以实际地转移到特定代理(一旦被转移,无需自动助理充当中介),并且在发生一种或多种条件时,诸如被特定代理终止(例如,响应于经由特定代理完成了意图)时,可选地转移回自动助理。

如图所示,该流程图仅包括集合182中的两个子查询;然而,集合182可以包括任意数量的子查询,并且代理引擎123可以为多个子查询中的每一个生成命令。在一些实现方式中,命令可以基于对应子查询中包括的一个或多个关键词。例如,集合生成器121可以生成第一子查询183“What's the weather in Paris”和第二子查询184“Show me restaurantsin Paris(告诉我巴黎的餐馆)”。一旦已经对集合进行了评分并且182的质量得分满足阈值,则代理引擎123识别作为天气代理的第一代理191(即,基于第一子查询183返回有意义的响应内容)和提供娱乐场所的第二代理192。代理引擎123生成第一命令185“Paris”以提供给第一代理191,并且生成第二命令186“Paris,restaurants”以提供给第二代理192。

在一些实现方式中,可以将来自子查询的多个命令提供给同一代理。例如,集合生成器121可以生成集合181,该集合181包括子查询“What's the weather in London”和“What's the weather in Paris”。两个子查询都可以产生可以都被提供给同一代理的命令(例如,提供给天气代理的“London”和“Paris”)。

响应于正被提供的命令,代理191和192提供响应内容172和173。响应内容可以包括例如书面文本、图像、音频和/或可以提供给用户的其他媒体。例如,“weather”代理可以接收包括位置的命令,并且可以提供描述该位置的当前天气的文本,示出天气的图像(例如,雨,温度的图像)和/或天气的音频描述。而且,例如,与用户的一个或多个照明设备的控制相关联的代理可以接收指示特定灯和用户改变灯设置的意图的命令(例如“livingroom,dim to 50%(客厅,调暗至50%)”),并可以提供响应内容,其包括已成功执行该动作的确认。在一些实现方式中,代理命令可以是识别一个或多个时隙的“intent(意图)”和值的结构化命令,其中基于子查询生成“intent”和值。例如,对于“turn on couch light”的子查询,“turn on”的意图可以与“couch light”的值(或特定灯的一些其他相关联的标识符)配对,并且第二时隙可以包括用户和/或客户端设备的标识符,以便代理可以确定谁在发出请求。

基于接收到响应内容172和173,然后可以将内容提供给用户的设备以向用户渲染对应的内容。渲染内容可以包括例如向用户提供视觉输出,向用户提供文本输出和/或向用户提供音频输出。渲染的内容的形式可以基于用户设备的硬件和/或软件能力而变化。例如,渲染的内容可以被提供给智能电话,渲染的内容作为音频和图像提供。而且,例如,可以将渲染的内容提供给仅包括扬声器的助理设备,并且仅将其渲染为音频。在一些实现方式中,客户端设备渲染的内容可能与响应内容172和173不同。例如,代理可以提供响应内容作为文本,并且文本可以用于生成语音,然后由客户端设备渲染。

在一些实现方式中,可以用来自子查询183和184的附加词项来渲染响应内容172和173。例如,针对子查询“What's the weather in Paris”,可以向天气代理提供“Paris”命令。代理可以提供响应内容“72,sunny,with a chance of rain later(72,晴天,以后可能会下雨)”。然而,当渲染响应内容时,词项“the weather in Paris”可以被从子查询识别并进一步用于渲染内容,诸如“The weather in Paris is 72,sunny,with a chance ofrain later(巴黎的天气为72,晴天,稍后可能下雨)”,以便用户可以具有关于响应内容正在回答什么查询的背景。同样地,例如,针对查询“Turn off the kitchen lights”,响应内容只能包括成功关闭灯的指示。因而,为了提供背景,可以基于初始查询(和/或提供给代理的命令)将响应内容渲染为“Kitchen lights are now off(现在厨房灯已关)”。

在一些实现方式中,响应内容172和173不是由客户端设备立即渲染的,而是可以由代理引擎用来向代理提交新命令的。然后可以将随后的响应内容渲染给用户。例如,参考图3,提供了示例过程流程,该示例过程流程演示了针对基于复合查询生成的多个子查询生成响应内容,并且在响应于复合查询生成用于渲染的内容时采用响应内容的示例。对于所示示例,文本305“Divide the population of California by the population of Ohio(将加利福尼亚的人口除以俄亥俄州的人口)”得到“California(加利福尼亚)”310和“Ohio(俄亥俄州)”315的命令。这些命令可以由代理引擎123基于“What's the population ofCalifornia”和“What's the population of Ohio”的子查询生成,每个子查询都由集合生成器121生成。可以将命令提供给助理代理320,助理代理接受州的命令并提供该州的人口。然后从代理接收响应内容,该响应内容包括“California population”325和“Ohiopopulation 330”,每个数字都代表各州的人口。然后可以生成新的聚合命令335,其是响应内容325和330的聚合。然后将聚合命令335提供给算术代理340,算术代理340接受两个数字和运算。随后可以采用后续的响应内容350(数字)来使客户端设备渲染内容。

参考图4,提供响应于包括复合查询的话语能够生成响应内容的示例环境的框图。示例环境包括客户端计算设备106,所述客户端计算设备执行自动助理客户端107的实例。一个或多个基于云的自动助理组件160可以在一个或多个计算系统(统称为“云”计算系统)上实现,所述计算系统经由通常在110处指示的一个或多个局域网和/或广域网(例如,互联网)通信地耦合到客户端设备106。

自动助理客户端107的实例通过其与一个或多个基于云的自动助理组件160的交互的方式可以形成从用户的角度看起来是用户可以通过其参与人机对话的自动助理140的逻辑实例。因此,应理解,在一些实现方式中,与在客户端设备106上执行的自动助理客户端107接涉的用户实际上可以与他/她自己的自动助理140的逻辑实例接涉。为简洁起见,本文中用作“服务”特定用户的术语“自动助理”通常是指在用户操作的客户端设备106上执行的自动助理客户端107和一个或多个基于云的自动助理组件160(其可以在多个客户端计算设备的多个自动助理客户端之中共享)的组合。还应理解,在一些实现方式中,自动助理140可以对来自任何用户的请求进行响应,而不管用户是否实际地由自动助理140的所述特定实例“服务”。

客户端计算设备106可以是例如:台式计算设备、膝上型计算设备、平板计算设备、移动电话计算设备、用户的车辆的计算设备(例如,车载通信系统、车载娱乐系统、车载导航系统)、独立的交互式扬声器、诸如智能电视的智能电器设备,和/或包括计算设备的用户的可穿戴装置(例如,具有计算设备的用户的手表、具有计算设备的用户的眼镜、虚拟或增强现实计算设备)。可以提供附加和/或替代客户端计算设备。在各种实现方式中,客户端计算设备106可以可选地操作除自动助理客户端107之外的一个或多个其他应用,诸如,消息交换客户端(例如,SMS、MMS、在线聊天)、浏览器等等。在这些各种实现方式中的一些实现方式中,其他应用中的一个或多个可以可选地与自动助理107对接(例如,经由应用编程接口),或包括(还可以与基于云的自动助理组件160对接的)其自己的自动助理应用的实例。

自动助理140经由客户端设备106的用户界面输入和输出设备与用户进行人机对话会话。为了保护用户隐私和/或节省资源,在许多情况下,用户通常必须在自动助理将完全处理口头话语之前显式地调用自动助理140。可以响应于在客户端设备106处接收到的某个用户界面输入而发生自动助理140的显式调用。例如,可以经由客户端设备106调用自动助理140的用户界面输入可以可选地包括客户端设备106的硬件和/或虚拟按钮的致动。此外,自动助理客户端可以包括一个或多个本地引擎108,诸如,可操作以检测一个或多个讲出调用短语的存在的调用引擎。调用引擎可以响应于检测到讲出调用短语中的一个而调用自动助理140。例如,调用引擎可以响应于检测到诸如“Hey Assistant(嗨,助理)”、“OKAssistant(OK,助理)”和/或“Assistant(助理)”的讲出调用短语而调用自动助理140。调用引擎可以连续地处理(例如,如果不是处于“非活跃”模式)基于来自客户端设备106的一个或多个麦克风的输出的音频数据帧流,以监视讲出调用短语的出现。当监视讲出调用短语的出现时,调用引擎丢弃(例如,在临时存储在缓冲区中之后)不包括讲出调用短语的任何音频数据帧。然而,当调用引擎在处理后的音频数据帧中检测到讲出调用短语的出现时,调用引擎可以调用自动助理140。如本文所使用,“调用”自动助理140可以包括使自动助理140的一个或多个先前不活跃功能被激活。例如,调用自动助理140可以包括使一个或多个本地引擎108和/或基于云的自动助理组件130进一步处理基于其检测到调用短语的音频数据帧,和/或一个或多个接下来的音频数据帧(然而,在调用之前,没有发生音频数据帧的进一步处理)。例如,响应于自动助理140的调用,本地和/或基于云的组件可以执行将音频流到文本以生成子查询的集合的处理。

自动助理140的一个或多个本地引擎108是可选的,并且可以包括例如上述调用引擎、(将用户的单个口头话语转换成文本的)本地话音到文本(“STT”)引擎、(将文本转换成语音的)本地文本到语音(“TTS”)引擎、(确定音频和/或从音频转换的文本的语义的)本地自然语言处理器和/或其他本地组件。因为客户端设备106在计算资源(例如,处理器周期、存储器、电池等)方面相对受限,所以本地引擎108可以相对于包括在基于云的自动助理组件160中的任何对等方具有受限功能性。

基于云的自动助理组件160利用云的几乎无限资源,以相对于本地引擎108的任何对等方执行音频数据和/或其他用户界面输入的更鲁棒和/或更精确处理。同样,在各种实现方式中,客户端设备106可以响应于调用引擎检测到讲出调用短语或检测到自动助理140的一些其他显式调用而将音频数据和/或其他数据提供给基于云的自动助理组件160。

所图示的基于云的自动助理组件160包括基于云的TTS模块161、基于云的STT模块162、自然语言处理器163、对话状态跟踪器164,以及对话管理器165。所图示的基于云的自动助理组件160还包括查询引擎120,其根据从客户端设备106接收到的音频数据生成子查询的集合。此外,基于云的自动助理组件160包括代理引擎122,其可以基于所生成的集合的子查询将命令提供给一个或者多个代理。

在一些实现方式中,可以在与自动助理140分离的组件中省略、组合和/或实现自动助理140的引擎和/或模块中的一个或多个。例如,在一些实现方式中,查询引擎120和/或代理引擎123可以在客户端设备106上被整体或者部分实现。此外,在一些实现方式中,自动助理140可以包括附加和/或替代引擎和/或模块。

基于云的STT模块162可以将音频数据转换成文本,然后可以将所述文本提供给自然语言处理器163。文本可以包括例如图1的文本181并且可以基于用户的单个口头话语。在各种实现方式中,基于云的STT模块162可以至少部分地基于由指配引擎124提供的讲话者标签和指配的指示将音频数据转换成文本。基于云的TTS模块161可以将文本数据(例如,由自动助理140和/或一个或者多个助理代理160制定的自然语言响应)转换成计算机生成的语音输出。在一些实现方式中,TTS模块161可以将计算机生成的语音输出提供给客户端设备106,以例如使用一个或多个扬声器直接输出。在其他实现方式中,可以将由自动助理140生成的文本数据(例如,自然语言响应)提供给本地引擎108中的一个,所述本地引擎中的一个然后可以将文本数据转换成本地输出的计算机生成的语音。

自动助理140的自然语言处理器163处理自由形式的自然语言输入,并且基于自然语言输入生成带注释输出,以供自动助理140的一个或多个其他组件使用。例如,自然语言处理器163可以处理自然语言自由形式的输入,所述自然语言自由形式的输入是文本输入,所述文本输入是STT模块162进行的对用户经由客户端设备106提供的音频数据的转换。生成的带注释输出可以包括自然语言输入的一个或多个注释,以及可选地自然语言输入的一个或多个(例如,所有)词项。

在一些实现方式中,自然语言处理器163被配置成识别和注释自然语言输入中的各种类型的语法信息。例如,自然语言处理器163可以包括词性标注器(未描述),该词性标注器被配置成用词项的语法角色来注释词项。而且,例如,在一些实现方式中,自然语言处理器163可以附加地和/或可替换地包括依存解析器(未描绘),其被配置成确定自然语言输入中的词项之间的句法关系。

在一些实现方式中,自然语言处理器163可以另外和/或可替代地包括实体标注器(未描绘),所述实体标注器被配置成注释一个或多个分段中的实体指涉,诸如,对人(包括例如,文学人物、名人、公众人物等)、组织、位置(真实和虚拟)等的指涉。自然语言处理器163的实体标注器可以以较高的粒度水平(例如,以使得能够识别对诸如人的实体类别的所有指涉)和/或较低的粒度水平(例如,以能够识别对诸如特定人的特定实体的所有指涉)对实体的指涉进行注释。实体标注器可以依赖于自然语言输入的内容来消解(resolve)特定实体和/或可以可选地与知识图或其他实体数据库进行通信以消解特定实体。所标识的实体可以被利用以标识如本文所描述的文本中的模式。

在一些实现方式中,自然语言处理器163可以另外和/或可替代地包括共指消解器(未描绘),所述共指消解器被配置成基于一个或多个上下文线索对相同实体的指涉进行分组或“聚类”。例如,共指消解器可以用于将自然语言输入“I liked Hypothetical Cafélast time we ate there(我喜欢上次我们去过那里的假想咖啡馆)”中的词项“there(那里)”消解成“Hypothetical Café(假想咖啡馆)”。

在一些实现方式中,自然语言处理器163的一个或多个组件可以依赖于来自自然语言处理器163的一个或多个其他组件的注释。例如,在一些实现方式中,所引述的实体标注器在对特定实体的所有提及进行注释时可以依赖于来自共指消解器和/或依存解析器的注释。同样,例如,在一些实现方式中,共指消解器在将对同一实体的指涉聚类时可能依赖于来自依存解析器的注释。在一些实现方式中,在处理特定自然语言输入时,自然语言处理器163的一个或多个组件可以使用相关的先前输入和/或特定自然语言输入之外的其他相关数据来确定一个或多个注释。

在一些实现方式中,对话状态跟踪器164可以被配置成跟踪“对话状态”,所述对话状态包括例如,在人机对话会话的过程中和/或跨越多个对话会话的一个或多个用户目标(或“意图”)的信念状态。在确定对话状态时,一些对话状态跟踪器可以试图基于对话会话中的用户和系统话语来确定在对话中实例化的槽的最可能值。一些技术利用限定槽的集合以及与这些槽相关联的值的集合的固定本体(ontology)。一些技术另外或可替代地可以针对各个槽和/或域加以定制。例如,一些技术可能需要针对每个域中的每个槽类型来训练模型。

对话管理器165可以被配置成将例如由对话状态跟踪器164提供的当前对话状态映射到然后由自动助理140执行的多个候选响应动作中的一个或多个“响应动作”。取决于当前会话状态,响应动作可能以多种形式出现。例如,与在最后一轮次(例如,当执行最终用户期望的任务时)之前发生的对话会话的轮次相对应的初始和中流对话状态可以被映射到包括自动助理140输出附加自然语言对话的各种响应动作。此响应对话可以包括例如请求用户为对话状态跟踪器164认为用户打算执行的某些动作提供参数(即,填充槽)。在一些实现方式中,响应动作可以包括诸如“请求”(例如,寻找用于槽填充的参数)、“提供”(例如,为用户建议动作或动作过程)、“选择”、“通知”(例如,向用户提供请求的信息)、“不匹配”(例如,告知用户所述用户的最后输入不被理解)、对外围设备的命令(例如,关闭灯泡)等等。

客户端设备106经由通常在110处指示的一个或多个局域网和/或广域网(例如,互联网)提交请求。该请求可以是用户的单个口头话语,如经由客户端设备106的麦克风所接收到的。单个口头话语可以由STT模块162转换为文本,由自然语言处理器163处理以标识语音和/或文本中的实体部分,并且可以将文本提供给查询引擎120。如先前相对于图1至图3所描述的,集合生成器121可以基于转换后的文本以及文本中的标记的词项和/或实体来生成子查询的集合。可以由评分器122对集合进行评分,并且如果得到的质量得分满足阈值,查询引擎120可以将子查询的集合提供给代理引擎123。代理引擎123为该集合的每个子查询生成命令,并将命令提供给一个或多个代理190,然后代理190响应于接收到命令而提供响应内容。然后,可以利用响应内容以经由客户端设备106向用户提供内容。例如,可以将响应内容经由TTS模块161转换为语音,并由对话管理器165将其作为对话的对话回合提供给用户,如此处所述。

参考图5,图示根据本文描述的各种实现方式的示例方法的流程图。为了方便起见,参考执行操作的系统描述图5的流程图的操作。该系统可以包括各种计算机系统的各种组件。此外,虽然以特定顺序示出图5的方法的操作,但这并不意味着限制。一项或多项操作可以被重新排序、省略或添加。

在框505处,系统接收响应于用户的单个口头话语而生成的文本。文本可以基于由STT模块162执行的语音-文本转换,并且还基于从客户端设备106接收到的音频。例如,客户端设备106可以执行自动助理客户端107,该助理客户端可以向助理140提供单个口头话语。在一些情况下,文本可以是复合查询。例如,“What's the weather in Paris and show merestaurants near me”的文本包括对巴黎的天气的请求以及向用户提供附近餐馆的请求。

在框510处,系统基于在框505处接收到的文本生成子查询的集合。该集合可以包括基于该文本的任意数量的子查询,并且该集合共同定义对文本的候选解释。如本文所述,可以基于多种技术来生成子查询。例如,可以基于标识文本中的模式、向文本附加前缀和/或后缀、文本的上下文扩展和/或用于将文本重写为保留与文本相似的含义的子查询的集合来生成子查询。在一些实现方式中,可以为文本生成多个集合。

在框515处,系统确定子查询的集合的质量得分。质量得分可以指示例如该集合正确表示包括在文本中的单独查询的意图的似然性。在一些实现方式中,质量得分可以指示一种或多种识别的模式与子查询之间的相似性。例如,可以对每个子查询进行评分,并且可以生成该集合的质量得分,该质量得分是单独的子查询的得分的函数。在可以为文本生成多个集合的情况下,可以为每个集合确定得分。

在框520,系统确定针对该集合的质量得分满足阈值。确定质量得分满足阈值可以包括确定相对于其他集合的质量得分而言质量得分满足阈值(从而指示给定集合的子查询是比其他集合的子查询更合适的解释);确定其满足相对于复合查询质量得分的阈值,在没有将其拆分为子查询的情况下其是为复合查询可选地确定的(从而指示将复合查询拆分为子查询比不拆分复合查询更合适);和/或确定其满足固定阈值(从而指示给定集合的子查询是一致的解释)。

在框525处,响应于确定该集合的质量得分满足阈值,系统向一个或多个对应的助理代理提供命令。对于每个子查询,系统都会基于对应的子查询生成对应的命令,并将对应的命令提供给对应的助理代理。例如,对于“What's the weather in Paris”的子查询,可以生成具有意图为“current weather(当前天气)”且位置值为“Paris”的结构化命令,该命令可以提供给助理代理。可以通过与代理引擎123共享一个或多个特性的组件来生成命令并将其提供给助理代理。

在框530处,系统响应于向代理提供命令而从一个或多个助理代理接收响应内容。响应内容可以是例如文本、图像、音频、视频和/或可以渲染给用户的和/或可以被利用以将内容渲染给用户的其他内容。例如,提供给天气助理的“Paris”命令可能会导致响应内容“68,sunny(68,晴天)”,可以将其作为文本、音频和/或图像提供。

在框535,系统利用来自助理代理的响应内容,以使用户的客户端设备106基于响应内容来渲染内容。渲染内容可以包括基于响应内容向用户提供音频,提供作为文本的响应内容和/或以视觉方式提供响应内容。在一些实现方式中,如本文所述,响应内容可以被利用以生成提供给助理代理的聚合命令,来自附加代理的响应内容被利用以向客户端设备106渲染内容。

图6是示例计算设备610的框图,该示例计算设备610可以可选地用于执行本文所述技术的一个或多个方面。例如,客户端设备106可以包括示例计算设备610的一个或多个组件和/或实现基于云的自动助理组件110的一个或多个服务器设备。

计算设备610通常包括至少一个处理器614,其经由总线子系统612与多个外围设备通信。这些外围设备可以包括存储子系统624,包括例如,存储器子系统625和文件存储子系统626;用户界面输出设备620;用户界面输入设备622以及网络接口子系统616。输入和输出设备允许用户与计算设备610交互。网络接口子系统616提供到外部网络的接口,并耦合到其他计算设备中的对应接口设备。

用户界面输入设备622可以包括键盘;诸如鼠标、轨迹球、触摸板或图形输入板的指向设备;扫描仪;并入到显示器的触摸屏;诸如语音辨识系统的音频输入设备;麦克风;和/或其他类型的输入设备。通常,术语“输入设备”的使用旨在包括所有可能类型的设备以及将信息输入到计算设备610或通信网络中的方式。

用户界面输出设备620可以包括显示子系统、打印机、传真机或诸如音频输出设备的非可视显示器。显示子系统可以包括阴极射线管(CRT)、诸如液晶显示器(LCD)的平板设备、投影设备或其他用于创建可视图像的机制。显示子系统还可以诸如经由音频输出设备来提供非视觉显示。通常,术语“输出设备”的使用旨在包括所有可能类型的设备以及从计算设备610向用户或另一个机器或计算设备输出信息的方式。

存储子系统624存储提供本文所述的一些或全部模块的功能性的编程和数据构造。例如,存储子系统624可以包括执行图1-3的示例过程流程、图5中描绘的方法的所选方面以及实现在图1-图5中描绘的各种组件的逻辑。

这些软件模块通常由处理器614单独或与其他处理器结合执行。存储子系统624中使用的存储器625可以包括多个存储器,包括用于在程序执行期间存储指令和数据的主随机存取存储器(RAM)630以及存储固定指令的只读存储器(ROM)632。文件存储子系统626可以提供用于程序和数据文件的持久存储,并且可以包括硬盘驱动器、软盘驱动器以及相关联的可移动介质、CD-ROM驱动器、光盘驱动器或可移动介质盒。实现某些实现方式的功能性的模块可以由在存储子系统624中的文件存储子系统626存储,或者存储在处理器614可访问的其他机器中。

总线子系统612提供一种机制,其用于使计算设备610的各种组件和子系统按照预期相互通信。尽管总线子系统612被示意性地示出为单个总线,但是总线子系统的替代实现方式可以使用多个总线。

计算设备610能够是各种类型,包括工作站、服务器、计算集群、刀片服务器、服务器群或任何其他数据处理系统或计算设备。由于计算机和网络的不断变化的性质,图6中描绘的计算设备610的描述仅旨在作为用于说明一些实现方式的目的的特定示例。计算设备610的许多其他配置可能具有比图6中描绘的计算设备更多或更少的组件。

在此处讨论的某些实现方式可以收集或使用关于用户的个人信息(例如,从其他电子通信中提取的用户数据、有关用户社交网络的信息、用户的位置、用户的时间、用户的生物特征信息以及用户的活动和人口统计信息、用户之间的关系等)的情况下,向用户提供一个或多个机会来控制是否收集信息、是否存储个人信息、是否使用个人信息以及如何收集、存储和使用有关用户的信息。也就是说,仅在从相关用户接收到明确的这样做的授权后,本文讨论的系统和方法才收集、存储和/或使用用户的个人信息。

例如,向用户提供对程序或特征是否收集关于该特定用户或与程序或特征相关的其他用户的用户信息的控制。向要为其收集个人信息的每个用户呈现一个或多个选项,以允许控制与该用户有关的信息收集,以提供关于是否收集信息以及信息的哪些部分要被收集的许可或授权。例如,可以通过通信网络向用户提供一个或多个这样的控制选项。另外,在存储或使用某些数据之前,可能会以一种或多种方式处理某些数据,使得删除个人可识别信息。作为一个示例,可以处理用户的身份,使得不能确定个人可识别信息。作为另一示例,用户的地理位置可以被概括为更大的区域,使得不能确定用户的特定位置。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号