智能自动化助理的制作方法

文档序号:6359866阅读:186来源:国知局
专利名称:智能自动化助理的制作方法
技术领域
本发明涉及智能系统,且更具体地说,本发明是针对智能自动化助理的若干类应用。
背景技术
如今的电子装置能够经由因特网且从其它来源接入大量、正在增长且多种多样的功能、服务和信息。随着许多消费型装置、智能电话、平板计算机等能够运行软件应用程序来执行各种任务并提供不同类型的信息,针对此些装置的功能性正快速增加。通常,每一应用程序、功能、网站或特征具有其自己的用户接口以及其自己的操作范式,其中的许多学习起来很麻烦或对于用户来说是有压力的。另外,许多用户可能甚至连发现其电子装置上或各种网站上什么功能性和/或信息是可用的也有困难;因此,此些用户可能感到沮丧或不堪重负,或可能仅仅是不能够以有效方式使用对他们来说可用的资源。明确地说,初学用户或以某一方式受损或伤残的个人,和/或年老、繁忙、思想不集中和/或正操作交通工具的个人可能难以有效地与其电子装置介接,和/或有效地加入在线服务。此些用户尤其有可能对可供他们使用的大量分散且不一致的功能、应用程序和网站感到困难。因此,现有的系统常常难以使用和导航,且常常向用户呈现不一致且有压力的接口,所述接口常常阻止用户有效地利用技术。

发明内容
根据本发明的各种实施例,一种智能自动化助理在电子装置上实施,以促进用户与装置的交互,且帮助用户更有效地与本地和/或远程服务接洽。在各种实施例中,所述智能自动化助理使用自然语言对话以集成谈话方式与用户接洽,且在适当时调用外部服务以获得信息或执行各种动作。根据本发明的各种实施例,所述智能自动化助理整合由不同软件组件提供的多种 能力(例如,用于支持自然语言辨识和对话、多模式输入、个人信息管理、任务流管理、编排分布式服务等)。此外,为了向用户提供智能接口和有用功能性,本发明的智能自动化助理可在至少一些实施例中协调这些组件和服务。谈话接口以及获得信息并执行后继任务的能力在至少一些实施例中是通过协调例如语言组件、对话组件、任务管理组件、信息管理组件和/或多个外部服务来实施的。根据本发明的各种实施例,可配置、设计和/或操作智能自动化助理系统来提供各种不同类型的操作、功能性和/或特征,且/或组合所述系统安装于其上的电子装置的多 个特征、操作和应用程序。在一些实施例中,本发明的智能自动化助理系统可执行以下各项中的任一者或全部主动地引出来自用户的输入;解译用户输入;消除竞争性解译之间的歧义;根据需要请求和接收澄清信息;以及基于辨明的意图而执行(或起始)动作。可(例如)通过激活电子装置上可用的任何应用程序或服务以及经由例如因特网等电子网络可用的服务且/或与其介接来执行动作。在各种实施例中,可经由API或通过任何其它合适机制来执行对外部服务的此激活。以此方式,本发明的各种实施例的智能自动化助理系统可相对于电子装置的许多不同应用程序和功能,且相对于可经由因特网可用的服务而统一、简化和改进用户的体验。进而可减轻用户进行以下行为的负担学习什么功能性可在装置上以及在网络连接的服务上可用、如何与此服务介接以获得他或她想要的东西,以及如何解译从此些服务接收到的输出;相反,本发明的助理可充当用户与此些多样服务之间的中间者。另外,在各种实施例中,本发明的助理提供一种谈话接口,用户可找到比常规图形用户接口多的直觉以及少的麻烦。用户可使用若干可用输入和输出机制(例如语音、图形用户接口(按钮和链接)、文本条目等)中的任一者以谈话对话的形式与助理接洽。可使用若干不同平台(例如装置API、网络、电子邮件等,或其组合)中的任一者来实施所述系统。可在此谈话的上下文中将对额外输入的请求呈现给用户。可加入短期和长期存储器,使得在给出先前事件和给定会话内的通信以及关于用户的历史和简档信息的情况下,可在适当的上下文中解译用户输入。另外,在各种实施例中,从与装置上的特征、操作或应用程序的用户交互得到的上下文信息可用于使所述装置上或其它装置上的其它特征、操作或应用程序的操作成流线型。举例来说,智能自动化助理可使用电话呼叫的上下文(例如被呼叫的人)来使文本消息的起始成流线型(例如,以确定应发送给同一人的文本消息,而用户不必明确地指定文本消息的接收者)。本发明的智能自动化助理可进而解译指令,例如“给他发送文本消息”,其中根据从当前电话呼叫且/或从装置上的任何特征、操作或应用程序得到的上下文信息来解译“他”。在各种实施例中,智能自动化助理考虑各种类型的可用上下文数据,以确定要使用哪一地址簿联系人、要使用哪一联系人数据、要将哪一电话号码用于所述联系人等,使得用户无需手动地重新指定此信息。在各种实施例中,所述助理还可相应地考虑外部事件和作出响应,(例如)以起始动作、起始与用户的通信、提供警报且/或依据外部事件修改先前起始的动作。如果需要来自用户的输入,那么可再次使用谈话接口。在一个实施例中,所述系统是基于互相联系的域和任务的集合,且使用由系统可与之交互的外部服务激励的额外功能性。在各种实施例中,这些外部服务包含具有网络功能的服务,以及与硬件装置本身有关的功能性。举例来说,在其中智能自动化助理在智能电 话、个人数字助理、平板计算机或其它装置上实施的实施例中,助理可控制装置的许多操作和功能,例如拨打电话号码、发送文本消息、设定提醒、将事件添加到日历等。在各种实施例中,可实施本发明的系统以在若干不同域中的任一者中提供辅助。实例包含·本地服务(包含位置和时间特定服务,例如餐馆、电影、自动柜员机(ATM)、事件以及见面地点);·个人和社会记忆服务(包含动作项目、便笺、日历事件、共享链接等);·电子商务(包含例如书籍、DVD、音乐等项目的在线购买);·旅行服务(包含航班、旅馆、景点等)。所属领域的技术人员将认识到,以上域列表只是示范性的。另外,本发明的系统可以域的任何组合来实施。在各种实施例中,本文所揭示的智能自动化助理系统可经配置或设计以包含用于使经由因特网可用的数据和服务的应用自动化以发现、寻找、挑选、购买、预订或订购产品和服务的功能性。除了使使用这些数据和服务的过程自动化之外,本文所揭示的至少一个智能自动化助理系统实施例还可一次实现数据和服务的若干来源的组合使用。举例来说,所述系统可组合来自若干评论点的关于产品的信息、检查来自多个经销商的价格和可用性,且检查其位置和时间约束,并帮助用户找到对其问题的个人化解决方案。另外,本文所揭示的至少一个智能自动化助理系统可经配置或设计以包含以下功能性用于使经由因特网可用的数据和服务的使用自动化以发现、调查、选择、预订和以其它方式得知待办事项(包含(但不限于)电影、事件、表演、展览、放映和吸引人的事物);要去的地方(包含(但不限于)旅行目的地、旅馆和其它要停留的地方、地标以及其它关注地点等);吃喝的地方(例如餐馆和酒吧);与他人见面的时间和地方,以及可在因特网上找到的娱乐或社会交互的任何其它来源。另外,本文所揭示的至少一个智能自动化助理系统实施例可经配置或设计以包含以下功能性使得能够经由可原本由具有图形用户接口的专用应用程序提供的自然语言对话实现应用程序和服务的操作,所述专用应用包含搜索(包含基于位置的搜索);导航(地图和方向);数据库查找(例如,通过名称或其它特性来寻找商店或人);获得天气情况和预报;检查市场物品的价格或金融交易的状态;监视交通或航班状态;存取和更新日历和日程表;管理提醒、警报、任务和计划;经由电子邮件或其它消息接发平台进行通信;以及本地或远程地操作装置(例如,拨打电话、控制光和温度、控制家用安全装置、播放音乐或视频等)。另外,本文所揭示的至少一个智能自动化助理系统实施例可经配置或经设计以包含以下功能性识别、产生且/或提供对活动、产品、服务、娱乐来源、时间管理的个人化推荐或受益于自然语言中的交互式对话和对数据和服务的自动化存取的任何其它种类的推荐服务。在各种实施例中,本发明的智能自动化助理可控制电子装置的许多特征和操作。举例来说,智能自动化助理可调用经由API或通过其它方式与装置上的功能性和应用程序介接的服务,以执行原本可使用装置上的常规用户接口起始的功能和操作。此些功能和操作可包含(例如)设定警告、进行电话呼叫、发送文本消息或电子邮件消息、添加日历事件等。可将此些功能和操作执行为用户与助理之间的谈话对话的上下文中的附加功能。此些功能和操作可在此对话的上下文中由用户指定,或其可基于对话的上下文自动执行。所属领域的技术人员将认识到,助理可进而用作用于起始和控制电子装置上的各种操作的控制机制,其可用作例如按钮或图形用户接口等常规机构的替代物。


本发明的若干实施例,且连同描述内容一起用以根据实施例阐释本发明的原理。所属领域的技术人员将认识到,图中所说明的特定实施例仅仅是示范性的,且无意限制本发明的范围。图I是描绘智能自动化助理系统的一个实施例的实例的框图。图2说明根据至少一个实施例的在用户与智能自动化助理之间的交互的实例。图3是描绘适合实施根据至少一个实施例的智能自动化助理的至少一部分的计算装置的框图。图4是描绘用于根据至少一个实施例在独立计算系统上实施智能自动化助理的至少一部分的架构的框图。图5是描绘用于根据至少一个实施例在分布式计算网络上实施智能自动化助理的至少一部分的架构的框图。图6是描绘说明若干不同类型的客户端和操作模式的系统架构的框图。图7是描绘根据一个实施例彼此通信以实施本发明的客户端和服务器的框图。图8是描绘根据一个实施例的主动本体的一片段的框图。图9是描绘智能自动化助理系统的替代实施例的实例的框图。图10是描绘根据一个实施例的主动输入引出组件的操作的方法的流程图。图11是描绘根据一个实施例的用于主动所键入输入引出的方法的流程图。图12到21是说明根据一个实施例的用于主动所键入输入引出的程序中的一些程序的某些部分的屏幕截图。图22是描绘根据一个实施例的用于引出话音或语音输入的主动输入引出的方法的流程图。图23是描绘根据一个实施例的用于引出基于⑶I的输入的主动输入引出的方法的流程图。图24是描绘根据一个实施例的用于在对话流等级下的主动输入引出的方法的流程图。图25是描绘根据一个实施例的用于主动监视相关事件的方法的流程图。图26是描绘根据一个实施例的用于多模式主动输入引出的方法的流程图。图27是说明根据一个实施例可由域模型组件和服务编排提供的各种类型的功能、操作、动作和/或其它特征的实例的一组屏幕截图。图28是描绘根据一个实施例的用于自然语言处理的方法的实例的流程图。图29是说明根据一个实施例的自然语言处理的屏幕截图。 图30和31是说明根据一个实施例可由对话流处理器组件提供的各种类型的功能、操作、动作和/或其它特征的实例的屏幕截图。图32是描绘根据一个实施例的对话流处理器组件的操作的方法的流程图。图33是描绘根据一个实施例的自动呼叫和响应程序的流程图。图34是描绘根据一个实施例的用于受约束选择任务的任务流的实例的流程图。图35和36是说明根据一个实施例的受约束选择任务的操作的实例的屏幕截图。图37是描绘根据一个实施例的用于执行服务编排程序的程序的实例的流程图。图38是描绘根据一个实施例的服务调用程序的实例的流程图。图39是描绘根据一个实施例的多阶段输出程序的实例的流程图。图40和41是描绘根据一个实施例的输出处理的实例的屏幕截图。图42是描绘根据一个实施例的多模式输出处理的实例的流程图。图43A和43B是描述根据一个实施例的在改变位置的同时使用短期个人存储器组件来维持对话上下文的实例的屏幕截图。图44A到44C是描绘根据一个实施例的长期个人存储器组件的使用的实例的屏幕截图。图45描绘用于受约束选择任务的抽象模型的实例。图46描绘帮助引导用户通过搜索过程的对话流模型的实例。图47是描绘根据一个实施例的受约束选择的方法的流程图。
具体实施例方式现在将参考如附图中说明的几个实例实施例详细描述各种技术。在以下描述中,陈述大量具体细节,以便提供对本文所描述或参考的一个或一个以上方面和/或特征的全面理解。然而,所属领域的技术人员将明白,本文所描述或参考的一个或一个以上方面和/或特征可在没有一些或所有这些具体细节的情况下实践。在其它情况下,为了不使本文所描述或参考的方面和/或特征中的一些方面和/或特征模糊不清,未详细描述众所周知的过程步骤和/或结构。本申请案中可能描述一个或一个以上不同发明。另外,对于本文所述的方面中的一者或一者以上,大量实施例可描述于本专利申请案中,且仅出于说明性目的而呈现。所描述的实施例无意在任何意义上具有限制性。如从揭示内容容易明白,所述发明中的一者或一者以上可广泛适用于大量实施例。充分详细地描述这些实施例以使得所属领域的技术人员能够实践所述发明中的一者或一者以上,且将理解,可利用其它实施例,且可在不脱离所述发明中的一者或一者以上的范围的情况下作出结构、逻辑、软件、电气和其它改变。因此,所属领域的技术人员将认识到,可以各种修改和更改来实践所述发明中的一者或一者以上。可参考形成本发明的一部分的一个或一个以上特定实施例或图来描述所述发明中的一者或一者以上的特定特征,且其中以说明的方式展示所述发明中的一者或一者以上的特定实施例。然而,应理解,此些特征不限于在描述其所参考的一个或一个以上特定实施例或图中使用。本发明不是对所述发明中的一者或一者以上的所有实施例的字描述,也不是所有实施例中必须存在的所述发明中的一者或一者以上的特征的列表。本专利申请案中所提供的章节的标题以及本专利申请案的题目仅是为了方便,且不应被视为以任何方式限制本发明。彼此通信的装置无需彼此连续通信,除非另有明确指定。另外,彼此通信的装置可直接通信或通过一个或一个以上中间物间接地通信。
对彼此通信的若干组件的实施例的描述并不暗示需要所有此些组件。相反,描述多种任选组件以说明所述发明中的一者或一者以上的广泛多种的可能实施例。另外,尽管可以顺序次序描述过程步骤、方法步骤、算法等,但此些过程、方法和算法可经配置以便以交替次序工作。换句话说,本专利申请案中可描述的步骤的任何序列或次序本身并不指示以所述次序执行所述步骤的要求。可以任何实际次序执行所描述过程的步骤。另外,可同时执行一些步骤,尽管所述步骤被描述或暗示为非同时发生(例如,因为一个步骤是在另一步骤之后描述的)。此外,通过在图式中描绘而说明过程并不暗示所说明的过程排除对过程的其它变化和修改,并不暗示所说明的过程或其步骤中的任一者对所述发明中的一者或一者以上是必要的,且并不暗示所说明的过程是优选的。当描述单个装置或物品时,将容易明白,可使用一个以上装置/物品(不管其是否协作)代替单个装置/物品。类似地,在描述一个以上装置或物品(不管其是否协作)的情况下,将容易明白,可使用单个装置/物品代替一个以上装置或物品。装置的功能性和/或特征可替代地由未明确描述为具有此类功能性/特征的一个或一个以上其它装置体现。因此,所述发明中的一者或一者以上的其它实施例无需包含所述装置本身。本文所描述或参考的技术和机制有时将为了清楚而以单数形式描述。然而,应注意,特定实施例包含技术的多次反复或机制的多个例示,除非另有注释。尽管在智能自动化助理技术的上下文内描述,但可理解,本文所述的各种方面和技术(例如与主动本体相关联的那些技术)还可部署和/或应用于涉及与软件的人类和/或计算机化交互的其它领域的技术中。与智能自动化助理技术有关的其它方面(例如,其可由本文所述的一个或一个以上智能自动化助理系统实施例利用、提供且/或在所述一个或一个以上智能自动化助理系统实施例处实施)揭示于以下参考中的一者或一者以上中*2010年I月18日申请的代理人案号为SIRIP003P的第61/295,774号美国临时专利申请案“智能自动化助理(Intelligent Automated Assistant) ”,所述临时专利申请案的揭示内容以引用的方式并入本文中;· 2006年9月8日申请的第11/518,292号美国专利申请案“用于建立智能自动化助理的方法和设备(Method and Apparatus for Building an Intelligent AutomatedAssistant) ”,所述专利申请案的揭示内容以引用的方式并入本文中;以及· 2009年6月12日申请的第61/186,414号美国临时专利申请案“用于语义自动完成的系统和方法(System and Method for Semantic Auto-Completion) ”,所述临时专利申请案的揭示内容以引用的方式并入本文中。硬件架构通常,本文所揭示的智能自动化助理技术可在硬件或软件与硬件的组合上实施。举例来说,所述技术可在操作系统核心中、在单独的用户进程中、在绑定到网络应用程序中的库封装中、在特殊构造的机器上,或在网络接口卡上实施。在特定实施例中,本文所揭示的技术可在例如操作系统等软件中或在操作系统上运行的应用程序中实施。本文所揭示的智能自动化助理实施例中的至少一些的软件/硬件混合实施方案 可实施在由存储在存储器中的计算机程序选择性地激活或重新配置的可编程机器上实施。此些网络装置可具有多个网络接口,所述多个网络接口可经配置或设计以利用不同类型的网络通信协议。用于这些机器中的一些的一般架构可从本文所揭示的描述中得知。根据特定实施例,本文所揭示的各种智能自动化助理实施例的特征和/或功能性中的至少一些可实施在以下各者上一个或一个以上通用网络主机,例如终端用户计算机系统、计算机、网络服务器或服务器系统、移动计算装置(例如,个人数字助理、移动电话、智能电话、膝上型计算机、平板计算机等);消费型电子装置;音乐播放器;或任何其它合适的电子装置、路由器、交换机等,或其任何组合。在至少一些实施例中,本文所揭示的各种智能自动化助理实施例的特征和/或功能性中的至少一些可在一个或一个以上虚拟化计算环境(例如,网络计算云等)中实施。现在参看图3,展示了描绘适合实施本文所揭示的智能自动化助理特征和/或功能性的至少一部分的计算装置60的框图。计算装置60可为(例如)终端用户计算机系统、网络服务器或服务器系统、移动计算装置(例如,个人数字助理、移动电话、智能电话、膝上型计算机、平板计算机等)、消费型电子装置;音乐播放器;或任何其它合适的电子装置,或其任何组合或部分。计算装置60可适于使用针对此通信的已知协议(无论是无线还是有线)经由例如因特网等通信网络与其它计算装置(例如客户端和/或服务器)通信在一个实施例中,计算装置60包含中央处理单元(CPU)62、接口 68以及总线67 (例如外围组件互连(PCI)总线)。当在适当软件或固件的控制下作用时,CPU 62可负责实施与经特殊配置的计算装置或机器的功能相关联的特定功能。举例来说,在至少一个实施例中,用户的个人数字助理(PDA)可经配置或设计以用作智能自动化助理系统,其利用CPU 62、存储器61、65,以及接口 68。在至少一个实施例中,可致使CPU 62在软件模块/组件的控制下执行不同类型的智能自动化助理功能和/或操作中的一者或一者以上,所述软件模块/组件可(例如)包含操作系统和任何适当的应用程序软件、驱动器等。CPU 62可包含一个或一个以上处理器63,例如来自摩托罗拉或因特尔微处理器家族或MIPS微处理器家族的处理器。在一些实施例中,处理器63可包含经特殊设计的硬件(例如,专用集成电路(ASIC)、电可擦除可编程只读存储器(EEPROM)、现场可编程门阵列(FPGA)等),其用于控制计算装置60的操作。在特定实施例中,存储器61 (例如非易失性随机存取存储器(RAM)和/或只读存储器(ROM))也形成CPU 62的一部分。然而,存在其中存储器可耦合到系统的许多不同方式。存储器块61可用于多种目的,例如高速缓存和/或存储数据、编程指令等。如本文所使用,术语“处理器”并不仅限于此项技术中称为处理器的那些集成电路,而是广泛地指代微控制器、微型计算机、可编程逻辑控制器、专用集成电路,以及任何其它可编程电路。在一个实施例中,可将接口 68提供为接口卡(有时称为“线卡”)。通常,接口 68控制数据包在计算网络上的发送和接收,且有时支持与计算装置60 —起使用的其它外围设备。可提供的接口是以太网接口、帧中继接口、缆线接口、DSL接口、令牌环接口等。另夕卜,可提供各种类型的接口,例如通用串行总线(USB)、串行、以太网、火线、PCI、并行、射频(RF)、Bluetooth 、近场通信(例如,使用近场磁)、802· 11 (WiFi)、帧中继、TCP/IP、ISDN、快速以太网接口、千兆位以太网接口、异步传送模式(ATM)接口、高速串行接口(HSSI)接口、销售点(POS)接口、光纤数据分布接口(FDDI)等。通常,此些接口 68可包含适合与适当媒体通信的端口。在一些情况下,此些接口 68还可包含独立处理器,且在一些例子中,可包含 易失性和/或非易失性存储器(例如,RAM)。尽管图3中所示的系统说明用于实施本文所描述的本发明的技术的计算装置60的一种特定架构,但其绝不是其上可实施本文所述的特征和技术的至少一部分的仅有装置架构。举例来说,可使用具有一个或任何数目的处理器63的架构,且此些处理器63可存在于单个装置中,或分布在任何数目的装置之间。在一个实施例中,单个处理器63处置通信以及路由计算。在各种实施例中,可在智能自动化助理系统中实施不同类型的智能自动化助理特征和/或功能性,所述智能自动化助理系统包含客户端装置(例如,运行客户端软件的个人数字助理或智能电话)和服务器系统(例如下文更详细描述的服务器系统)。不管网络装置配置如何,本发明的系统可使用一个或一个以上存储器或存储器模块(例如,存储器块65),其经配置以存储数据、用于通用网络操作的程序指令,和/或与本文所述的智能自动化助理技术的功能性有关的其它信息。举例来说,所述程序指令可控制操作系统和/或一个或一个以上应用程序的操作。存储器还可经配置以存储数据结构、关键字分类信息、广告信息、用户点击和按压信息,和/或本文中所描述的其它特定非程序信肩、O因此此些信息和程序指令可用以实施本文所描述的系统/方法,所以至少一些网络装置实施例可包含非暂时机器可读存储媒体,所述非暂时机器可读存储媒体(例如)可经配置或设计以存储用于执行本文所述的各种操作的程序指令、状态信息等。此类非暂时机器可读存储媒体的实例包含(但不限于)磁性媒体,例如硬盘、软盘和磁带;光学媒体,例如⑶-ROM磁盘;磁-光学媒体,例如软光盘,以及经特殊配置以存储和执行程序指令的硬件装置,例如只读存储器装置(ROM)、快闪存储器、记忆电阻器存储器、随机存取存储器(RAM)等。程序指令的实例包含机器代码(例如由编译器产生),以及含有可由计算机使用解译器执行的较高等级代码的文件。在一个实施例中,本发明的系统在独立计算系统上实施。现在参看图4,展示了描绘用于根据至少一个实施例在独立计算系统上实施智能自动化助理的至少一部分的架构的框图。计算装置60包含处理器63,处理器63运行用于实施智能自动化助理1002的软件。输入装置1206可为适合接收用户输入的任何类型,包含(例如)键盘、触摸屏、麦克风(例如,用于话音输入)、鼠标、触摸板、轨迹球、五向开关、操纵杆和/或其任何组合。输出装置1207可为屏幕、扬声器、打印机和/或其任何组合。存储器1210可为具有如此项技术中已知的结构和架构的随机存取存储器,以供处理器63在运行软件的过程中使用。存储装置1208可为用于以数字形式存储数据的任何磁性、光学和/或电存储装置;实例包含快闪存储器、磁性硬盘驱动器、⑶-ROM和/或类似物。在另一实施例中,本发明的系统是在分布式计算网络(例如具有任何数目的客户端和/或服务器的分布式计算网络)上实施。现在参看图5,展示了描绘用于根据至少一个实施例在分布式计算网络上实施智能自动化助理的至少一部分的架构的框图。在图5所示的布置中,提供任何数目的客户端1304 ;每一客户端1304可运行用于实施本发明的客户端侧部分的软件。另外,可提供用于处置从客户端1304接收到的请求的任何数目的服务器1340。客户端1304和服务器1340可经由电子网络1361 (例如因特网)彼此通信。可使用任何已知网络协议(包含(例如)有线和/或无线协议)来实施网络1361。
另外,在一个实施例中,服务器1340可在需要时呼叫外部服务1360,以获得额外信息或参考关于与特定用户的先前交互的存储数据。与外部服务1360的通信可(例如)经由网络1361而发生。在各种实施例中,外部服务1360包含与硬件装置本身有关或安装于其上的具有网络功能的服务和/或功能性。举例来说,在其中助理1002实施于智能电话或其它电子装置上的实施例中,助理1002可获得存储在日历应用程序(“app”)、联系人,和/或其它来源中的信息。在各种实施例中,助理1002可控制其上安装了助理1002的电子装置的许多特征和操作。举例来说,助理1002可呼叫外部服务1360,外部服务1360经由API或通过其它方法与装置上的功能性和应用程序介接,以执行原本可能使用装置上的常规用户接口起始的功能和操作。此些功能和操作可包含(例如)设定警报、作出电话呼叫、发送文本消息或电子邮件消息、添加日历事件等。可将此些功能和操作执行为用户与助理1002之间的对话对话的上下文中的附加功能。此些功能和操作可由用户在此对话的上下文中指定,或其可基于对话的上下文自动执行。所属领域的技术人员将认识到,助理1002可因而用作用于起始和控制电子装置上的各种操作的控制机制,其可用作例如按钮或图形用户接口等常规机构的替代方案。举例来说,用户可将输入提供给助理1002,例如“我需要在明天上午8点醒来”。一旦助理1002已使用本文所述的技术确定用户的意图,助理1002就可呼叫外部服务1340以与装置上的闹钟功能或应用程序介接。助理1002代表用户设定警报。以此方式,用户可使用助理1002作为用于设定警报或执行装置上的其它功能的常规机构的代替物。如果用户的请求是不明确的,或需要进一步澄清,那么助理1002可使用本文所述的各种技术(包含主动引出、释义、建议等)来获得所需的信息,使得正确的服务1340被呼叫,且采取既定动作。在一个实施例中,助理1002可在呼叫服务1340以执行功能之前提示用户进行确认。在一个实施例中,用户可选择性地停用助理1002的呼叫特定服务1340的能力,或可在需要时停用所有此类服务呼叫。本发明的系统可结合许多不同类型的客户端1304和操作模式而实施。现在参看图6,展示了说明若干不同类型的客户端1304和操作模式的系统架构的框图。所属领域的技术人员将认识到,图6中所示的各种类型的客户端1304和操作模式仅仅是示范性的,且本发明的系统可使用不同于所描绘的客户端和操作模式的客户端1304和/或操作模式来实施。另外,系统可单独或以任何组合包含此些客户端1304和/或操作模式中的任一者或全部。所描绘的实例包含 具有输入/输出装置和/或传感器的计算机装置1402。客户端组件可部署在任一此计算机装置1402上。可使用用于经由网络1361实现与服务器1340的通信的网络浏览器1304A或其它软件应用程序来实施至少一个实施例。输入和输出通道可为任何类型,包含(例如)视觉和/或听觉通道。举例来说,在一个实施例中,可使用基于话音的通信方法来实施本发明的系统,从而允许用于盲人的助理的实施例,盲人的网络浏览器的等效物是由语音驱动且使用语音进行输出。 具有I/O和传感器的移动装置1406,针对其,客户端可实施为移动装置上的应用程序1304B。这包含(但不限于)移动电话、智能电话、个人数字助理、平板装置、联网的游戏控制台等。
具有I/O和传感器的消费型电器1410,针对其,客户端可实施为电器上的嵌入式应用程序1304C。 具有仪表盘接口和传感器的汽车和其它交通工具1414,针对其,客户端可实施为嵌入式系统应用程序1304D。这包含(但不限于)汽车导航系统、话音控制系统、车内娱乐系统等。·例如驻留在网络上或与网络介接的路由器1418或任何其它装置等联网计算装置,针对其,客户端可实施为装置驻留应用程序1304E。·电子邮件客户端1424,针对其,助理的实施例经由电子邮件形态服务器1426而连接。电子邮件形态服务器1426充当通信桥梁,例如将来自用户的输入作为发送到助理的电子邮件消息,且将来自助理的输出发送给用户作为回复。·即时消息接发客户端1428,针对其,助理的实施例经由消息接发形态服务器1430而连接。消息接发形态服务器1430充当通信桥梁,将来自用户的输入作为发送到助理的消息,且将来自助理的输出发送给用户作为回复消息。·话音电话1432,针对其,助理的实施例经由因特网话音协议(VoIP)形态服务器1430而连接。VoIP形态服务器1430充当通信桥梁,将来自用户的输入作为向助理说出的话音,且将来自助理的输出发送给用户,例如作为回复的经合成语音。对于包含(但不限于)电子邮件、即时消息接发、讨论论坛、群组聊天会话、在线帮助或客户支持会话等消息接发平台,助理1002可充当谈话中的参与者。助理1002可监视谈话,并使用本文针对一对一交互所描述的一种或一种以上技术和方法来回复个人或群组。在各种实施例中,用于实施本发明的技术的功能性可分布于任何数目的客户端和/或服务器组件当中。举例来说,可实施各种软件模块以用于结合本发明执行各种功能,且此些模块可以各种方式实施以在服务器和/或客户端组件上运行。现在参看图7,展示客户端1304和服务器1340的实例,其彼此通信以根据一个实施例实施本发明。图7描绘一种可能的布置,通过所述布置,软件模块可分布在客户端1304与服务器1340之间。所属领域的技术人员将认识到,所描绘的布置仅仅为示范性的,且此些模块可以许多不同方式分布。另外,可提供任何数目的客户端1304和/或服务器1340,且所述模块可以多种不同方式中的任一者分布在这些客户端1304和/或服务器1340当中。在图7的实例中,输入引出功能性和输出处理功能性分布在客户端1304与服务器1340当中,其中输入引出的客户端部分1904a和输出处理的客户端部分1092a位于客户端1304处,且输入引出的服务器部分1094b和输出处理的服务器部分1092b位于服务器1340处。以下组件位于服务器1340处 整个词汇 1058b;·整个语言模式辨识器库1060b ;·短期个人存储器的主版本1052b ;·长期个人存储器的主版本1054b。在一个实施例中,客户端1304在本地维持这些组件的子集和/或部分,以改进响 应性并减少对网络通信的依赖。可根据众所周知的高速缓冲存储器管理技术来维持和更新此些子集和/或部分。此些子集和/或部分包含,例如·词汇子集 1058a ;·语言模式辨识器库的子集1060a ;·短期个人存储器的高速缓冲存储器1052a ;·长期个人存储器的高速缓冲存储器1054a。可将额外组件实施为服务器1340的部分,包含(例如): 语言解译器1070; 对话流处理器1080 ; 输出处理器1090; 域实体数据库1072; 任务流模型1086; 服务编排1082 ; 服务能力模型1088。下文将更详细地描述这些组件中的每一者。服务器1340通过在需要时与外部服务1360介接来获得额外信息。概念架构现在参看图1,展示智能自动化助理1002的特定实例实施例的简化框图。如本文更详细地描述,智能自动化助理系统的不同实施例可经配置、设计且/或可操作以提供大体上与智能自动化助理技术有关的各种不同类型的操作、功能性和/或特征。另外,如本文中更详细地描述,本文所揭示的智能自动化助理系统的各种操作、功能性和/或特征中的许多者可提供可实现或提供不同类型的优点和/或益处给与智能自动化助理系统交互的不同实体。图I中所示的实施例可使用上文所述的硬件架构中的任一者或使用不同类型的硬件架构来实施。举例来说,根据不同实施例,至少一些智能自动化助理系统可经配置、设计和/或可操作以提供各种不同类型的操作、功能性和/或特征,例如以下各者中的一者或一者以上(或其组合)·使经由因特网可用的数据和服务的应用自动化,以发现、寻找、挑选、购买、预订、订购产品和服务。除了使使用这些数据和服务的过程自动化之外,智能自动化助理1002还可同时实现数据和服务的若干来源的组合使用。举例来说,智能自动化助理1002可组合关于来自若干评论点的产品的信息,检查来自多个经销商的价格和可用性,且检查其位置和时间约束,且帮助用户找出对其问题的个人化解决方案。·使经由因特网可用的数据和服务的使用自动化,以发现、调查、选择、预订和以其它方式得知代办事项(包含(但不限于)电影、事件、表演、展览、放映和吸引人的事物);要去的地方(包含(但不限于)旅行目的地、旅馆和其它停留地方、地标和其它景点等);吃喝的地方(例如餐馆和酒吧),见面时间和地点,以及可在因特网上找到的娱乐或社会交互的任何其它来源。·经由原本由具有图形用户接口的专 用应用程序提供的自然语言对话实现应用程序和服务的操作,所述图形用户接口包含搜索(包含基于位置的搜索);导航(地图和方向);数据库查找(例如通过姓名或其它特性来查找商店或人);获得天气情况和预报,检查市场物品的价格或金融交易的状态;监视交通或航班状态;存取和更新日历和日程表;管理提醒、警报、任务和计划;经由电子邮件或其它消息接发平台进行通信;以及本地或远程操作装置(例如,拨打电话,控制光和温度,控制家用安全装置,播放音乐或视频等)。在一个实施例中,助理1002可用以起始、操作和控制装置上可用的许多功能和应用程序。·提供对活动、产品、服务、娱乐来源、时间管理的个人推荐,或任何其它种类的推荐服务,其受益于自然语言的交互式对话以及对数据和服务的自动化存取。根据不同实施例,可在一个或一个以上客户端系统处、在一个或一个以上服务器系统处,和/或在其组合处实施由智能自动化助理1002提供的各种类型的功能、操作、动作和/或其它特征的至少一部分。根据不同实施例,由助理1002提供的各种类型的功能、操作、动作和/或其它特征的至少一部分可由自动化呼叫和响应程序的至少一个实施例实施,例如相对于图33所说明和描述的程序。另外,本文描述的助理1002的各种实施例可包含或提供优于当前存在的智能自动化助理技术的许多不同优点和/或益处,所述技术例如为以下各项中的一者或一者以上(或其组合)·语音-文本和自然语言理解技术的整合,其由域、任务、服务和对话的一组显式模型约束。不同于尝试实施通用人工智能系统的助理技术,本文所述的实施例可应用多个约束源来减少对较易驾驭大小的解决方案的数目。这导致较少的对语言的模糊解释、较少的相关域或任务,以及较少的使服务中的意图操作化的方式。对特定域、任务和对话的关注也使得实现对具有人类管理的词汇的域和任务的覆盖以及从意图到服务参数的映射是可行的。·通过使用API经由因特网代表其而调用服务来解决用户问题的能力。不同于仅返回链接和内容的搜索引擎,本文所述的自动化助理1002的实施例可使研究和问题解决活动自动化。针对给定请求而调用多个服务的能力还向用户提供比通过访问单个站点(例如)以产生产品或服务或寻找要做的事情而实现的功能性更广的功能性。·在用户请求的解译和执行中应用个人信息和个人交互历史。不同于常规搜索引擎或问题回答服务,本文所描述的实施例使用来自个人交互历史(例如,对话历史、来自结果的先前选择等)的信息、个人物理环境(例如,用户的位置和时间),以及在交互的上下文中搜集的个人信息(例如,姓名、电子邮件地址、物理地址、电话号码、账户号、偏好等)。使用这些信息源实现(例如),O对用户输入的更佳解译(例如,当解译语言时使用个人历史和物理环境);O更个人化的结果(例如,其偏向偏好或最近选择);O为用户改善的效率(例如,通过使涉及向服务签约或填写表格的步骤自动化)。 将对话历史用于解译用户输入的自然语言。因为所述实施例可保持个人历史,且应用对用户输入的自然语言理解,所以所述实施例还可使用对话上下文(例如当前位置、时间、域、任务步骤和任务参数来解译新输入。常规的搜索引擎和命令处理器独立于对话历史而解译至少一个查询。使用对话历史的能力可使更自然的交互成为可能,其类似于正常的人类谈话。
·主动输入引出,其中助理1002基于用以解译其输入的相同模型和信息,主动引导和约束来自用户的输入。举例来说,助理1002可应用对话模型来建议与用户的对话中的接下来的步骤,其中所述步骤正细化请求;基于域和上下文特定可能性提供对部分键入的输入的完成;或使用语义解译来从语音为文本或文本为意图的模糊解译进行选择。 服务的显式建模和动态管理,其具有动态或稳健的服务编排。所述实施例的架构使助理1002能够与许多外部服务介接,动态地确定哪些服务可为特定用户请求提供信息,将用户请求的参数映射到不同服务API,一次呼叫多个服务,整合来自多个服务的结果,平稳地对失败的服务进行故障处理,和/或随着其API和能力演化而高效地维持服务的实施。·将主动本体用作用于构造助理1002的方法和设备,其简化自动化助理系统的软件工程设计和数据维护。主动本体是用于助理的对数据建模与执行环境的整合。其提供将各种模型和数据源(域概念、任务流、词汇、语言模式辨识器、对话上下文、用户个人信息,以及从域和任务请求到外部服务的映射)系在一起的框架。本文描述的主动本体和其它架构创新使得在域内构造深度功能性为实用的,从而统一多个信息和服务源,且在一组域上进行此活动。在至少一个实施例中,智能自动化助理1002可操作以在执行特定任务和/或操作时,利用和/或产生各种不同类型的数据和/或其它类型的信息。这可包含(例如)输入数据/信息和/或输出数据/信息。举例来说,在至少一个实施例中,智能自动化助理1002可操作以存取、处理和/或以其它方式利用来自一种或一种以上不同类型的来源(例如,一个或一个以上本地和/或远程存储器、装置和/或系统)的信息。另外,在至少一个实施例中,智能自动化助理1002可操作以产生一种或一种以上不同类型的输出数据/信息,所述输出数据/信息(例如)可存储在一个或一个以上本地和/或远程装置和/或系统的存储器中。可由智能自动化助理1002存取和/或利用的不同类型的输入数据/信息的实例可包含(但不限于)以下各者中的一者或一者以上(或其组合) 来自移动装置的话音输入,所述移动装置例如为移动电话和平板计算机、具有麦克风的计算机、蓝牙手持机、汽车话音控制系统,经由电话系统、回答服务上的纪录、整合的消息接发服务上的音频话音邮件、具有例如时钟无线电等话音输入的消费型应用、电话台、家用娱乐控制系统,以及游戏控制台。 来自计算机或移动装置上的键盘、遥控器或其它消费型电子装置上的小键盘的文本输入;发送到助理的电子邮件消息;发送到助理的即时消息或类似的短消息;从多用户游戏环境中的玩家接收到的文本,以及在消息馈送中流式传输的文本。 来自传感器或基于位置的系统的位置信息。实例包含移动电话上的全球定位系统(GPS)和辅助式GPS(A-GPS)。在一个实施例中,位置信息与显式用户输入组合。在一个实施例中,本发明的系统能够基于已知地址信息和当前位置确定来检测用户何时在家。以此方式,可关于用户在家时可能感兴趣的与在家外相对的信息类型以及应取决于用户是否在家而代表用户调用的服务和动作的类型作出某些推断。 来自客户端装置上的时钟的时间信息。这可包含(例如)来自电话或其它客户端装置的指示本地时间和时区的时间。另外,时间可用于用户请求的上下文中(例如)以解译例如“在一小时内”和“今晚”等短语。·罗盘、加速计、陀螺仪和/或行进速度数据,以及来自移动或手持式装置或例如 汽车控制系统等嵌入式系统的其它传感器数据。这还可包含来自电器的遥控器和游戏控制台的装置定位数据。 来自具有图形用户接口(GUI)的任何装置上的GUI的点击和菜单选择和其它事件。进一步实例包含对触摸屏的触摸。 来自传感器和其它数据驱动触发器(例如,闹钟、日历警告、价格改变触发器、位置触发器、从服务器到装置上的推送通知等)的事件。对本文所述的实施例的输入还包含用户交互历史(包含对话和请求历史)的上下文。可由智能自动化助理1002产生的不同类型的输出数据/信息的实例可包含(但不限于)以下各者中的一者或一者以上(或其组合)·直接发送到输出装置和/或发送到装置的用户接口的文本输出·经由电子邮件发送给用户的文本和图形·经由消息接发服务发送给用户的文本和图形 语音输出,可包含以下各者中的一者或一者以上(或其组合)ο经合成的语音ο经取样的语音ο经纪录的消息·具有照片、丰富文本、视频、声音和超链接的信息的图形布局。举例来说,在网络浏览器中再现的内容。·用以控制装置上的物理动作的致动器输出,例如致使装置接通或断开、发出声音、改变色彩、振动、控制光,等等。·调用装置上的其它应用程序,例如呼叫映射应用程序;话音拨打电话;发送电子邮件或即时消息;播放媒体;在日历、任务管理器和便笺应用程序以及其它应用程序中制作条目。 用以控制对由装置附着或控制的装置的物理动作的致动器输出,所述物理动作例如为操作远程相机、控制轮椅、在远程扬声器上播放音乐、在远程显示器上播放视频,等
坐寸ο可了解,图I的智能自动化助理1002只是来自可实施的较广范围的智能自动化助理系统实施例的一个实例。智能自动化助理系统(未图示)的其它实施例可包含与(例如)在图I的实例智能自动化助理系统实施例中所说明的组件/特征相比是额外的、更少的和/或不同的组件/特征。用户交互现在参看图2,展示用户与智能自动化助理1002的至少一个实施例之间的交互的实例。图2的实例假定用户正使用输入装置1206向智能自动化助理1002说话,输入装置1206可为语音输入机构,且输出为到输出装置1207的图形布局,输出装置1207可为可滚动屏幕。谈话屏幕IOlA的特征为谈话用户接口 ,其展示用户所说的话IOlB (“我想去我办公室附近吃意大利餐的浪漫地方”)和助理1002的响应,所述响应为发现结果的概述101C( “好的,我找到这些意大利餐馆,评论说这些餐馆气氛浪漫,且靠近您工作的地方”)以及一组结果IOlD (展示餐馆列表中的前三者)。在此实例中,用户在列表中的第一结果上点击,且所述结果自动打开以显现显示于信息屏幕IOlE中的关于所述餐馆的更多信息。信息屏幕IOlE和谈话屏幕IOlA可出现在同一输出装置(例如触摸屏或其它显示装置)上;图2中所描绘的实例为同一输出装置的两种不同输出状态。在一个实施例中,信息屏幕IOlE展示从多个服务搜集并组合的信息,包含(例如)以下各者中的任一者或全部 商店的地址和地理位置;·距用户的当前位置的距离; 来自多个来源的评论;在一个实施例中,信息屏幕IOlE还包含助理1002可能代表用户提供的服务的一些实例,包含·拨打电话以呼叫商店(“呼叫”);·记住此餐馆以供将来参考(“保存”);·将具有关于此餐馆的方向和信息的电子邮件发送给某人(“共享”);·在地图上展示此餐馆的位置和到此餐馆的方向(“在地图上显示它”);·保存关于此餐馆的个人便笺(“我的便笺”)。如图2的实例中所示,在一个实施例中,助理1002包含超过简单数据库应用程序的智能,例如,·处理自然语言IOlB中的意图陈述,不仅仅是关键字;·从所述语言输入推断语义意图,例如将“吃意大利餐的地方”解译为“意大利餐馆”;·将语义意图操作化为使用在线服务的策略,并代表用户执行所述策略(例如,将对浪漫地方的希望操作化为检查在线评论点以寻找将一个地方描述为“浪漫”的评论的策略)。智能自动化助理组件根据各种实施例,智能自动化助理1002可包含多种不同类型的组件、装置、模块、过程、系统等,其(例如)可经由使用硬件和/或硬件与软件的组合来实施和/或例示。举例来说,如图I的实例实施例中所说明,助理1002可包含以下类型的系统、组件、装置、过程等(或其组合)中的一者或一者以上
· 一个或一个以上主动本体1050 ;·主动输入引出组件1094(可包含客户端部分1094a和服务器部分1094b);·短期个人存储器组件1052 (可包含主版本1052b和高速缓冲存储器1052a);·长期个人存储器组件1054(可包含主版本1052b和高速缓冲存储器1052a); 域模型组件1056;·词汇组件1058 (可包含整个词汇1058b和子集1058a);·语言模式辨识器组件1060 (可包含完整库1060b和子集1560a); 语言解译器组件1070 ;
·域实体数据库1072 ; 对话流处理器组件1080 ;·服务编排组件1082 ;·服务组件1084 ;·任务流模型组件1086 ;·对话流模型组件1087 ;·服务模型组件1088 ;·输出处理器组件1090。如结合图7所述,在某些基于客户端/服务器的实施例中,这些组件中的一些或全部可分布在客户端1304与服务器1340之间。出于说明的目的,现在将参考图I的实例智能自动化助理1002实施例更详细地描述智能自动化助理1002的特定实例实施例的不同类型的组件的至少一部分。主动本体ΙΟδΟ主动本体1050充当统一架构,其整合来自智能自动化助理1002的实施例的其它部分的模型、组件和/或数据。在计算机和信息科学领域中,本体提供用于数据和知识表示的结构,例如类/类型、关系、属性/特性,以及其在例子中的例示。本体例如用以建立数据和知识的模型。在智能自动化系统1002的一些实施例中,本体是在其中构造例如域模型等模型的建模框架的部分。在本发明的上下文内,“主动本体” 1050还可充当执行环境,其中不同处理元素以类似本体的方式布置(例如,具有与其它处理元素不同的属性和关系)。这些处理元素执行智能自动化助理1002的任务中的至少一些任务。可提供任何数目的主动本体1050。在至少一个实施例中,主动本体1050可为可操作的,以执行和/或实施各种类型的功能、操作、动作和/或其它特征,例如以下各者中的一者或一者以上(或其组合)·充当建模和开发环境,其整合来自各种模型和数据组件的模型和数据,包含(但不限于)ο 域模型 1056ο 词汇 1058ο域实体数据库1072ο任务流模型1086ο对话流模型1087ο服务能力模型1088
·充当数据建模环境,基于本体的编辑工具可在其上操作以开发新的模型、数据结构、数据库基模以及表示。 充当实况执行环境,其例示域1056、任务1086和/或对话模型1087、语言模式辨识器和/或词汇1058的元素的值,以及例如在短期个人存储器1052、长期个人存储器1054和/或服务编排1182的结果中找到的用户特定信息。举例来说,主动本体的一些节点可对应于域概念(例如餐馆)以及其特性(餐馆名称)。在实况执行期间,这些主动本体节点可用特定餐馆实体的身份及其名称以及其名称如何对应于自然语言输入表达中的字来例示。因此,在此实施例中,主动本体正用作指定餐馆为具有身份(其具有名称)的实体的概念的建模环境,且用于存储那些建模节点与来自实体数据库的数据以及自然语言的解析的动态绑定。·实现智能自动化助理的组件和处理元件之间的通信和协调,所述组件和处理元件例如为以下各者中的一者或一者以上(或其组合)
ο主动输入引出组件1094ο语言解译器组件1070ο对话流处理器组件1080ο服务编排组件1082ο服务组件1084在一个实施例中,本文描述的主动本体1050的功能、操作、动作和/或其它特征的至少一部分可至少部分地使用2006年9月8日申请的第11/518,292号美国专利申请案“用于构造智能自动化助理的方法和设备(Method and Apparatus for Building anIntelligentAutomated Assistant) ”中描述的各种方法和设备来实施。在至少一个实施例中,主动本体1050的给定例子可从一个或一个以上相关联的数据库存取和/或利用信息。在至少一个实施例中,可经由与一个或一个以上本地和/或远程存储器装置的通信来存取数据库信息的至少一部分。可由主动本体1050存取的不同类型的数据的实例可包含(但不限于)以下各者中的一者或一者以上(或其组合)·静态数据,其可从智能自动化助理1002的一个或一个以上组件获得; 在每个用户会话动态例示的数据,例如(但不限于)维持在智能自动化助理1002的组件之间交换的用户特定输入和输出的状态,短期个人存储器的内容,从用户会话的先前状态作出的推断,等等。以此方式,主动本体1050用以统一智能自动化助理1002中的各种组件的元素。主动本体1050允许作者、设计者或系统构造者整合组件,使得用其它组件的元素来识别一个组件的元素。作者、设计者或系统构造者可因此较容易地组合和整合组件。现在参看图8,展示根据一个实施例的主动本体1050的片段的实例。此实例意在帮助说明可由主动本体1050提供的各种类型的功能、操作、动作和/或其它特征中的一些。图8中的主动本体1050包含餐馆和用餐事件的表示。在此实例中,餐馆是具有例如其名称1612、所提供菜系1615以及其位置1613等特性的概念1610,其又可建模为具有街道地址1614的特性的结构化节点。用餐事件的概念可建模为节点1616,节点1616包含聚餐1617(其具有规模1619)和时间周期1618。·主动本体可包含和/或作出对域模型1056的参考。举例来说,图8描绘链接到餐馆概念1610和用餐事件概念1616的外出就餐域模型1622。在此例子中,主动本体1050包含外出就餐域模型1622 ;具体地说,主动本体1050的至少两个节点(即餐馆1610和用餐事件1616)也包含在外出就餐域模型1622中且/或由外出就餐域模型1622参考。此域模型尤其表示外出就餐涉及发生在餐馆的用餐事件的理念。主动本体节点餐馆1610和用餐事件1616也由智能自动化助理(由图8中的虚线展示)的其它组件包含和/或参考。·主动本体可包含和/或参考任务流模型1086。举例来说,图8描绘事件规划任务流模型1630,其独立于应用于域特定种类的事件用餐事件1616的域而对事件的规划进行建模。此处,主动本体1050包含一般事件规划任务流模型1630,一般事件规划任务流模型1630包括表示事件以及对其进行规划时所涉及的其它概念的节点。主动本体1050还包含节点用餐事件1616,其为特定种类的事件。在此实例中,用餐事件1616由域模型1622和任务流模型1630包含或参考,且这些模型两者均包含在主动本体1050中且/或由主动本体1050参考。并且,用餐事件1616为主动本体可如何统一由图8中的虚线所示的智能自动化助理的其它组件包含且/或参考的各种组件的元件的实例。
·主动本体可包含且/或参考对话流模型1087。举例来说,图8描绘对话流模型1642,其用于获得在如概念1619中所表示的约束聚会规模上所例示的交易所需的约束的值。并且,主动本体1050提供用于关联和统一例如对话流模型1087等各种组件的框架。在此情况下,对话流模型1642具有在此特定实例中例示的对主动本体节点聚会规模1619的约束的一般概念。此特定对话流模型1642独立于域而以约束的抽象物操作。主动本体1050表示聚会节点1617的聚会规模特性1619,其与用餐事件节点1616有关。在此实施例中,智能自动化助理1002使用主动本体1050来统一对话流模型1642中的约束概念与聚会规模1619的特性,以作为表示用餐事件概念1616的节点群集的一部分,用餐事件概念1616为域模型1622的用于外出就餐的部分。·主动本体可包含且/或参考服务模型1088。举例来说,图8描绘餐馆预订服务1672的模型,所述模型与用于获得所述服务执行交易所需的值的对话流步骤相关联。在此例子中,用于餐馆预订服务的服务模型1672指定预订需要聚会规模1619的值(坐在预订桌子旁的人数)。概念聚会规模1619 (其为主动本体1050的一部分)还链接到一般对话流模型1642或与一般对话流模型1642有关,用于询问用户关于对交易的约束;在此例子中,聚会规模是对话流模型1642所需的约束。 主动本体可包含且/或参考域实体数据库1072。举例来说,图8描绘与主动本体1050中的餐馆节点1610相关联的餐馆的域实体数据库1652。主动本体1050表示餐馆的一般概念1610,其可由智能自动化助理1002的各种组件使用,且其由关于餐馆数据库1652中的特定餐馆的数据例示。·主动本体可包含且/或参考词汇数据库1058。举例来说,图8描绘菜系词汇数据库1662,例如意大利、法国等,以及与每一菜系相关联的字,例如“法国”、“欧洲”、“省”等。主动本体1050包含餐馆节点1610,其与所提供菜系节点1615有关,所提供菜系节点1615与菜系数据库1662中的菜系的表示相关联。数据库1662中用于一菜系的特定条目(例如“法国”)因此通过主动本体1050作为所提供菜系1615的概念的例子而相关。 主动本体可包含且/或参考可映射到本体1050中的概念或其它表示的任何数据库。域实体数据库1072和词汇数据库1058仅为主动本体1050可如何将数据库彼此整合且与自动化助理1002的其它组件整合的两个实例。主动本体允许作者、设计者或系统构造者指定数据库中的表示与本体1050中的表示之间的非平凡映射。举例来说,用于餐馆数据库1652的数据库模式可将餐馆表示为字符串和数字的表,或表示为从较大的商店数据库的投射,或适合于数据库1652的任何其它表示。在此实例主动本体1050中,餐馆1610为具有以与数据库表不同的方式组织的特性和关系的概念节点。在此实例中,本体1050的节点与数据库基模的元素相关联。数据库与本体1050的整合提供用于依据主动本体1050中的模型和数据的较大集合而解译数据库中的特定数据条目且对其作用的统一表示。举例来说,字“法国”可为菜系数据库1662中的条目。因为在此实例中,数据库1662整合在主动本体1050中,相同的字“法国”也具有作为在餐馆处提供的可能菜系的解译,其在规划用餐事件中涉及,且此菜系充当在使用餐馆预订服务等时使用的约束。主动本体可因此将数据库整合到建模和执行环境中,以与自动化助理1002的其它组件互操作。如上文所述,主动本体1050允许作者、设计者或系统构造者整合组件;因此,在图8的实例中,组件的元素(例如对话流模型1642中的约束)可用其它组件的元素(例如餐馆预订服务1672的所需参数)识别。
主动本体1050可体现为(例如)模型、数据库和组件的配置,其中模型、数据库和组件间的关系为以下各者中的任一者·容器和/或包含;·具有链接和/或指针的关系;·经由API的接口,两者均在程序内部和程序之间。举例来说,现在参看图9,展示智能自动化助理系统1002的替代实施例的实例,其中域模型1056、词汇1058、语言模式辨识器1060、短期个人存储器1052以及长期个人存储器1054的组件在与主动本体1050相关联的共用容器下组织,且例如主动输入引出组件1094、语言解译器1070以及对话流处理器1080等其它组件经由API关系与主动本体1050
相关联。主动输入引出组件1094在至少一个实施例中,主动输入引出组件1094(如上文所述,其可实施于独立配置中或包含服务器和客户端组件两者的配置中)可为可操作的,以执行且/或实施各种类型的功能、操作、动作和/或其它特征,例如以下各者中的一者或一者以上(或其组合)
引出、促进和/或处理来自用户或用户的环境的输入,和/或关于用户的需要或请求的信息。举例来说,如果用户正希望找到餐馆,那么输入引出模块可获得关于用户对位置、事件、菜系、价格等的约束或偏好的信息。 促进来自各种来源的不同种类的输入,例如以下各者中的一者或一者以上(或其组合)ο来自产生文本的键盘或任何其它输入装置的输入ο来自提供对部分输入的动态所建议完成的用户接口中的键盘的输入ο来自话音或语音输入系统的输入ο来自图形用户接口(GUI)的输入,其中用户点击、选择或以其它方式直接操纵图形对象以指示选择O来自产生文本并将其发送到自动化助理的其它应用程序的输入,所述其它应用程序包含电子邮件、文本消息接发,或其它文本通信平台通过执行主动输入引出,助理1002能够在输入处理的早期阶段消除意图的歧义。举例来说,在其中输入由语音提供的实施例中,可将波形发送到服务器1340,可在服务器1340处提取字,且执行语义解译。可接着使用此语义解译的结果来驱动主动输入引出,其可向用户提供替代候选字,以基于其语义配合程度以及发音匹配而挑选。在至少一个实施例中,主动输入引出组件1094主动、自动且动态地将用户引导向可由助理1002的实施例所提供的服务中的一者或一者以上作用的输入。现在参看图10,展示了描绘根据一个实施例的用于主动输入引出组件1094的操作方法的流程图。程序开始20。在步骤21中,助理1002可提供一个或一个以上输入通道上的接口。举例来说,用户接口可提供用户选项,以说出或键入或点按谈话交互的任何阶段。在步骤22中,用户通过在一个形态上起始输入(例如按压按钮以开始纪录语音或引出接口以用于键 入)来选择输入通道。在至少一个实施例中,助理1002提供对选定形态的默认建议23。也就是说,助理1002提供选项24,选项24在用户在所述形态上输入任何输入之前在当前上下文中相关。举例来说,在文本输入形态中,助理1002可提供将开始文本请求或命令的常见字列表,例如以下各者中的一者或一者以上(或其组合)命令式动词(例如,寻找、购买、预订、获得、呼口q、检查、调度等)、名词(例如,餐馆、电影、事件、商店等),或对谈论域命名的类似菜单的选项(例如,天气、体育、新闻等)。如果用户在25中选择默认选项中的一者,且对自动提交30的偏好被设定,那么程序可立即返回。这类似于常规菜单选择的操作。然而,可将初始选项视为部分输入,或用户可能已开始输入部分输入26。在输入的任何点处,在至少一个实施例中,用户可选择指示部分输入完成22,这致使程序返回。在28中,将最新输入(不管是被选择还是被输入的)与累积输入相加。在29中,在给定当前输入以及对什么构成相关和/或有意义的输入的约束的其它来源的情况下,系统建议接下来可能的相关输入。在至少一个实施例中,对用户输入的约束的来源(例如,其用于步骤23和29中)为可包含于助理1002中的各种模型和数据源中的一者或一者以上,其可包含(但不限于)以下各者中的一者或一者以上(或其组合) 词汇1058。举例来说,可建议与当前输入匹配的字或短语。在至少一个实施例中,词汇可与主动本体、域模型、任务模型、对话模型和/或服务模型中的任一节点或一个或一个以上节点相关联。 域模型1056,其可约束可例示或以其它方式与域模型一致的输入。举例来说,在至少一个实施例中,域模型1056可用以建议将与当前输入一致的概念、关系、特性和/或例子。·语言模式辨识器1060,其可用以辨识当前输入中的惯用语、短语、语法构造或其它模式,且用以建议填充所述模式的完成。 域实体数据库1072,其可用以建议与输入匹配的域中的可能实体(例如,商店名称、电影名称、事件名称等)。 短期存储器1052,其可用以匹配任何先前输入或先前输入的部分,和/或关于与用户交互的历史的任何其它特性或详情。举例来说,可将部分输入与用户在会话中已遇到的城市匹配,不管是假想地(例如,在查询中提到)且/或实际的(例如,如从位置传感器确定)。·在至少一个实施例中,可使最近输入、请求或结果的语义释义与当前输入匹配。举例来说,如果用户先前已请求“实况音乐”且获得音乐会列表,且接着将“音乐”键入主动输入引出环境中,那么建议可包含“实况音乐”和/或“音乐会”。·长期个人存储器1054,其可用以建议匹配来自长期存储器的项目。此些匹配项目可包含(例如)以下各者中的一者或一者以上或任一组合被保存的域实体(例如,“喜爱的”餐馆、电影、剧院、比赛地点等)、待办事项项目、列表项目、日历条目、联系人/地址簿中的人名、联系人/地址簿中所提到的街道或城市名,等等。·任务流模型1086,其可用以基于任务流中的接下来的可能步骤而建议输入。 ·对话流模型1087,其可用以基于对话流中的接下来可能步骤而建议输入。·服务能力模型1088,其可用以通过模型中的名称、类别、能力或任何其它特性来建议要使用的可能服务。举例来说,用户可键入优选的评论点的名称的部分,且助理1002可建议用于查询所述评论点以进行评论的完整命令。在至少一个实施例中,主动输入引出组件1094向用户呈现谈话接口,例如其中用户和助理通过使言论以谈话方式来回而通信的接口。主动输入引出组件1094可为可操作的,以执行且/或实施各种类型的谈话接口。在至少一个实施例中,主动输入引出组件1094可为可操作的,以执行且/或实施各种类型的谈话接口,其中助理1002使用谈话层级来根据对话模型提示来自用户的信息。对话模型可表示用于执行对话的程序,例如引出执行服务所需的信息所需的一系列步骤。在至少一个实施例中,在用户正在键入、讲话或以其它方式创建输入中的同时,主动输入引出组件1094实时地向用户提供约束和向导。举例来说,主动引出可引导用户键入文本输入,所述文本输入可由助理1002的实施例辨识,且/或可由助理1002的实施例所提供的一个或一个以上服务来服务。这是优于被动等待来自用户的未受约束输入的优点,因为其使用户的努力能够集中在可有用或可能有用的输入上,且/或其使助理1002的实施例能够在用户正输入输入时,实时地应用其对所述输入的解译。本文描述的主动输入引出的功能、操作、动作和/或其它特征的至少一部分可至少部分地使用2006年9月8日申请的第11/518,292号美国专利申请案“用于构造智能自动化助理的方法和设备(Method and Apparatus for Building an Intelligent AutomatedAssistant) ”中描述的各种方法和设备来实施。根据特定实施例,主动输入引出组件1094的多个例子或线程可经由使用一个或一个以上处理器63和/或硬件和/或硬件与软件的其它组合而同时实施且/或起始。根据不同实施例,主动输入引出组件1094的一个或一个以上不同线程或例子可响应于检测到满足用于触发主动输入引出组件1094的至少一个例子的起始的一个或一个以上不同类型的最小阈值准则的一个或一个以上条件或事件而起始。可触发主动输入引出组件1094的一个或一个以上不同线程或例子的起始和/或实施的条件或事件的各种实例可包含(但不限于)以下各者中的一者或一者以上(或其组合)·用户会话的开始。举例来说,当用户会话启动作为助理1002的实施例的应用程序时,接口可例如通过按压按钮以起始语音输入系统或在文本字段上点击以起始文本输入会话而为用户提供起始输入的机会。 检测到的用户输入。·当助理1002明确地提示用户进行输入时,如当其请求对问题的响应或提供从中进行选择的接下来步骤的菜单时。·当助理1002正帮助用户执行交易,且正搜集用于所述交易的数据(例如填写表格)时。在至少一个实施例中,主动输入引出组件1094的给定例子可从一个或一个以上相关联数据库存取和/或利用信息。在至少一个实施例中,可经由与一个或一个以上本地和/或远程存储器装置的通信来存取数据库信息的至少一部分。可由主动输入引出组件1094存取的不同类型的数据的实例可包含(但不限于)以下各者中的一者或一者以上(或其组合) ·将在文本输入中使用的可能的字的数据库;·将在文本输入言论中使用的可能的短语的语法;·语音输入的可能解译的数据库; 来自用户或来自其它用户的先前输入的数据库; 来自可为助理1002的实施例的部分的各种模型和数据源中的任一者的数据,其可包含(但不限于)以下各者中的一者或一者以上(或其组合)·域模型 1056 ;·词汇 1058 ;·语言模式辨识器1060 ;·域实体数据库1072 ;·短期存储器1052 ;·长期个人存储器1054 ;·任务流模型1086 ;·对话流模型1087 ; 服务能力模型1088。根据不同实施例,主动输入引出组件1094可将主动引出程序应用于(例如)以下各者中的一者或一者以上(或其组合)·所键入输入;·语音输入; 来自图形用户接口(⑶I)的输入,包含手势;·来自对话中提供的建议的输入;以及·来自计算和/或感测到的环境的事件。主动所键入输入引出现在参看图11,展示了描绘根据一个实施例的用于主动所键入输入弓I出的方法的流程图。所述方法开始110。助理1002例如经由输入装置1206接收111部分文本输入。部分文本输入可包含(例如)在文本输入字段中到现在为止已键入的字符。在任何时间,用户可例如通过按压回车键来指示所接入输入完成112。如果未完成,那么建议产生器产生114候选建议116。这些建议可为基于本文所述的信息或约束来源中的任一者的句法、语义和/或其它种类的建议。如果选择118所述建议,那么将所述输入转变117为包含选定建议。在至少一个实施例中,所述建议可包含对当前输入的扩展。举例来说,对“rest”的建议可为“restaurants”。在至少一个实施例中,所述建议可包含对当前输入的部分的替代。举例来说,对“rest”的建议可为“吃饭的地方”。在至少一个实施例中,所述建议可包含替代和释义当前输入的部分。举例来说,如果当前输入为“寻找有风格的餐馆”,那么建议可为“意大利”,且当所述建议被选择时,整个输入可重写为“寻找意大利餐馆”。
在至少一个实施例中,对返回的所得输入作注解119,使得关于在118中作出的选择的信息连同文本输入一起保存。这使得(例如)字符串潜在的语义概念或实体在返回时能够与所述字符串相关联,这提高了后续语言解译的准确性。现在参看图12到21,展示了说明根据一个实施例的用于主动所键入输入引出的程序中的一些程序的一些部分的屏幕截图。屏幕截图描绘如在例如可从例如加利福尼亚州库珀蒂诺市的苹果公司购得的iPhone等智能电话上实施的助理1002的实施例的实例。经由触摸屏(包含屏幕上键盘功能性)向此装置提供输入。所属领域的技术人员将认识到,屏幕截图描绘仅为示范性的实施例,且本发明的技术可实施于其它装置上,且使用其它布局和布置。在图12中,屏幕1201包含当字段1203中尚未提供输入时展示的建议1202的高级集合。这对应于应用于图11的步骤114的图10的无输入步骤23,其中不存在输入。在图13中,屏幕1301描绘词汇的使用的实例,以提供对使用屏幕上键盘1304在字段1203中输入的部分用户输入1305的所建议完成1303。这些所建议完成1303可为主动输入引出1094的功能的部分。用户已输入部分用户输入1305,包含字符串“comm”。词汇组件1058已提供此字符串到三种不同种类的例子(其列举为所建议完成1303)的映射短语“社区和本地事件”为事件域的类别;“商会”为本地商店搜索域的类别,且“犹太社区中心”为本地商店的例子的名称。词汇组件1058可提供对与这些类似的名称空间的数据查找和管理。用户可点按Go按钮1306,以指示他或她已完成输入输入;这致使助理1002以完成的文本字符串作为用户输入的单元继续下去。在图14中,屏幕1401描绘一实例,其中用于部分字符串“wh” 1305的所建议语义完成1303包含具有所键入参数的完整短语。可通过使用本文所述的输入约束的各种模型和来源中的一者或一者以上来实现这些种类的建议。举例来说,在图14中所示的一个实施例中,“市里正发生什么”是本地事件域的位置参数的主动引出;“商店名称在哪”是本地商店搜索域的商店名称约束的主动引出;“比赛地点名称处正展示的是什么”是本地事件域的比赛地点名称约束的主动引出;且“电影院正在播放什么”是本地事件域的电影院名称约束的主动引出。这些实例说明所建议的完成是由模型产生,而不是简单地从先前输入的查询的数据库抽取。在图15中,屏幕1501描绘在用户已在字段1203中输入额外文本1305之后的同一实例的接续部分。更新所建议完成1303以与额外文本1305匹配。在此实例中,使用来自域实体数据库1072的数据名称以“f”开头的比赛地点。注意,这是显著比以“f”开头的所有字小且语义上更相关的建议集合。并且,通过应用模型(在此情况下为将本地事件表示为在比赛地点发生的域模型)来产生建议,其为具有名称的商店。建议主动地引出输入,其将在使用本地事件服务时潜在地形成有意义的条目。在图16中,屏幕1601描绘在用户已选择所建议完成1303中的一者之后的同一实例的接续部分。主动引出通过提示用户进一步指定所要信息的类型,此处通过用户可从中进行选择的许多分类符1602而继续。在此实例中,这些分类符由域、任务流和对话流模型产生。所述域为本地事件,其包含在位置中在若干日期发生的事件的类别,且具有事件名称和特征执行者。在此实施例中,将这五个选项提供给用户的事实是从以下两者产生指示应询问用户他们尚未输入的约束的对话流模型以及指示这五个约束为助理可用的本地事件服务的参数的服务模型。甚至对优选短语将用作分类符(例如“按类别”和“特征化”)的选择是从域词汇数据库产生。 在图17中,屏幕1701描绘在用户已选择分类符1602中的一者之后的同一实例的接续部分。在图18中,屏幕1801描绘同一实例的接续部分,其中已将选定分类符1602添加到字段1203,且呈现额外分类符1602。用户可选择分类符1602中的一者,且/或经由键盘1304提供额外的文本输入。在图19中,屏幕1901描绘同一实例的接续部分,其中已将选定分类符1602添加到字段1203,且呈现更多的分类符1602。在此实例中,并不冗余地主动引出先前输入的约束。在图20中,屏幕2001描绘同一实例的接续部分,其中用户已点按Go按钮1306。在框2002中展示用户的输入,且在框2003中展示消息,从而将关于正响应于用户的输入而执行查询的反馈提供给用户。在图21中,屏幕2101描绘同一实例的接续部分,其中已找到结果。在框2102中展示消息。结果2103(包含允许用户查看进一步详情的输入元件)保存所识别的事件、买票、添加注释等。在一个屏幕2101以及其它所显示屏幕中是可滚动的,从而允许用户向上滚动以查看屏幕2001或其它先前呈现的屏幕,且在需要时对所述查询作出改变。主动语音输入引出现在参看图22,展示了描绘根据一个实施例的用于话音或语音的主动输入引出的方法的流程图。方法开始221。助理1002接收121呈听觉信号的形式的话音或语音输入。语音-文本服务122或处理器产生听觉信号的一组候选文本解译124。在一个实施例中,使用(例如)可从马萨诸塞州伯灵顿市的纽昂斯通信公司(Nuance Communications, Inc.)购得的纽昂斯辨识器(Nuance Recognizer)来实施语音-文本服务122。在一个实施例中,助理1002使用统计语言模型来产生语音输入121的候选文本解译 124。另外,在一个实施例中,调谐统计语言模型以寻找出现在图8中所示的助理1002的各种模型中的字、名称和短语。举例来说,在至少一个实施例中,统计语言模型为来自以下各者中的一些或全部的给定字、名称和短语域模型1056(例如,与餐馆和用餐事件有关的字和短语)、任务流模型1086 (例如,与规划一事件有关的字和短语)、对话流模型1087 (例如,与搜集用于餐馆预订的输入所需的约束有关的字或短语)、域实体数据库1072(例如,餐馆的名称)、词汇数据库1058(例如,菜系名称)、服务模型1088(例如,服务名称提供(例如)打开表(OpenTable)),和/或与主动本体1050的任一节点相关联的任何字、名称或短语。在一个实施例中,还调谐统计语言模型以寻找来自长期个人存储器1054的字、名称和短语。举例来说,统计语言模型可为来自待办事项项目、列表项目、个人便笺、日历条目、联系人/地址簿中的人名、联系人/地址簿中所提到的街道或城市名等的给定文本。分等级组件分析候选解译124且根据其与智能自动化助理1002的语法和/或语义模型的配合程度而对其进行分等级126。可使用对用户输入的任何约束源。举例来说,在一个实施例中,助理1002可根据解译在语法和/或语义意义上、域模型、任务流模型和/或对话模型和/或类似物中解析的程度来对语音-文本解译器的输出进行分等级助理1002 评估文本解译124中的字的各种组合将与主动本体1050及其相关联模型的概念、关系、实体和特性的配合程度。举例来说,如果语音-文本服务122产生两个候选解译“午餐吃意大利食物”以及“午餐穿意大利鞋”,通过语义相关进行分等级可将“午餐吃意大利食物”分较高等级(如果其与节点助理1002的主动本体1050更匹配(例如,字“意大利”、“食物”和“午餐”全部与本体1050中的节点匹配,且其全部是通过本体1050中的关系连接,而字“鞋”并不与本体1050匹配或与不是外出就餐域网络的一部分的节点匹配))。在各种实施例中,可使用由助理1002用于解译文本输入的算法或程序(包含图28中所示的自然语言处理程序的任何实施例)对由语音-文本服务122产生的候选文本解译124进行分等级和评分。在一个实施例中,如果分等级组件126确定128来自解译124的最高等级语音解译分在指定阈值之上,那么可自动选择130最高等级解译。如果没有解译分在指定阈值之上,那么向用户呈现132语音134的可能候选解译。用户可接着在所显示选择当中进行选择 136。在各种实施例中,可通过任何输入模式(包含例如结合图16所述的多模式输入模式中的任一者)来实现在所显示选择当中的用户选择136。此些输入模式包含(不限于)主动引出的所键入输入2610、主动引出的语音输入2620、用于输入的主动呈现的⑶I 2640,和/或类似物。在一个实施例中,用户可例如通过点按或讲话来在候选解译134之间进行选择。在讲话的情况下,新语音输入的可能解译受所提供的小选择集合134高度约束。举例来说,如果提供“你的意思是意大利食物还是意大利鞋? ”,那么用户可仅说“食物”,且助理可将此与短语“意大利食物”匹配,且不会将其与输入的其它全局解译混淆。不管自动选择130还是由用户选择136输入,均返回所得输入138。在至少一个实施例中,对返回的输入作注解138,使得关于在步骤136中作出的选择的信息连同文本输入一起被保留。这使得(例如)字符串潜在的语义概念或实体在返回时能够与所述字符串相关联,这提高了后续语言解译的准确性。举例来说,如果基于菜系=意大利食物的语义解译将“意大利食物”提供作为候选解译134中的一者,那么可连同用户对作为带注解的文本输Λ 138的字符串“意大利食物”的选择而发送机器可读语义解译。在至少一个实施例中,基于作为语音-文本服务122的输出而接收到的语音解译而产生候选文本解译124。在至少一个实施例中,通过依据语音解译的语义意义对其进行释义而产生候选文本解译124。在一些实施例中,可存在同一语音解译的多个释义,从而提供不同的词感或同音替代物。举例来说,如果语音-文本服务122指示“用于见面的地方”,那么向用户呈现的候选解译可释义为“见面的地方(本地商店)”和“用于吃饭的地方(餐馆)”。在至少一个实施例中,候选文本解译124包含对正确子字符串的提供。
在至少一个实施例中,候选文本解译124包含使用如本文所述的语法和语义分析对候选解译的正确子字符串的提供。在至少一个实施例中,当用户选择候选解译时,其返回。在至少一个实施例中,在返回之前向用户提供编辑解译的接口。在至少一个实施例中,向用户提供在返回输入之前以更多话音输入继续的接口。这使得能够递增地建立输入言论,从而在一个反复中获得语法和语义校正、建议和向导。在至少一个实施例中,向用户提供直接从136进行到主动所键入输入引出的方法(上文结合图11而描述)的步骤111的接口。这使得能够使所键入和口述输入交错,从而在一个步骤处获得语法和语义校正、建议和向导。在至少一个实施例中,向用户提供直接从主动所键入输入引出的实施例的步骤111直接进行到主动语音输入引出的实施例的接口。这使得能够使所键入和口述输入交错,从而在一个步骤处获得语法和语义校正、建议和向导。基于主动⑶I的输入引出现在参看图23,展示描绘根据一个实施例的用于基于⑶I的输入的主动输入引出的方法的流程图。所述方法开始140。助理1002在输出装置1207上呈现141图形用户接口(⑶I),其可包含(例如)链接和按钮。用户与至少一个⑶I元件交互142。接收数据144,并将其转换146为统一格式。接着返回经转换的数据。在至少一个实施例中,⑶I的元件中的一些元件是从主动本体的模型动态地产生,而不是写入到计算机程序中。举例来说,助理1002可提供一组约束以将餐馆预订服务引导为用于在屏幕上点按的区,其中每一区表示约束的名称和/或值。举例来说,屏幕可具有动态产生的⑶I布局的行,所述CTI布局具有用于约束(菜系、位置和价格范围)的区。如果主动本体的模型改变,那么⑶I屏幕将自动改变而无需重新编程。 主动对话建议输入引出。图24是描绘根据一个实施例的用于在对话流等级下的主动输入引出的方法的流程图。助理1002建议151可能的响应152。用户选择154所建议的响应。将接收到的输入转换154为统一格式。接着返回经转换的数据。在至少一个实施例中,在步骤151中提供的建议是作为对话和/或任务流中的后继步骤而提供。在至少一个实施例中,所述建议提供用以例如使用来自域和/或任务模型的参数来细化查询的选项。举例来说,可提议某人改变请求的假定位置或时间。
在至少一个实施例中,所述建议提供用以在由语言解译程序或组件给出的模糊替代性解译当中进行选择的选项。在至少一个实施例中,所述建议提供用以在由语言解译程序或组件给出的模糊替代性解译当中进行选择的选项。在至少一个实施例中,所述解译提供用以在与工作流相关联的对话流模型1087中的接下来步骤当中进行选择的选项。举例来说,对话流模型1087可建议在搜集到对一个域(例如,餐馆就餐)的约束之后,助理1002应建议其它相关域(例如,附近的电影院)。对相关事件的主动监视在至少一个实施例中,可以与主动引出的输入的其它形态类似的方式将异步事件视为输入。因此,可将此些事件提供作为助理1002的输入。一旦被解译,就可以与任何其它输入类似的方式来看待此些事件。
举例来说,航班状态改变可起始待发送给用户的警报通知。如果航班被指示为晚点,那么助理1002可基于检测到的事件,通过呈现替代航班、作出其它建议等来继续对话。此些事件可为任何类型。举例来说,助理1002可检测到用户刚回家,或迷路了(离开指定路线),或股票价格达到阈值,或用户感兴趣的电视节目正开始,或受关注的音乐家正在该地区旅行。在这些情形中的任一者中,助理1002可以与用户自己起始询问大体上相同的方式来进行对话。在一个实施例中,事件甚至可基于从其它装置提供的数据,(例如)以告诉用户同事何时已吃午饭回来(所述同事的装置可将此事件用信号发送到用户的装置,此时,安装在用户的装置上的助理1002相应地响应)。在一个实施例中,所述事件可为来自日历、时钟、提醒或待办事项应用程序的通知或警报。举例来说,来自日历应用程序的关于晚餐日期的警报可起始与助理1002的关于就餐事件的对话。对话可像用户刚刚说出或键入关于即将到来的晚餐事件的信息(例如,“在旧金山2人晚餐)那样进行。在一个实施例中,可能的事件触发器162的上下文可包含关于人、地方、事件和其它数据的信息。可将这些数据用作对助理1002的输入的部分,以用于处理的各种步骤中。在一个实施例中,来自事件触发器162的上下文的这些数据可用以消除来自用户的语音或文本输入的歧义。举例来说,如果日历事件警报包含受邀参与所述事件的人的名字,那么所述信息可帮助消除可能与具有相同或类似名字的若干人匹配的输入的歧义。现在参看图25,展示了描绘根据一个实施例的用于主动监视相关事件的方法的流程图。在此实例中,事件触发器事件为输入集合162。助理1002监视161以寻找此些事件。可使用可从智能自动化助理1002中的其它组件获得的模型、数据和信息来对检测到的事件进行过滤和分类164以获得语义相关度。举例来说,如果用户的短期或长期存储器纪录指示用户正在那个航班上且/或已向助理1002作出关于其的询问,那么可给予报告航班状态的变化的事件较高相关度。此分类和过滤可接着仅呈现顶部事件供用户检视,用户可接着选择挑选一者或一者以上并对其作用。将事件数据转换166为统一输入格式,且返回。在至少一个实施例中,助理1002可前摄地提供与曾针对用户关注而建议的事件相关联的服务。举例来说,如果航班状态警报指示可能错过航班,那么助理1002可向用户建议用于重新规划路线或预订旅馆的任务流。
输入引出组件实例以下实例意在帮助说明可由主动输入引出组件1094提供的各种类型的功能、操作、动作和/或其它特征中的一些。实例命令完成(用户可对助理1002说什么?)用户正面对具有输入“您想做什么? ”的笼统指令的文本输入框。取决于上下文和用户输入,提供若干系统响应中的任一者。实例展示如下。情况空值输入
用户输入系统响应注释
在空字段Il无对 丨: 、义、找較馆、旅馆、电影院…… 黑文本将被插入到输入字的愦况K,键入_题或空*订餐桌、WM、应位……段屮+ -M义本被插入,
格符,或在某.时W周期·预Ii食物、鲜花……斜体字文本就将为后续迚
内不输入任W东西。·购买梨、书、DVD……议。
I·安排+会议、苹件 …*
提醒待办1ff项......
_I.解释结果__情况第一字输入
I……输入.....................................................................................................系统响两...............................................................................................................................................................;!;#................................................................................................................
在空对W I-: K文的情况、M找餐馆、旅馆、电影 文木将被插入到输入K,如果!LI户键入任-命 ….*卞段中。-〖1文木被插
I______令的 __第___________._个_〒邛,__________那么丨____________入,_________f彳体__7__义___本__就__将_为______
it提出述议,,例如后续 Η义,,
I_g___情况关键字输入
|)ur输人丨系统咖: |fi;释 —
/1: 对话I; VMImi. · _待办1_丨……咒义'本将被■入到输入
卜如来川 键入ir: +.X} ·根据位w、菜系来彳找MW,7段屮《 +Hi木被個
键卞的i.w个7-呀,那么·入,斜体Y义本就将为
向 提出建议以及命令=后续违议。
例如
I____情况针对争论进行提示
.....JtJPttA..................................................................................................................Mmm..........................................................................................................................................................................Im................................................................................................................
MJP已输入或选抒了 “命·根据位.H、菜系、……的餐馆, +仅提供选抒种类,Ifu H.
+令”动叼,此外无.K.它。·根据位置、叫⑴性、……的旅W 广ft约束选顶注S,地例如 ·根裾位W、流浪、……的电影院 /,I :名称只是提小% ΓΓ不会_.:7·找」__·地点名称__插入文本_
情况建议准则
IJH/1输入系统响应注释一
用户已经输入足够的G息·在市1H, I 政编WI文木将被tt入到输入字
来建立仟务和域,Π.现在依·IS近家、办公审、地点名称段中》 · K文木被插入,
序提¥约束.·桁名的餐馆名称斜体字文木就将为fi浊建
I、i.找ff馆.....I·a 情况添加准则
.........IpIa.......系统响应丨+t 释—
诏户d说“中”,π.现在提示位.K ·城市,_政编《Jl到川户输入下+ WT,
3找Λ··…·屮的餐馆」·加利福尼亚州Cl洛阿尔托建议I为提不要键入何
市种东卩t地点为來π个人
__·加利福M亚州H洛帕克市.存储器的城市。_
川户已说“附近' Jl现在提示·我家地点为来自个人存储器
位H·我中位的·个或-个以I·.地点
i找在……附近的IIWJ · Ull利福尼靡丨 K洛阿尔托

I· MmmmMmmaj情况添加位置或其它约束
JlJP输入系统响成注释才找在帕洛阿尔托的餐I ·供应食物炎型或菜系提示爲它约東W」 ·今晚、_天……tmw_·描述为浪漫、■务好_
________________·___________今 I""^....... .....jr;1iiiilliliii'. :00...ΙΠ....9:00.........
位Wiflff馆I·明天们的U!议
卜'午7点Pr-9 点
_I·兆它时_或「1___情况从约束、未知任务或域开始
)fl户输入系统响极注释—
浪漫」·根《位S、菜系的餐W.……来 木体的约束值W诉您要使
根据位S、" 用性、……的旅W Γ0_Λ选择类別^·
*Mmm,流派、……的电毖
侧—I· W据位S、流派、……的电影“ *副”足电毖中的流派的约束
雛:K、……的事件值,为事件屮的流派,Ii “棚_·根据位置的俱乐部 _俱乐部”为本地H朵商#类别实例名称完成
此处,用户已键入某一文本,而不接受命令中的任一者,或他或她仅用实体名称来扩展命令。系统可试图依据上下文完成所述名称。这也消除域的歧义。情况不具有上下文的字
权利要求
1.一种在计算装置上操作的自动化助理,所述助理包括 输入装置,其用于接收用户输入; 语言解译器组件,其用于解译所述已接收的用户输入以得到用户意图的表示; 对话流处理器组件,其用于至少部分地基于所述已得到的用户意图的表示而识别至少一个域、至少一个任务以及用于所述任务的至少一个参数; 服务编排组件,其用于调用至少一个服务以用于执行所述已识别的任务; 输出处理器组件,其用于基于从所述至少一个已调用的服务接收到的数据且进一步至少部分地基于当前输出模式而再现输出;以及输出装置,其用于输出所述已再现的输出。
2.根据权利要求I所述的自动化助理,其进一步包括 主动输入引出组件,其用于产生用以主动地引出来自用户的输入的至少一个提示; 其中所述输出装置输出所述已产生的至少一个提示。
3.根据权利要求2所述的自动化助理,其中 所述主动输入引出组件经由谈话接口而产生用以主动地引出来自用户的输入的所述至少一个提示;以及 所述输入装置经由所述谈话接口而接收所述用户输入。
4.根据权利要求2所述的自动化助理,其中所述主动输入引出组件通过以下操作来执行受约束选择以产生所述至少一个提示获得经排序的准则列表; 对于所述已获得的准则中的至少一个,获得至少一个约束;以及 基于所述至少一个准则和所述至少一个约束,产生一组候选项目。
5.根据权利要求2所述的自动化助理,其进一步包括 主动本体,其包括概念的表示以及概念之间的关系; 其中所述主动输入引出组件使用所述主动本体中的所述表示的至少一个子集来产生所述至少一个提示。
6.根据权利要求2所述的自动化助理,其中 所述主动输入引出组件经由多个输入模式而产生用以主动地引出来自用户的输入的所述至少一个提示;以及 所述输入装置经由所述多个输入模式而接收所述用户输入。
7.根据权利要求6所述的自动化助理,其中所述多个输入模式包括选自由以下各项所组成的群组中的至少一个 所键入输入; 口述输入;以及 经由图形用户接口提供的输入。
8.根据权利要求2所述的自动化助理,其进一步包括事件检测器,所述事件检测器用于检测至少一个事件,且其中所述主动输入引出组件产生响应于至少一个已检测事件的所述至少一个提示。
9.根据权利要求I所述的自动化助理,其进一步包括 任务流模型组件,其用于识别表示用于执行所述已识别的至少一个任务的步骤的至少一个任务流模型;且其中所述语言解译器组件、所述对话流处理器组件、所述服务编排组件以及所述输出处理器组件中的至少一个与所述任务流模型组件介接。
10.根据权利要求9所述的自动化助理,其进一步包括 主动本体,其包括概念的表示以及概念之间的关系; 其中所述至少一个任务流模型是根据所述主动本体而组织的。
11.根据权利要求9所述的自动化助理,其中所述对话流处理器组件执行受约束选择以识别所述至少一个任务流模型。
12.根据权利要求I所述的自动化助理,其进一步包括 域模型组件,其包括域的至少一个表示; 且其中所述语言解译器组件、所述对话流处理器组件、所述服务编排组件以及所述输出处理器组件中的至少一个与所述域模型组件介接。
13.根据权利要求12所述的自动化助理,其中域的每一表示包括选自由以下各项所组成的群组中的至少一个 至少一个概念的表示; 至少一个实体的表示;以及 至少一个关系的表示。
14.根据权利要求12所述的自动化助理,其进一步包括 主动本体,其包括概念的表示以及概念之间的关系; 其中域的所述至少一个表示是根据所述主动本体而组织的。
15.根据权利要求12所述的自动化助理,其中所述域模型组件使用来自受约束选择的建模抽象概念来定义域的至少一个表示。
16.根据权利要求I所述的自动化助理,其进一步包括 对话流模型组件,其包括所述助理与用户之间的谈话中所采用的步骤的表示; 且其中所述语言解译器组件、所述对话流处理器组件、所述服务编排组件以及所述输出处理器组件中的至少一个与所述对话流模型组件介接。
17.根据权利要求I所述的自动化助理,其进一步包括 服务能力模型组件,其包括服务能力的表示; 且其中所述语言解译器组件、所述对话流处理器组件、所述服务编排组件以及所述输出处理器组件中的至少一个与所述服务能力模型组件介接。
18.根据权利要求17所述的自动化助理,其中所述服务编排组件基于至少一个服务模型来选择要调用的至少一个服务。
19.根据权利要求17所述的自动化助理,其中所述服务能力模型组件包括至少一个服务的宣告模型,且其中所述服务编排组件根据所述宣告模型且进一步根据所述已得到的用户意图的表示而在可用服务当中动态地选择。
20.根据权利要求I所述的自动化助理,其进一步包括 词汇数据库,其包括字与概念之间的关联; 且其中所述语言解译器组件、所述对话流处理器组件、所述服务编排组件以及所述输出处理器组件中的至少一个与所述词汇数据库介接。
21.根据权利要求I所述的自动化助理,其进一步包括域实体数据库,其包括描述域实体的数据; 且其中所述语言解译器组件、所述对话流处理器组件、所述服务编排组件以及所述输出处理器组件中的至少一个与所述域实体数据库介接以获得描述域实体的数据。
22.根据权利要求I所述的自动化助理,其进一步包括 短期存储器组件,其用于存储描述与所述自动化助理的至少一个用户交互的数据;且其中所述语言解译器组件、所述对话流处理器组件、所述服务编排组件以及所述输出处理器组件中的至少一个与所述短期存储器组件介接以获得描述与所述自动化助理的至少一个用户交互的数据。
23.根据权利要求22所述的自动化助理,其中所述语言解译器组件至少部分地基于来自所述短期存储器组件的信息而解译所述已接收的用户输入。
24.根据权利要求I所述的自动化助理,其进一步包括 长期存储器组件,其用于存储选自由以下各项所组成的群组中的至少一个 与用户相关联的个人信息; 由所述用户收集的信息; 所保存的与所述用户相关的实体列表; 与所述用户相关联的交易历史; 且其中所述语言解译器组件、所述对话流处理器组件、所述服务编排组件以及所述输出处理器组件中的至少一个与所述长期存储器组件介接以获得存储在其中的数据。
25.根据权利要求24所述的自动化助理,其中所述语言解译器组件至少部分地基于来自所述长期存储器组件的信息而解译所述已接收的用户输入。
26.根据权利要求I所述的自动化助理,其中所述对话流处理器组件执行受约束选择以识别至少一个任务以及用于所述任务的至少一个参数。
27.根据权利要求26所述的自动化助理,其中所述对话流处理器组件通过以下操作来执行受约束选择 获得经排序的准则列表; 对于所述已获得的准则中的至少一个,获得至少一个约束;以及基于所述至少一个准则和所述至少一个约束,识别至少一个任务和用于所述任务的至少一个参数。
28.根据权利要求I所述的自动化助理,其中所述服务编排组件执行受约束选择以调用至少一个服务。
29.根据权利要求28所述的自动化助理,其中所述服务编排组件通过以下操作来执行受约束选择 获得经排序的准则列表; 对于所述已获得的准则中的至少一个,获得至少一个约束;以及 基于所述至少一个准则和所述至少一个约束,调用至少一个服务。
30.根据权利要求I所述的自动化助理,其进一步包括 主动本体,其包括概念的表示以及概念之间的关系。
31.根据权利要求30所述的自动化助理,其中所述语言解译器组件使用所述主动本体中的所述表示的至少一个子集来解译所述已接收的用户输入。
32.根据权利要求30所述的自动化助理,其中所述对话流处理器组件使用所述主动本体中的所述表示的至少一个子集来识别所述至少一个域、任务和参数。
33.根据权利要求30所述的自动化助理,其中所述服务编排组件使用所述主动本体中的所述表示的至少一个子集来调用至少一个服务。
34.根据权利要求30所述的自动化助理,其中所述输出处理器组件使用所述主动本体中的所述表示的至少一个子集来再现输出。
35.根据权利要求30所述的自动化助理,其中所述主动本体用作所述自动化助理所使用的至少一个数据库的语义统一体。
36.根据权利要求30所述的自动化助理,其中所述主动本体针对每一用户会话而被例/Jn ο
37.根据权利要求30所述的自动化助理,其中所述主动本体包括选自由以下各项所组成的群组中的至少一个 至少一个域模型; 至少一个对话流模型; 至少一个服务模型;以及 至少一个任务模型。
38.根据权利要求I所述的自动化助理,其进一步包括 事件监视器,其用于接收关于事件的数据; 其中所述对话流处理器组件至少部分地基于关于至少一个事件的所接收的数据而识别至少一个任务以及用于所述任务的至少一个参数。
39.根据权利要求I所述的自动化助理,其中所述输入装置包括 至少一个麦克风,其用于接收语音输入; 且其中所述助理进一步包括 语音-文本组件,其用于将所述已接收的语音输入翻译成文本。
40.根据权利要求I所述的自动化助理,其中所述输入装置接收文本输入。
41.根据权利要求I所述的自动化助理,其中所述语言解译器消除所述已接收的用户输入的替代性解析结果当中的歧义。
42.根据权利要求I所述的自动化助理,其中所述服务编排组件调用用于在所述计算装置上执行操作的至少一个服务。
43.根据权利要求I所述的自动化助理,其中所述服务编排组件调用用于经由计算网络执行操作的至少一个服务。
44.根据权利要求I所述的自动化助理,其中所述服务编排组件调用用于经由因特网执行操作的至少一个服务。
45.根据权利要求I所述的自动化助理,其中所述服务编排组件从所述已调用的至少一个服务接收结果,且统一所述已接收的结果。
46.根据权利要求I所述的自动化助理,其中所述自动化助理对选自由以下各项所组成的群组中的至少一个操作 电话; 智能电话;平板计算机; 膝上型计算机; 个人数字助理; 桌上型计算机; 公用电话亭; 消费型电子装置; 消费型娱乐装置; 音乐播放器; 相机; 电视; 电子游戏单元;以及 机顶盒。
47.根据权利要求I所述的自动化助理,其中 所述输出处理器组件对用户意图的所述至少一个表示进行释义;以及 所述输出装置输出所述已释义的用户意图的表示。
48.根据权利要求I所述的自动化助理,其中所述语言解译器组件、所述对话流处理器组件、所述服务编排组件以及所述输出处理器组件中的至少一个从所述计算装置的已检测的上下文获得参数。
49.根据权利要求48所述的自动化助理,其中所述计算装置的所述已检测的上下文包括选自由以下各项所组成的群组中的至少一个 当前软件应用程序及其当前状态; 当前位置; 经由至少一个环境传感器检测的当前环境条件; 使用历史;以及 描述所述用户的信息。
50.根据权利要求I所述的自动化助理,其中所述输出装置使用至少两个输出模式的组合来输出所述已再现的输出。
51.根据权利要求50所述的自动化助理,其中至少两个输出模式包括选自由以下各项所组成的群组中的至少两者 文本输出; 图形输出; 声音输出; 合成语音输出; 经取样语音输出;以及 致动器输出。
52.一种在计算装置上操作的自动化助理,所述助理包括 输入装置,其用于接收用户输入; 主动本体,其包括概念的表示以及概念之间的关系;语言解译器组件,其用于解译所述已接收的用户输入以得到用户意图的表示,其中所述语言解译器组件获得来自所述主动本体的概念的表示以及概念之间的关系以得到用户意图的所述表不; 输出处理器组件,其用于基于所述已得到的用户意图的表示且进一步至少部分地基于当前输出模式而再现输出;以及 输出装置,其用于输出所述已再现的输出。
53.根据权利要求52所述的自动化助理,其中所述语言解译器组件基于来自所述主动本体的概念的所述表示以及概念之间的关系而解析所述已接收的用户输入以得到用户意图的所述表示。
54.根据权利要求52所述的自动化助理,其中所述语言解译器组件基于来自所述主动本体的概念的所述表示以及概念之间的关系而消除所述用户输入的至少两个可能的解译当中的歧义。
55.根据权利要求52所述的自动化助理,其进一步包括 主动输入引出组件,其用于产生用以主动地引出来自用户的输入的至少一个提示; 其中所述输出装置输出所述已产生的至少一个提示。
56.根据权利要求55所述的自动化助理,其中所述主动输入引出组件基于从所述主动本体获得的概念的表示以及概念之间的关系而产生所述至少一个提示。
57.根据权利要求55所述的自动化助理,其中所述主动输入引出组件基于从所述主动本体获得的概念的表示以及概念之间的关系而自动完成所述用户输入。
58.根据权利要求52所述的自动化助理,其进一步包括 服务编排组件,其用于基于所述已得到的用户意图的表示而调用至少一个服务以用于执行任务; 其中所述服务编排组件基于来自所述主动本体的概念的所述表示以及概念之间的关系而识别待调用的服务。
59.一种在计算装置上操作的自动化助理,所述助理包括 输入装置,其用于接收用户输入; 语言解译器组件,其用于解译所述已接收的用户输入以得到用户意图的表示; 主动输入引出组件,其用于 经由谈话接口产生用以主动地弓丨出来自用户的输入的至少一个提示;以及 产生所述用户意图的释义; 输出处理器组件,其用于 基于所述已得到的用户意图的表示而概述多个结果;以及 产生表示所述已概述的多个结果且进一步至少部分地基于当前输出模式的输出;以及 输出装置,其用于输出所述用户意图的所述释义,且用于输出所述已产生的输出。
60.根据权利要求59所述的自动化助理,其中 所述输入装置包括语音输入装置,所述语音输入装置用于接收口述输入; 所述输出装置进一步输出表示所述口述输入的文本。
61.一种用于在具有至少一个处理器的计算装置上实施自动化助理的方法,所述方法包括 在输入装置处,接收用户输入;在处理器处,解译所述已接收的用户输入以得到用户意图的表示; 在所述处理器处,至少部分地基于所述已得到的用户意图的表示而识别至少一个域、至少一个任务以及用于所述任务的至少一个参数; 在所述处理器处,调用至少一个服务以用于执行所述已识别的任务; 在所述处理器处,基于从所述至少一个已调用的服务接收到的数据且进一步至少部分地基于当前输出模式而再现输出;以及 在输出装置处,输出所述已再现的输出。
62.根据权利要求61所述的方法,其进一步包括 在所述处理器处,产生用以主动地引出用户输入的至少一个提示;以及 在所述输出装置处,输出所述已产生的至少一个提示。
63.根据权利要求61所述的方法,其中接收用户输入包括 经由谈话接口提示所述用户;以及 经由所述谈话接口接收用户输入。
64.根据权利要求61所述的方法,其进一步包括 对用户意图的所述至少一个表示进行释义;以及 在所述输出装置处输出所述已释义的用户意图的表示。
65.根据权利要求61所述的方法,其进一步包括 产生所述已接收的用户输入的多个替代性解析结果;以及 消除所述替代性解析结果当中的歧义。
66.根据权利要求65所述的方法,其中消除所述替代性解析结果当中的歧义包括 识别所述用户输入的至少两个竞争性解译; 在所述输出装置处,输出用以请求来自所述用户的额外信息的提示; 在所述输入装置处,接收来自所述用户的额外信息;以及 基于所述额外信息而解决歧义。
67.根据权利要求61所述的方法,其中处理所述已接收的用户输入包括使用选自由以下各项所组成的群组中的至少一个来处理所述用户输入 来自短期存储器的描述当前会话中的至少一个先前交互的数据;以及 来自长期存储器的描述所述用户的至少一个特性的数据。
68.一种用于在具有至少一个处理器的计算装置上实施自动化助理的计算机程序产品,所述方法包括 非暂时计算机可读存储媒体;以及 计算机程序代码,其编码在所述媒体上,用于致使至少一个处理器执行以下步骤 接收用户输入; 解译所述已接收的用户输入以得到用户意图的表示; 至少部分地基于所述已得到的用户意图的表示而识别至少一个域、至少一个任务以及用于所述任务的至少一个参数; 调用至少一个服务以用于执行所述已识别的任务; 基于从所述至少一个已调用的服务接收到的数据且进一步至少部分地基于当前输出模式而再现输出;以及输出所述已再现的输出。
69.根据权利要求68所述的计算机程序产品,其进一步包括用于致使所述至少一个处理器执行以下步骤的计算机程序代码 产生用以主动地引出用户输入的至少一个提示;以及 输出所述已产生的至少一个提示。
70.根据权利要求68所述的计算机程序产品,其中所述用于接收用户输入的计算机程序代码包括用于致使所述至少一个处理器执行以下步骤的计算机程序代码 经由谈话接口提示所述用户;以及 经由所述谈话接口接收用户输入。
71.根据权利要求68所述的计算机程序产品,其进一步包括用于致使所述至少一个处理器执行以下步骤的计算机程序代码 对用户意图的所述至少一个表示进行释义;以及 在所述输出装置处输出所述已释义的用户意图的表示。
72.根据权利要求68所述的计算机程序产品,其进一步包括用于致使所述至少一个处理器执行以下步骤的计算机程序代码 产生所述已接收的用户输入的多个替代性解析结果;以及 消除所述替代性解析结果当中的歧义。
73.根据权利要求72所述的计算机程序产品,其中所述用于消除所述替代性解析结果当中的歧义的计算机程序代码包括用于致使所述至少一个处理器执行以下步骤的计算机程序代码 识别所述用户输入的至少两个竞争性解译; 在所述输出装置处,输出用以请求来自所述用户的额外信息的提示; 在所述输入装置处,接收来自所述用户的额外信息;以及 基于所述额外信息而解决歧义。
74.根据权利要求68所述的计算机程序产品,其中所述用于处理所述已接收的用户输入的计算机程序代码包括用于致使所述至少一个处理器执行使用选自由以下各项所组成的群组中的至少一个来处理所述用户输入的步骤的计算机程序代码 来自短期存储器的描述当前会话中的至少一个先前交互的数据;以及 来自长期存储器的描述所述用户的至少一个特性的数据。
全文摘要
一种智能自动化助理系统使用自然语言对话以整合的谈话方式与用户接洽,且在适当时调用外部服务以获得信息或执行各种动作。可使用若干不同平台中的任一种来实施所述系统,例如所述平台为网络、电子邮件、智能电话等,或其任一组合。在一项实施例中,所述系统是基于若干互相联系的域和任务集合,且使用由可与所述系统交互的外部服务支持的额外功能性。
文档编号G06Q10/00GK102792320SQ201180013559
公开日2012年11月21日 申请日期2011年1月11日 优先权日2010年1月18日
发明者亚当·约翰·奇也, 亨利·约瑟夫·萨德勒, 克里斯托弗·迪安·布里格姆, 戴格·吉特劳斯, 托马斯·罗伯特·格鲁伯, 理查德·唐纳德·朱利, 迪迪埃·勒内·古佐尼, 马尔切洛·巴斯泰亚-福特 申请人:苹果公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1