用于在新的域中提供自动化助理的开发人员平台的制作方法

文档序号:19128151发布日期:2019-11-13 02:20阅读:179来源:国知局
用于在新的域中提供自动化助理的开发人员平台的制作方法

本申请要求于2017年3月2日提交的标题为“developerplatformfordialogue”的美国临时专利申请第62/465,979号的优先权权益,其公开内容被并入本文。



背景技术:

语音接口正引起全世界消费者的关注。siri在apple设备上可用,cortana是microsoft助理,viv为开发人员提供了如同聊天机器人的平台,并且facebook为各种聊天机器人提供了支持。这些接口都存在每个新的应用需要从头开始本质上重新装备接口的问题,这不仅记录了应用详细信息,而且记录了在先前的应用中已经出现过的与语言相关的元素。

在自动化助理的上下文中,该自动化助理是允许用自然语言来进行人机交流的会话系统,早期的技术需要大量数据或者对系统可能完成的每个任务进行大量的手动调整。即,用于旅行计划的系统需要有其自己的规则和计划,独立于用于银行业务或者用于查找餐馆并且计划晚餐的应用。

所需要的是一种改进的自动化助理,其更容易被配置用于新的域和应用。



技术实现要素:

大致上描述,本技术提供了一种用于在新的域和应用中实现自动化助理的可共享语言接口。在第一域中被训练的对话助理可以在第二域中接收规范。该规范可以包括语言结构数据,诸如,模式、识别程序、解析程序、约束和不变量、动作、语言提示、生成模板以及其他数据。规范数据被应用于自动化助理以使自动化助理能够在与所接收到的规范相关联的第二域中提供与用户的交互式对话。在一些实例中,规范的各个部分可以被自动映射至第一域的各个部分,而规范的其他部分可以通过学习或者通过从注释器或者其他源接收到的输入随时间被映射。通过具有通过接收对象和属性而不是完全重新装备接口来学习新的域和应用的能力,本系统在学习在新的域中提供交互式对话的方式时比先前的系统更有效。

本系统包括自动化助理平台,该自动化助理平台允许开发人员利用先前的应用所学习的语言能力,同时利用使用与新的应用相关联的数据来容易地集成自动化助理。

在实施例中,一种方法在多个域中提供自动化助理。该方法包括:接收针对第二域的规范以用于自动化助理,其中自动化助理被配置有用于第一域的训练数据。规范可以被应用于自动化助理,该自动化助理利用规范和第一域。可以由自动化助理基于第一域和所应用的规范来与用户进行交互式对话。

在实施例中,一种非瞬态计算机可读存储介质在其上实施有程序,其中,程序由处理器可执行以执行用于在多个域中提供自动化助理的方法。

在实施例中,一种系统包括:处理器;存储器;一个或者多个模块,该一个或者多个模块被存储在存储器中,并且由处理器可执行以执行与上面描述的方法相似的操作。

附图说明

图1是用于在多个域中提供可以被实现的自动化助理的系统的框图。

图2是实现可以被扩展以在多个域中进行操作的自动化助理应用的模块的框图。

图3是接收针对新的域的数据的自动化助理的框图。

图4是用于在多个域中提供交互式自动化助理的方法。

图5是用于接收针对第二域的规范的方法。

图6是用于提供交互式自动化助理的方法,针对规范和第二规范使用该交互式自动化助理。

图7是用于实现本技术的计算环境的框图。

具体实施方式

本技术提供了一种用于在新的域和应用中实现自动化助理的可共享语言接口。在第一域中被训练的对话助理可以在第二域中接收规范。该规范可以包括语言结构数据,诸如,模式、识别程序、解析程序、约束和不变量、动作、语言提示、生成模板以及其他数据。规范数据被应用于自动化助理,以使自动化助理能够在与所接收到的规范相关联的第二域中提供与用户的交互式对话。在一些实例中,规范的各个部分可以被自动映射至第一域的各个部分,而规范的其他部分可以通过学习或者通过从注释器或者其他源接收到的输入随时间被映射。通过具有通过接收对象和属性而不是完全重新装备接口来学习新的域和应用的能力,本系统在学习在新的域中提供交互式对话的方式时比先前的系统更有效。

在本自动化助理中,语言的会话细节的系统表示基本上与应用本身的表示无关。这导致可能通过提供对会话语言的api或者其他接口以及至数据库的不同的相关联的连接来支持新的开发人员,该数据库包括待设计的特定应用的细节。

本系统包括自动化助理平台,该自动化助理平台允许开发人员利用先前的应用所学习的语言能力,同时利用使用与新的应用相关联的数据来容易地集成自动化助理。可以在标题为“theattentiveassistant”的美国专利申请第15/298475号和标题为“interactionassistant”的美国专利申请第15/328448号中找到对这种系统的描述,这两个申请的公开内容通过整体引用并入本文。

图1是用于在多个域中提供可以被实现的自动化助理的系统的框图。图1所示系统100包括客户端110、移动设备120、计算设备130、网络140、网络服务器150、应用服务器160和数据存储库170。客户端110、移动设备120和计算设备130通过网络140与网络服务器150通信。网络140可以包括专用网络、公共网络、互联网和内联网、wan、lan、蜂窝网络或者适合于在图1所示计算设备之间传输数据的某种其他网络。

客户端110包括应用112。应用112可以提供自动化助理、tts功能性、自动语音识别、解析、域检测以及本文讨论的其他功能性。应用112可以被实现为一个或者多个应用、对象、模块或者其他软件。应用112可以通过图1所示服务器架构或者直接(在图1中未图示)与应用服务器160和数据存储库170通信,以访问数据。

移动设备120可以包括移动应用122。移动应用可以提供针对应用112描述的相同功能性。移动应用122可以被实现为一个或者多个应用、对象、模块或者其他软件,并且可以操作以结合应用服务器160来提供服务。

计算设备130可以包括网络浏览器132。网络浏览器可以接收一个或者多个内容页面、脚本代码以及在被加载到网络浏览器中时具有针对应用112描述的相同功能性的其他代码。内容页面可以操作以结合应用服务器160来提供服务。

网络服务器150可以经由网络140从应用112、移动应用122和网络浏览器132接收请求和数据。请求可以由特定应用或者浏览器应用发起。网络服务器150可以处理请求和数据,传输响应,或者将请求和数据或者其他内容传输至应用服务器160。

应用服务器160包括应用162。应用服务器可以接收数据(包括从应用112和122以及浏览器132接收到的数据请求),处理数据,以及向网络服务器150传输响应。在一些实现中,网络服务器152向最初发送请求的计算机或者应用转发响应。应用的服务器160还可以与数据存储库170通信。例如,可以从数据存储库170访问数据以由应用用来提供针对应用112所描述的功能性。应用服务器160包括应用162,除了完全或者部分地被实现在应用服务器160上之外,该应用162可以与应用112类似地操作。

块200包括网络服务器150、应用服务器160和数据存储库170,并且可以被用来实现包括域检测机构的自动化助理。针对图2更详细地讨论块200。

图2是实现可以被扩展以在多个域中进行操作的自动化助理应用的模块的框图。包括自动化助理应用的模块可以实现客户端110的应用112、移动设备120的移动应用122和/或图1所示系统中的应用162和服务器160中的全部或者一部分。

图2所示自动化助理应用包括自动语音识别模块210、解析器模块220、释义模块222、自动更正模块224、检测机构模块230、对话管理器模块240、推理模块242、对话模式模块244和文本到语音(生成)模块250。自动语音识别模块210接收音频内容,诸如,通过麦克风从客户端110、移动设备120或者计算设备130中的一个接收到的内容,并且可以处理音频内容以标识语音。asr模块可以将识别到的语音作为文本话语输出至解析器220。

解析器220接收语音话语,该语音话语包括一个或者多个单词,并且可以将用户话语解释成意图。解析器220可以使用从自动化助理中的别处接收到的当前对话状态来生成一个或者多个计划,例如,通过创建一个或者多个卡。例如,作为对话语执行解析操作的结果,解析器220可以生成一个或者多个计划,该一个或者多个计划可以包括:执行一个或者多个动作或者任务。在一些实例中,计划可以包括:在系统内生成一个或者多个卡。在另一示例中,动作计划可以包括:通过系统来生成若干步骤,诸如于2017年2月23日提交的标题为“expandabledialoguesystem”的美国专利申请第62/462,736号中所描述的,其公开内容被全部并入本文。

在本技术的会话系统中,语义解析器被用来为对话管理器创建信息。该语义解析器使用有关过往使用的信息作为主要信息源,从而将过往使用信息与系统动作和输出相结合,允许通过每个单词类集对系统动作的贡献来描述每个单词类集。这引起创建对单词/短语的语义描述。

检测机构230可以接收由解析器220生成的计划和覆盖矢量,检测在话语中可能重要的未解析单词,并且基于重要的未解析单词来修改计划。检测机构230可以包括分类器,该分类器基于一个或者多个特征来将每个未解析单词分类为重要的或者不重要的。对于每个重要的单词,确定针对重要的单词的分数是否达到阈值。在一些实例中,通过参考其过往统计事件来对系统尚未解析的任何单词或者短语候选进行分析,并且然后,系统决定是否注意短语。如果针对重要的未解析单词的分数达到阈值,则修改过的计划可以包括:生成管理助理无法处理或者执行重要的未解析单词或者与未解析单词相关联的一些动作的消息。

对话管理器240可以基于从检测机构230和/或解析器220接收到的计划和上下文来执行动作,并且基于所执行的动作和例如,从外部服务和实体接收到的任何响应来生成响应。对话管理器生成的响应可以被输出至文本到语音模块250。文本到语音模块250可以接收响应,生成接收到的响应的语音,并且将语音输出至与用户相关联的设备。

释义模块222可以与解析器222通信以提供由解析器220接收到的针对话语中的单词或者短语的释义内容。自动更正模块224可以对由解析器220接收到的话语中的单词或者短语的替代拼写进行更正或者建议。

推理模块242可以被用来搜索数据库并且与用户交互。通过每域类型子解算器和适合于域的约束图形来增强该引擎,而通用引擎使用其自己的推理机构和子解算器的组合。通用推理引擎可以是csp解算器或者其加权变体。在该上下文中,解算器包括解析程序、约束、偏好或者更经典的特定于域的模块,诸如,对有关日期和时间或者数字的约束进行推理的模块。解算器用任何结果或者有关某些约束的有效性的消息或者有关必须应用哪些约束以使其起作用的信息来作出响应。

对话模式模块244可以包括从过往的域学习到的域独立模式和域定制模式。对话模式可以包括用于收集有关一组对象的约束的一个或者多个机构,例如,以用于追求用户意图的目的。对话模式还可以包括命令处理(例如,针对外部过程的逻辑命令)、读取电子邮件或者消息、播放歌曲等的列表处理以及列表构建,诸如,例如,保持购物清单、保持日记的注释、创建会议议程等。

自动化助理通过用于对话的“ui工具包”来提供其服务中的许多服务,包括从过往的经验学习到的域独立模式和域定制模式。针对ui工具包的这种服务的部分集是:

a.筛选处理(winnow),其收集有关某一对象集的约束,通常是为了追求用户意图的目的。约束可能是明确的或者暗示的,并且可能是硬性的(中午12点)或者软性的(下周、在早上、便宜)。筛选过程通常用于预订航班、购买相机、查找要听的歌曲、确定起飞的机场以及许多其他普通的任务。

b.命令处理,该命令处理针对某个外部过程启动命令。命令处理包括确认行为、错误处理和建议/推荐反馈,尤其是对于失败的命令。

c.列表处理:这包括:阅读电子邮件或者消息、播放列表上的歌曲、转发对餐馆的评论以及其他相似的反馈应用。

d.列表构建,包括:保持购物清单、保持日记的注释、创建会议议程、向飞行行程添加分段以及其他功能。

按照以下方式来构造ui工具包元件中的每个元件:它们具有可以经由开发人员介入或者机器学习来定制的合理的“默认”行为。例如,筛选可以在以下模式下操作:在该模式下,其在返回最佳选项之前要求用户进行确认,或者其可以在以下模式下操作:在该模式下,其不要求或者其可以要求用户在若干选项之间进行选择,或者最好对可用选项进行总结并且提供新的约束或者替代搜索。

利用许多参数来构建每个ui工具包产品。例如,系统应该始终只提供最佳选择吗?应该描述所有(合理的)选择吗?元件应该对选择进行总结并且提供替代搜索吗?(或者,在搜索未成功的情况下,系统应该引导对约束进行重述或者细化吗?)。系统将自动用默认条目来对搜索进行约束或者应该通过用户的动作来自动覆盖默认条目吗?如果系统返回一个以上选项,是否存在默认排序?

这些对话工具包元件利用开发人员指定的配置和机器学习“特征”的组合来将这些不同的行为参数化。开发人员指定的配置提供针对ui元件的特定例示的默认行为。例如,在航班预订应用中,筛选处理可能会被配置为在返回航班之前与用户确认。在这种情况下,开发人员会告诉筛选处理其应该是高度证实的。另一方面,在音乐自动点唱机应用中,系统可能会立即返回歌曲(因为用户可能想要听音乐,而不是关于哪首歌进行协商),并且因此,处于“低确认”状态。

新域270表示由自动化助理应用接收以使自动化助理能够在新域中进行对话的规范数据。新域数据可以包括模式、解析程序、不变量、约束、识别程序、词汇提示、生成模板、训练片段以及其他数据。针对图3更详细地讨论新域数据270。

在2017年10月24日提交的题为“sequencetosequencetransformationsforspeechsynthesisviarecurrentneuralnetworks”的美国专利申请第15/792,236号中的附加细节中描述了针对自动化助理应用(诸如,图2所示自动化助理应用)的附加细节,其公开内容被整体并入本文。

用于对话的开发人员平台

用于创建真正的交互式对话系统的平台应该向开发人员提供这些功能,而不需要他们具有机器学习或者语言学博士学位。此处所描述的平台实现了这一点。此外,当使用如同此处所描述的平台的平台时,系统立即具有基本功能性,而不需要任何附加的训练数据。相反,使用系统从其他域或者应用学习到的内容,系统可以解释由开发人员提供的规范以立即提供其他平台上不存在的功能性。

平台的组件被描述为被应用于对两种应用的开发:或多或少适合预先存在的域的“垂直”应用,以及用于之前没有构建的域的“长尾”应用。在开发人员构建一个应用或者其他应用的意义上,这些应用不一定是分类的。相反,它们是对范围的两个极端的说明。大多数部署将包含两者的各个方面。

垂直应用

垂直应用是很普通的那些应用,其中,平台包括平台自己的开发人员已经开发出来的专用功能性。例如,平台可以包含用于银行业务或者预订航班的预构建功能性。

对于现有的垂直应用或者相近的东西,将存在系统中的“卡片”,其允许系统“理解”用户并且完成任务。因此,自动化助理的一个版本可能会理解在美国预订航班的方式-其具有用于查找航班、协商价格、分配座位、收取行李费用以及在计划在美国旅行时人们所做的所有其他事情的卡片。

当添加用于外国航空旅行的垂直应用时,必须根据来自美国旅行的数据集来理解针对外国航班的数据集。其中大部分都是直截了当的:美国的机场和欧洲或者亚洲的机场一样;美国的航班时间与美国-欧洲航班的航班时间相似(只是更多的时区受影响,并且可能必须增强算术以理解国际日界线和其他时间差异),服务代码是可映射的,但是人们必须明白,美国的头等舱与阿联酋航空的头等舱不同。一些问题必须通过增强数据库和卡片库来处理,如同处理护照要求或者疫苗接种和医疗问题。受到影响的机场的实际名称将与仅限美国的应用重叠,但是许多海外地点将必须被添加至数据库。

如果两种数据模式相似,则可能自动将一个垂直数据库映射至另一垂直数据库,可能在人类协助的情况下。即,如果开发人员具有用于银行业务数据库的模式,并且自动化助理已经具有用于银行业务数据库的模式,则自动地或者手动地对两个数据库中的对应元素、字段和操作进行标记应该非常简单。然后,将有必要填充模式中缺少的操作和实体以充分地使两个垂直应用协调。

另外,一些语言问题是所有垂直应用共有的。会话中的代词指代非常相似,并且可以预期其跨越所有应用。时间和日期指代对于大多数垂直应用而言将是常见的,如将是如同“早前”、“稍后”、“更多”和“更少”等更一般的术语。因此,可以预期使人机交互更像人-人交互的那些问题在垂直应用之间或多或少无缝地进行转移。

如在对本自动化助理的原始描述中,机器学习可以被用来修改系统的内部参数并且学习合适的权重,使得相较于系统将未正确地做出响应,系统将更可能正确地做出响应。当首次投入使用新的垂直应用时,可能将不会针对性能对其进行优化,但是随着运用了垂直应用并且系统响应被用来训练助理,它们将迅速得到改进。

当基于接收到的规范与第二域一起使用本系统时,本系统立即具有基本功能性,而不需要任何附加的训练数据。相反,使用系统从其他域或者应用学习到的内容,系统可以解释接收到的由开发人员提供的规范,以立即提供其他平台上不存在的功能性。

当添加新的域时,自动应用一般特征。如果提供了新的能力并且描述了其功能,则可以开发针对系统的更具体的权重,并且可以在新的域中采取专门的动作。在任何情况下,既可以利用人类操作员经由强化学习来在线地在woz实现中对自动化助理在新域中的参数进行细化,也可以通过分析和学习系统日志或者系统的其他操作记录来对它们进行细化。

平台的组件可以被描述为被应用于对两种应用的开发:或多或少适合预先存在的域的“垂直”应用,以及用于之前没有构建的域的“长尾”应用。在开发人员构建一个应用或者其他应用的意义上,这些应用不一定是分类的。相反,它们是对范围的两个极端的说明。大多数部署都包括两者的各个方面。

垂直应用

垂直应用是很普通的那些应用,其中,平台包括平台自己的开发人员已经开发出来的专用功能性。例如,平台可以包含用于银行业务或者预订航班的预构建功能性。

对于现有的垂直应用或者相近的东西,将存在系统中的“卡片”,其允许系统“理解”用户并且完成任务。因此,自动化助理的一个版本可能会理解在美国预订航班的方式-其具有用于查找航班、协商价格、分配座位、收取行李费用以及在计划在美国旅行时人们所做的所有其他事情的卡片。

当添加用于外国航空旅行的垂直应用时,必须根据来自美国旅行的数据集来理解针对外国航班的数据集。其中大部分都是直截了当的:美国的机场和欧洲或者亚洲的机场一样;美国的航班时间与美国-欧洲航班的航班时间相似(只是更多的时区受影响,并且可能必须增强算术以理解国际日界线和其他时间差异),服务代码是可映射的,但是人们必须明白,美国的头等舱与阿联酋航空的头等舱不同。一些问题必须通过增强数据库和卡片库来处理,如同处理护照要求或者疫苗接种和医疗问题。受到影响的机场的实际名称将与仅限美国的应用重叠,但是许多海外地点将必须被添加至数据库。

如果两种数据模式相似,则可能自动将一个垂直数据库映射至另一垂直数据库,可能在人类协助的情况下。即,如果开发人员具有用于银行业务数据库的模式,并且自动化助理已经具有用于银行业务数据库的模式,则自动地或者手动地对两个数据库中的对应元素、字段和操作进行标记应该非常简单。然后,将有必要填充模式中缺少的操作和实体以充分地使两个垂直应用协调。

另外,一些语言问题是所有垂直应用共有的。会话中的代词指代非常相似,并且可以预期其跨越所有应用。时间和日期指代对于大多数垂直应用而言将是常见的,如将是如同“早前”、“稍后”、“更多”和“更少”等更一般的术语。因此,可以预期使人机交互更像人-人交互的那些问题在垂直应用之间或多或少无缝地进行转移。

机器学习可以被用来修改系统的内部参数并且学习合适的权重,使得相较于系统将未正确地作出响应,系统将更可能正确地作出响应。当首次投入使用新的垂直应用时,可能将不会针对性能对其进行优化,但是随着运用了垂直应用并且系统响应被用来训练助理,它们将迅速得到改进。

“长尾”应用

在新的域中,开发人员将有更多的工作要做,尽管按照以下方式设计了平台:大多数所需的工作与对域中的对象的描述和针对用户可以与那些对象进行交互的方式的“业务逻辑”相关。

我们专注于针对crud应用的模拟的情况,该模拟大致表征了大部分现有软件应用,并且尤其是可以适合于自然语言接口的那些软件应用。crud应用是主要专注于向一个或者多个数据库(诸如,通讯簿管理数据库、航班预订数据库、购物数据库或者食谱数据库)提供接口的任何应用。(应该强调的是,此处所描述的组件中的许多组件可以应用于非crud应用。)

图3是接收用于新的域的数据的自动化助理的框图。如在图3中图示的,释义模块222可能可以访问识别程序和词汇提示并且与其通信,以便对由解析器220接收到的话语执行释义。自动更正模块224可以访问识别程序、词汇提示和生成模板并且与其通信,以对解析过的话语的各个部分执行自动更正任务。干扰机构242可以访问模式、不变量和约束模块并且与其通信,以搜索数据库并且在与对话管理器240通信的同时与用户交互。对话模式模块244可以在与对话管理器240通信的同时访问模式并且与模式通信。生成器240生成输出,该生成器240从生成模板327接收信息。

通常,开发人员可以定义以下中的全部或者一些:模式(域中的对象的类型及其属性)、识别程序(该识别程序标识话语中引用的对象)、解析程序(被用于基于有关域对象的属性的约束来搜索域对象)、动作(被用于执行一些外部操作,诸如,预订航班或者删除电子邮件)、不变量(被用来断言通常或者始终为真的关系)以及约束和/或偏好(被用于限制对象或者对对象进行排名)。在一些实例中,触发词或者触发短语的种子集可以与这些元素一起使用,但是也可以从数据中自动引起触发词或者触发短语。

模式

模式定义在域中的对象以及这些对象之间的关系。如果开发新的电影推荐域,则开发人员必须针对电影、导演、演员、评级等指定模式。模式具有属性,这些属性是具有某种类型的命名字段。(例如,电影具有评级、导演、明星、时长等)。许多属性可能基于预定义类型(整数、字符串、时间、位置等)或者其他域中的类型。

平台可能能够通过提供用于在例如sql数据库与平台的内部表示之间的自动映射的功能,来自动从预先存在的数据库模式或者另一种源导入这些模式。备选地,开发人员可以直接在平台自身的内部表示中定义这些模式。

模式实现了系统的许多特征,诸如,回答问题。通过定义用于电影的模式,系统可以通过利用类型“时长”搜索适当的属性来自动回答如同“这部电影有多长时间?”等问题。

某些对象类型还可以具有应该向平台进行指示的、被称为特性的特殊功能性。示例包括:

●有序的。例如,电影评级具有排序(r级电影比pg级电影更“成人”)。

●单调的。对象的一些有序属性也与“质量”方向相关联(五星级电影优于四星级电影,在其他所有都相等的情况下)。

●差异。一些类型可以按照以下方式来比较两个对象:说出它们之间的“差异”,包括如同金钱和时间戳等类型。通常,差异可能与原始对象的类型不同。(例如,两个时间戳的差异是时长。)

指定这些特性允许系统自动理解如同“长于5小时”、“900万像素数码相机”(这意味着至少具有9百万像素的数码相机)或者“比这更好”等话语。

识别程序

开发人员还可以为某些类型提供识别程序。识别程序标识语言(例如,来自用户话语)中的实体。例如,在电影域中,他们可能必须为评级或者演员提供识别程序。可以按照若干方式中的一种方式来指定识别程序,包括但不限于:

●简单的关键短语识别程序(例如,识别如同“pg”等评级)

●识别短语或者可能发生对实体的引用的上下文的机器学习分类器。

●对域中的所有或者许多对象的列举,包括示例自然语言引用。例如,开发人员可能会提供如同imdb等内容中的所有电影或者演员的数据库。开发人员还可以指定列表是详尽的还是非详尽的。

在系统的语义解析器中使用识别程序。给定识别程序,系统可以提供拼写校正器和释义模块。这些模块按照以下方式自动扩展系统:系统可以学习到“nweyork”是指“纽约”,正如“大苹果”的情况。另外,对于非详尽的列举,系统可以尝试通过未来用户交互或者通过其他数据源来自动学习新的示例。

推理机构

非常适合于对话的许多域涉及通过收集要求,执行搜索并且梳理结果来帮助用户从数据库中选择一个或者多个对象。在sm平台中,通过以下方式来完成这一点:根据有关对象的属性的约束或者偏好来构建表示用户的(多个)请求的查询图形,查询(多个)数据库并且与用户一起工作以细化查询或者选择适当的(多个)对象。

平台使用开发人员提供的解析程序、不变量、偏好和约束作为助理的底层推理机构中的模块,该底层推理机构本质上是加权csp解算器(参考),用机器学习模块或者深度学习模块进行了增强以改进推理。系统可以一起协调这些模块以及其自身的通用推理引擎以构成没有单独的api支持的复杂查询。

解析程序

开发人员可以提供解析程序,该解析程序将系统查询语言(由通用自动化助理提供的)转换为被用来查找与查询中的约束相匹配的实体的api调用。

给定查询,解析程序应该用以下中的一个来作出响应:

●一组结果。

●指示缺少所需属性的错误,

●指示所需属性不受约束(即,对要执行的查询的约束不足的那些属性)的错误。例如,日期字段可能只有指定的月份,而api需要具体的日期。

●指示违反了某一不变量的错误,诸如,无法搜索在过去电影的放映时间。

可以允许其他错误类型,以指示服务器超时等。

开发人员还可以提供所需属性的声明性规范以及有关给定解析程序需要或者能够使用的那些属性的可接受约束。例如,用于航班搜索的api可能需要航班的所有航段的具体出发日期以及关于行程成本的可选上限。

在优选实施例中,解析程序不需要确保所有返回的结果满足所有约束。相反,底层系统可以通过对它们进行过滤来在事后自动应用所有约束。然而,解析程序应该指定使用了查询中的哪些约束,使得系统可以追踪一组结果可能变为无效的时间。(在一些实施例中,底层平台api可能能够通过记录访问了哪些属性来自动追踪该信息。)

还可以针对约束(下面讨论的)创建解析程序,这些约束可能需要查询外部数据库或者执行计算以便系统对其进行评估。例如,“在y附近的地方x”的约束可能需要查询映射api,以便确定两个地方之间的旅行时间。

在计划模块中使用解析程序以确定变量的域和推理模块中的约束的扩展。

不变量

开发人员可以指定有关域中的对象必须为真或者通常为真的不变量。例如,开发人员可以指定外出航班的出发时间总是在返回的航班的出发时间之前。可以在规范中明确地声明不变量,或者可以由解析程序将不变量返回作为错误。它们也可以是硬性的或者软性的。

另外,可以按照两种方式中的一种方式来指定不变量:通过形式语言,或者通过自然语言。形式语言的示例包括:

·always(itinerary.outgoingdeparturedate<itinerary.returningdeperaturedate)

·usually(itinerary.departurelocation==user.location)

自然语言不变量的示例包括:

·外出的出发总是在返回的出发之前

·针对飞行计划的出发点通常是用户的位置

·针对飞行计划的到达点很少是用户的位置

·大多数用户在任何计划环节中都只购买一次航班

·用户通常更喜欢在大约上午8点与下午6点之间起程。

例如,如果旅行于2月20日开始,则系统可以避免将“在第3天返回”解释为2月3日。还在推理系统中使用不变量。或者计划者可以假设用户的出发点在其当前位置附近,而不是询问用户。

约束和偏好

虽然存在被用于指定不变量和用于查询的约束(例如,不等式、子字符串匹配、包括在区域内的位置)的大型预先存在的数据库,但是开发人员可以提供其自己的特定于域的约束。约束与解析程序类似地操作,因为它们由推理机构调用并且可以进行外部调用。然而,代替返回单个变量的一组值,它们反而可以返回命令行参数的所有可能令人满意的组合的联合表示,或者它们可以对现有命令行参数的域进行过滤或者限制。作为特殊情况,它们必须能够说明是否允许命令行参数的给定配置。

函数只是基于除了一个命令行参数之外的所有命令行参数可计算的一类特殊的约束。可以在平台api中特别地表示这些函数。

使用与系统在用户交互中使用的语义解析器相似(或甚至相同)的语义解析器,将对约束的自然语言描述映射至该模板库存。开发人员可以进一步定制曲线的形状以更好地适合他们的意图,或者针对他们的域来定制曲线的形状。

在任何事件中,对于软约束,系统可以将这些成本曲线视为关于曲线的形状的先验猜测。系统可以经由例如,调整逐段组合物的控制点、或者通过调整形状的高度、或者完全改变曲线的形状以获得另一种更合适的形状,来学习这些曲线的更精确的或者特定于用户的变体。其经由使用在15/298475“theattentiveassistant”(细心的助理)专利和15/328448“interactionassistant”(交互式助理)专利中描述的相同学习方案来这样做。系统在其所做的改变中具有的自由度(若有的话)也可以由开发人员设置。在优选实施例中,系统使用描述这些曲线的参数作为输入以及约束的命令行参数和针对前馈神经网络的、可能的其他上下文信息(例如,将软约束实例化的上下文和/或特定于用户的配置向量),训练该前馈神经网络以直接估计这些命令行参数的成本。

系统还能够使用(并且开发人员能够提供)针对某一成本而可能违反并且可能具有不同程度的违反的约束(诸如,“在早上”)。这些可违反的约束被称为偏好。系统具有预定义的(但是可选择性地扩展的)偏好“形状”库,范围在于复杂性和功率。最基本的形状当然是“条件恰恰为真吗”约束,如果其为假,则该约束具有某一固定成本,如果其为真,则该约束没有成本。

支持范围和不等式的有序数据类型或者算术数据类型适应更复杂的形状:软约束“早上”可以被表示为成本曲线,其中,在例如,上午6点和中午的几小时之间成本较低或者为零,从上午6点回到上午3点缓慢上升,并且可能在中午之后很快地上升。(可以通过更简单的曲线和“逐段”合成器来将这些拼接在一起。)仍然有其他约束可以用于字符串类型(例如,如同编辑距离等近似匹配)或者其他类型。

最终的概念是约束复合体,这些约束复合体是通常一起出现的约束或者偏好的类集。开发人员可以描述将若干(硬性的或者软性的)约束捆绑在一起的约束复合体。与单独的属性或者约束相似,可以使用自然语言或者形式语言来定义这些复合体和对这些复合体进行命名。例如:

●“往返”行程是恰好具有两个航段的行程,其中,第一航段从第二航段到达的同一机场离开,反之亦然。

●“蜜月”通常需要浪漫的酒店、较大的房型和两人的机票。

在系统的计划模块和推理模块中使用约束、函数和偏好。在推理模块中,它们被用作在底层(软)约束满足问题中的约束或者因子。在计划模块中,它们被用来生成涉及系统主动性和修复的提议。(例如,代替询问飞行中有多少个航段,系统可以询问“这是一次往返的吗?”。)

动作

通过动作来实现诸如播放歌曲或者购买相机等任务。任务被编码为本系统中的动作,并且是平台中与传统nli平台中的意图最相似的概念。动作只是采取某些命令行参数的函数(或者api调用),这些命令行参数中的一些命令行参数可以是可选的。

开发人员还可以区分在自动化助理系统之外委托资源的动作和是系统内部动作的那些动作。很难更正外部动作(如同预订航班),并且一些外部动作可能委托用户使用可能难以恢复的资源,如同金钱或者选票。内部动作往往是可容易更正的,并且通常不会委托用户的资源。因此,可以从“危险”到“微不足道”对动作进行分级,并且用于应用的业务规则应该指示对用户的影响。系统可以使用动作的“危险级别”的一种方式是:要求对危险动作(诸如,预订航班)进行明确的确认,同时允许在没有确认的情况下进行微不足道的交互(诸如,播放歌曲)。还可以指示其他中间情况,如果系统的置信度不够高,则需要进行确认(例如,对于发送电子邮件)。

在系统的计划模块和服务模块中使用动作,可以在对话管理器模块内实现该计划模块和服务模块。

语言提示

以前的平台依赖于开发人员向它们提供(话语、产生的意图的)明确的训练对。虽然这是丰富的数据源并且当前描述的平台支持它,但是对这些数据进行注释可能是繁重的并且困难的,尤其是对于较长的对话。

系统的语义解析器和系统的生成模块使用语言提示。它们通过向系统提示给定的单词序列与域中的概念相关联,来形成域的语法的基础。(对于解析器,它们可以简单地被用作针对相关概念的“触发短语”。)另外,系统可以通过将它们与用户话语一起馈送至释义模块来基于这些提示进行概括。

明确的语言提示

开发人员可以将每个实体类型与“名词性”单词或者短语相关联,用于指代该类型的通用对象。例如,他们可以说明行程可能被称为“航班”或者“旅行”,或者电影可能被称为“电影(movie)”、“电影(flick)”或者“表演”。

还可以提供语言提示以帮助动作、属性和约束的标识。例如,开发人员可以将“bookitinerary”动作与如同“预订”、“购买”、“保留”或者“请求”等单词相关联。或者他们可以说明行程的第一航段是“外出”行程。

生成模板

系统还需要知道描述现有对象或者搜索对象的方式。虽然这可以是从数据中可学习的,但是通常也可以向系统解释引用给定域的对象的方式。作为示例,考虑以下针对电影的示例:

该规范告诉系统其可以使用短语(如同“由斯蒂芬·斯皮尔伯格执导并且由哈里森·福特主演的《印第安纳琼斯与魔殿奇兵》(1984)”)来描述电影,和利用短语(如同“由姓卢卡斯的人执导的电影”)来描述对电影的搜索。

尽管有名称,但是也可以使用生成模板来帮助进行语义解析和解释。上面的模板告诉系统“由…指导的”与导演属性相关联。

训练数据

可以将来自新域的示例话语与适当的系统动作一起列出,并且可能与应该在每个话语或者话语序列之后被创建的、更新过的查询一起列出。

自动推断的提示

语言提示的一个重要源是域规范本身。由于程序和配置由人类按照人类以后可以读取它们的方式编写(希望!),因此,已经存在大量的语言信息,而不需要触发列表或者训练数据形式的其他明确的语言信息。

例如,可以从属性的名称自动推断出对模式属性的提示。例如,被命名为“outgoingdeparturetime”的字段容易映射至“外出出发时间”,正如被命名为“movie_rating”的字段映射至“电影评级”。在这些情况下,用户可以提供其他可能的释义。在其他情况下,系统可能比较难自动推断出对字段的自然语言描述。例如,scrnsizediag—指示电视屏幕的对角线长度的字段—可能在平台的自动推理能力之外。在这种情况下,开发人员将不得不提供针对短语(如同“屏幕大小”)的映射,系统理解该映射。

可以类似地导出对动作、约束、偏好和约束复合体的语言提示。例如,可以对被命名为“bookltinerary”的动作进行分析以接受“预订”作为触发。

在本自动化助理中,存在所有应用共有的语言基元和其他语言关系的类集。这些关系有时是某些名词和动词的“含义”。例如,5/4/45的“含义”是1945年5月4日,并且“我想要预订航班”的“含义”是存在应该进行的航班计划对话,并且应该将航班的详细信息提供给计划者,使得可以购买机票。

在本系统中,一旦意图与“卡片”(针对某一工作流的计划)相关联,系统就理解如何解析该工作流所需的任何未设置信息、大致理解的信息或者替代信息。这些解析对话(“您是说波士顿吗?”、“您想要从哪个机场离开?”、“您想要从哪个纽约机场起飞:拉瓜迪亚、纽瓦克还是肯尼迪?”)已经是系统的语言实现的一部分,除了在应用数据库中列举的特定元素(在这种情况下,为机场)之外。即,在机场系统中,自动化助理知道询问机场的用户偏好的方式,而在银行业务应用中,相同的语言代码将被用来针对银行或者特定账户询问偏好。虽然用于系统的“卡片”将是不同的(预订航班与转账不同),但是在每种情况下,都将使用通用协议来从用户引出选择,捕获由用户提供的分配,并且填写待执行的卡中的未知空格。

本系统中的高级卡片大致相当于系统的用户的“意图”。因此,处于“预订航班”应用的最高级别的卡片明白其必须知道出发机场和到达机场、航班的大致时间、服务等级、乘客数目以及有关连接性和乘客数目的约束。还可能存在有关价格、时间、飞机类型和运营飞机的公司的更软的约束。在用于“转移资金”的卡片中,用户(在系统的帮助下)必须指定银行、现存有资金的账户、资金必须进入的账户、金额以及转账的大致时间。可选的约束可以有关转移的资金的流通以及转账应该完成的详细时间。在任一情况下,系统的用户都必须指示针对卡片的每个所需实体的类别和身份,必须接受自动填写的元素,或者其必须与系统交互以在执行卡片之前填写所有所需字段。

将不参照图4至图6描述本技术的自动化助理应用的操作。图4是用于在多个域中提供交互式自动化助理的方法。在步骤410处,针对自动化助理在第一域中进行训练。该训练可以包括训练用于第一域的数据,并且可能引起生成和/或学习规范特征,诸如,模式、解析程序、不变量、约束、识别程序、词汇提示、生成模板以及定义用于第一域的语言结构的其他数据。在步骤420处,存储用于第一域的第一规范数据。

然后,在步骤430处,自动化助理可以针对第二域接收规范。可以从开发人员接收规范,可以由自动化助理自动生成规范,或者是这两者的组合。针对图5所示方法讨论了关于接收针对第二域的规范的更多细节。

在步骤440处,使用第一规范和第二规范来提供交互式自动化助理。提供交互式自动化助理可以包括:应用来自第一域的特征和来自第二域的新特征。针对图6所示方法更详细地讨论了这一点。

图5是用于接收针对第二域的规范的方法。图5所示方法提供了图4所示方法的针对步骤430的更多细节。首先,在步骤510处,接收用于第二域的模式数据。该模式数据可以包括具有某一类型的命名字段的属性。可以自动导入模式,并且可以自动将模式映射至用于第一域的模式。在步骤520处,可以接收识别程序数据。识别程序数据可以标识语言内的实体。在一些实例中,可以在语义解析器中使用识别程序,例如,在自动更正模块中和/或与释义模块一起。

在步骤530处,可以接收解析程序数据。解析程序可以将系统查询语言转换为应用程序接口(api)调用,以查找与查询中的限制相匹配的实体。在步骤540处,可以接收约束数据,并且在步骤550处,可以接收不变量。不变量是对于域中的某些对象为真或者通常为真的元素。

在步骤560处,可以接收动作数据。动作是采取特定命令行参数并且可以委托外部资源或者内部资源的功能。在一些实例中,可能难以更正外部动作,但是可以根据外部动作可能造成的风险级别来对外部动作进行分级。例如,可以将执行具有外部服务的动作的外部动作分为危险的,而将执行内部任务的动作分为微不足道的。在一些实例中,在执行动作之前,可以向用户报告针对动作的所有等级的选定等级。

在步骤570处,可以接收词汇提示,并且在步骤580处,可以接收生成模板。在步骤590处,可以接收用于第二域的训练片段。接收训练片段以及其他规范数据而不是完整的训练数据集允许本系统比需要完整的训练数据集的系统快很多地在第二域上启动和运行。

在步骤595处,可以接收代理行为参数。代理行为参数可以指示生成的语言的正式度、响应的大小以及其他方面。开发人员可以通过行为参数来针对特定应用指定自动化助理的个性。潜在代理特点的局部列表包括:

a.口语化的-针对交互使用大量单词和非正式言语

b.简洁的-使用尽可能少的单词来维持通信

c.幽默的-在会话中使用笑话或者双关语

b.正式的-要求讨论始终专注于一个主题,仅使用正式语言。

b.严格核实–核实应用中的数据的所有变化

f.严格通知-每当修改了应用中的数据时就告诉用户

g.标准核实-要求核实针对数据的所有非本地变化。

h.(更多的)

自动化助理可以具有已经被编码的这些特点中的一些或者全部特点。开发人员可以选择完整的个性,或者可以帮助对新的个性进行编码,或者例示针对手动学习实现或者机器学习实现的新的所需个性来提供数据。

图6是用于提供交互式自动化助理的方法,针对规范和第二规范使用该交互式自动化助理。图6所示方法提供了针对图4所示方法的步骤440的更多细节。首先,在步骤610处将来自第一域的一般特征应用于自动化助理和第二域规范。然后在步骤620处,将来自接收到的规范的新特征应用于第二域。在步骤630处,可以使用接收到的规范和第一域的特征来在第二域中针对用户执行交互式对话。通过提供域对象和属性而不是意图和话语,与现有技术的系统相反,本技术的自动化助理可能需要少得多的训练,并且能够更快地处理对话和第二域。

计划

计划模块的任务是:确定系统将进行对话的方式,并且为用户的(多个)请求提供服务。粗略地说,其查看对话状态(该对话状态包括对用户的意图的表示),并且弄清楚接下来做什么,以及系统的哪些组件将为其提供服务。

在一个实施例中,其可以被实现为自上而下的加权演绎系统,其中,系统具有作为目标要满足的一组后置条件(通常由包括用户话语和内部动作的外部事件产生),并且系统使用演绎操作符来找到解决方案。目标包括:

●handle(事件)或者handle(话语):处理传入的事件

●execute(动作):执行外部api调用

●resolve(变量)或者resolve(约束):csp需要域或者需要扩展的变量或者约束。

●对话动作目标包括inform(expr)和confirm(expr),其中expr是对通信目标的抽象表示。通常经由生成来处理这些对话动作目标。

●choose(变量):系统请求从已知的域中挑选变量或者将变量的范围缩小到单个或者几个候选。

●update(expr):使用例如,解析的结果来更新系统的内部表示。

●propose(expr):propose将卡片、约束或者约束模板等实例化。

操作员包括:

●解析器,该解析器将用户话语转换为一组进一步的目标

●ignore,ignore抑制事件

●解析程序和约束解析程序

●如同winnow等对话模式,winnow处理选择目标。

●用于处理对话动作目标的生成器。

●用于基于update来更新状态的原始操作员

经由在别处描述的各种学习机构来自动学习权重。所涉及的特征着眼于操作员身份、(多个)目标的属性(包括开发人员提示)、整体对话状态、用户偏好等。

系统还可以向用户提议各种执行策略,这要求用户确认选项或者在选项之间进行选择。这些提议可能是询问用户是否想要例如,在查找航班行程之前查找酒店,或者其可以被用来对执行计划进行“完整性检查”(“您真的想要搜索澳大利亚的任何机场吗?”)。可以按照与用户的响应被用于对话系统的其余部分几乎相同的方式来将用户的响应用作训练数据:系统可以向其提议分配特征,并且学习用户可能会采取的特征。

然而,一个不同之处在于:除了用户的偏好(系统对用户的偏好的估计)之外,系统还可以考虑推理本身的成本。特别地,从计算角度、延迟角度或者甚至财务角度来看,某些执行策略可能是特别昂贵的:一些推理算法可能特别棘手,或者可能需要访问慢速数据库,或者为每个执行的查询花费金钱。系统可以被配置为权衡这些因素以确定哪种执行策略适合于状况,或者学习使某一效用函数(例如,用户的最终购买的期望值)最大化。该想法与https://cs.stanford.edu/~pliang/papers/onthejob-nips2015.pdf.中的想法相似。

来自共享基础架构的系统益处

在本文所描述的系统中,共享基本基础架构通知并且学习新域,无论是与先前启用的域密切相关,还是基本脱离先前的经验。然而,在每种情况下,大部分对话基础架构和计算解决方案软件将是很常见的。

通过从开发人员的单独的域的配置共享特征的参数,系统可以学习所有域的适当的行为,并且在新域访问训练数据之前改进新域的功能性。

随着系统的成熟,大量核心类型和交互将使得非常容易实现应用之间的互操作性。将有一种从各种应用的交集产生的几乎通用的查询/约束语言。

因此,与纯粹的低认识“深度学习”解决方案相比较,该系统利用特定于每个域的信息来增强整个系统,从而允许开发人员以最小的努力来创建垂直应用,并且针对所有用户增强了自动化助理的整体效用。

示例域规范

作为示例,考虑下面的示例性代码,呈现了针对用于搜索电影数据库的域的json规范的玩具版本。

对开发人员的益处

在一些实例中,通过提供域规范、业务逻辑和一些语言提示,开发人员可以访问具有当前系统不具备的能力的功能性自动化助理,尽管本身具有很少或者没有“训练数据”。当然,在没有数据的情况下,系统不像将呈现的那样稳健,但是其具有“开箱即用”的以下特征:

a.对话模式,包括用于收集要求、进行搜索、选择选项、错误处理和执行动作的多种策略;

b.共指解析,包括:

i.针对先前出现的实体或者发生的操作识别并且使用代词,

ii.对隐藏指代进行解析,例如,自动确定针对如同“价格是多少?”等话语的适当的实体。

iii.识别并且使用适当的指称表达;

c.释义,从由开发人员提供的语言提示产生,被用于扩展对用户话语的分析并且被用于使自动化助理更个性化;

d.拼写更正,基于大词典、训练自动化助理的数据库以及来自新域的新项。

e.语言生成,包括从训练数据和用户交互学习到的简化描述

f.多任务处理,利用在自动化助理中提供的软件工程接口

g.与其他域的交互性,允许用户混合任务,重新开始暂停的任务,以及从其他域搜索必要的数据。

h.用于基于自动化助理的会话过程更正/确认数据的澄清过程。

i.灵活的推理引擎,该灵活的推理引擎能够在固定的图形用户界面中或者在自然语言接口的简单实现中执行将很麻烦的查询。

示例性代码用两种特定于域的类型来定义域:电影和评级。开发人员已经为“标题”属性提供了自定义触发(语言提示),并且对于领衔主演,存在于演员字段中的第一条目中。名词性词被用作对引用单独的电影的语言提示。这些被用于意图检测以及识别和生成指称表达。开发人员还已经提供了用于描述电影的生成模板。使用该生成模板,系统可以将电影描述为例如,“由斯蒂芬·斯皮尔伯格执导并且由哈里森·福特主演的《印第安纳琼斯与魔殿奇兵》(1984)”。系统还可以使用该模板来描述尚未找到的电影,例如,系统可以使用该相同的模板来描述针对“由哈里森·福特主演的电影”的搜索。还有对针对电影的解析程序的要求的描述。

相比之下,评级类型是列举类型,具有在本说明书中内联指定的所有可能的评级。列举被用作识别程序。开发人员没有为该类型指定任何语言提示,并且因此,使用从规范的字段名称和默认生成推断出的触发,直到可以从数据中学习更好的行为。

示例性代码中不包括用于执行电影解析程序的实际代码,该电影解析程序当然依赖于底层服务api。该特定域不包括任何动作,但是与声明具有解析程序的类型类似地指定动作,包括所需的命令行参数(~属性)和触发。

图7是用于实现本技术的计算环境的框图。可以在客户端110、移动设备120、计算设备130、网络服务器150、应用服务器160和数据存储库170等的上下文中实现图7所示系统700。

图7所示计算系统700包括一个或者多个处理器710和存储器720。主存储器720部分地存储指令和数据以供处理器710执行。主存储器710可以在操作时存储可执行代码。图7所示系统700进一步包括大容量存储设备730、(多个)便携式存储介质驱动器740、输出设备750、用户输入设备760、图形显示器770和外围设备780。

在图7中示出的组件被描绘为经由单条总线790被连接。然而,组件可以通过一个或者多个数据运输装置被连接。例如,处理器单元710和主存储器720可以经由本地微处理器总线被连接,并且大容量存储设备730、(多个)外围设备780、便携式或者远程存储设备740和显示系统770可以经由一条或者多条输入/输出(i/o)总线被连接。

可以利用磁盘驱动器或者光盘驱动器来实现的大容量存储设备730是用于存储数据和指令以供处理器单元710使用的非易失性存储设备。大容量存储设备730可以存储用于实现本发明的实施例的系统软件,以用于将该软件加载到主存储器720中的目的。

便携式存储设备740结合便携式非易失性存储介质(诸如,压缩盘、数字视频盘、磁盘、闪存等)操作,以向图7所示计算机系统700输入和从图7所示计算机系统700输出数据和代码。用于实现本发明的实施例的系统软件可以被存储在这种便携式介质上并且经由便携式存储设备740被输入至计算机系统700。

输入设备760提供用户界面的一部分。输入设备760可以包括用于输入字母数字信息以及其他信息的字母数字小键盘(诸如,键盘)或者指向设备(诸如,鼠标、轨迹球、手写笔或者光标方向键)。此外,如在图7中示出的系统700包括输出设备750。合适的输出设备的示例包括扬声器、打印机、网络接口和监视器。

显示系统770可以包括液晶显示器(lcd)、led显示器、触摸显示器或者其他合适的显示设备。显示系统770接收文本信息和图形信息,并且处理信息以用于输出至显示设备。显示系统可以通过触摸显示器来接收输入,并且传输接收到的输入以便进行存储或者进一步处理。

外围设备780可以包括用以向计算机系统添加附加功能性的任何类型的计算机支持设备。例如,(多个)外围设备780可以包括调制解调器或者路由器。

被包括在图7所示计算机系统700中的组件可以包括个人计算机、手持式计算设备、平板计算机、电话、移动计算设备、工作站、服务器、小型计算机、大型计算机或者任何其他计算设备。计算机还可以包括不同的总线配置、联网平台、多处理器平台等。可以使用各种操作系统,包括:unix、linux、windows、appleos或者ios、android以及其他合适的操作系统,包括移动版本。

当实现移动设备(诸如,智能电话或者平板计算机)或者无线地进行通信的任何其他计算设备时,图7所示计算机系统700可以包括一根或者多根天线、无线电以及用于经由无线信号来进行通信(诸如,例如,使用wi-fi、蜂窝或者其他无线信号的通信)的其他电路装置。

虽然本专利文档包括许多细节,但是这些细节不应该被解释为对任何发明或者可能要求保护的内容的范围的限制,而是作为对可以特定于特定发明的特定实施例的特征的描述。在本专利文档中在分离的实施例的上下文中描述的某些特征也可以组合地被实现在单个实施例中。相反,在单个实施例的上下文中描述的各种特征也可以分离地或者按照任何合适的子组合被实现在多个实施例中。此外,虽然上面可以将特征描述为在某些组合中起作用并且甚至在最初如此要求保护,但是在一些情况下,可以将所要求保护的组合中的一个或者多个特征从组合中删除,并且可以使所要求保护的组合涉及子组合或者子组合的各种变型。

类似地,虽然在附图中按照特定顺序描绘了操作,但是这不应该被理解为需要按照所示出的特定顺序或者按照相继顺序来执行这种操作,或者需要执行所有图示的操作以实现期望的结果。此外,在本专利文档中所描述的实施例中的各种系统组件的分离不应该被理解为在所有实施例中都需要这种分离。

仅描述了一些实现和示例,并且可以基于在本专利文档中描述的和说明的内容来做出其他实现、增强和变型。

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