对话系统中的参数收集和自动对话生成的制作方法

文档序号:15740298发布日期:2018-10-23 22:10阅读:311来源:国知局
对话系统中的参数收集和自动对话生成的制作方法

本申请要求2015年10月21日提交的、题为“Parameter Collection and Automatic Dialog Generation in Dialog Systems(对话系统中的参数收集和自动对话生成)”的美国临时专利申请序列号62/244,560的权益,其通过引用整体并入本文中以用于所有目的。



背景技术:

对话系统广泛用于便携式设备的应用中。通常,对话系统包括具有用于访问、处理、管理和传递信息的人机接口的基于计算机的代理。对话系统也被称为聊天信息系统、口语对话系统、交谈代理、聊天者机器人(chatter robot)、聊天者机器人程序(chatterbot)、聊天机器人程序(chatbot)、聊天代理、数字个人助理和自动化在线助理等。

传统上,对话系统可以使用自然语言与人交互以模拟智能交谈,并向用户提供个性化的协助。例如,用户可以询问对话系统“What is the weather like in Alexandria today?(今天亚历山大的天气如何?)”并从对话系统接收以音频或文本消息的形式的回答。用户可以向对话系统提供语音命令以引起某些操作的执行,例如,生成电子邮件、拨打电话、搜索信息、导航、和设置通知或提醒等等。这些和其他功能使对话系统在用户中非常流行,尤其是对于诸如例如智能电话和平板计算机的便携式电子设备的用户。

对话系统可以包括对话系统引擎,其负责接收用户语音输入、将它们转换成文本输入、解释文本输入、生成对文本输入的适当响应、以及将响应传递给用户。解释输入并找到适当的响应可以利用人工智能算法。因此,尽管对话系统的需求不断增长,但创建对话系统仍然是一项复杂的工程任务。



技术实现要素:

自然语言对话系统可以维持与用户的对话,并且响应于用户请求而提供智能响应或执行范围广泛的动作。用户请求可以由自然语言对话系统使用对话系统来解释,该对话系统“意图”促进了用户讲出的内容与自然语言对话系统采取的动作之间的映射。在某些用户机器对话场境(context)中,为了实现针对给定意图的动作,自然语言对话系统需要获得一个或多个意图参数。例如,当用户请求自然语言对话系统订购比萨时,自然语言对话系统需要获取与比萨相关联的参数,例如,大小、饼皮类型、配料、供应商、送货时间和地址。

根据本公开的示例提供了用于利用模仿自然语言对话的机器实现的参数收集对话来从用户收集意图参数的系统和方法。可能需要识别用户的预定意图以便发起意图参数的收集。一旦意图参数被收集,自然语言对话系统便基于所收集的参数来实现与该意图相关联的预定动作(例如,向比萨餐厅发送电子购买订单)。

根据本公开的示例可以进一步提供用于使得软件开发者能够创建对话代理的系统和方法,该对话代理可配置为运行参数收集对话并收集意图参数。在这里公开的一个示例中,提供了一种用于意图参数收集的方法,包括:接收用户的话音输入;基于至少一个预定意图关键字来识别与所述话音输入相关联的对话系统意图,所述对话系统意图具有所需意图参数;确定所述对话系统的所有所需意图参数的数据是否可用;基于所述确定,选择性地发起与所述对话系统意图相关联的参数收集对话,所述参数收集对话可操作为收集对于所述对话系统意图不可用的所需参数的数据;以及基于所述对话系统意图和一个或多个所需参数,生成动作指令。

在一个示例中,所述方法可以进一步包括:识别在所述话音输入中的所需意图参数中的至少一个所需意图参数;以及从所述话音输入中提取所需意图参数中的所述至少一个所需意图参数。所述方法可以进一步包括:基于所述话音输入包括全部缺少的意图参数的确定,从所述话音输入中提取所需意图参数而不发起所述参数收集对话。所述参数收集对话可以包括至少一个预定提示。

在一个示例中,所述方法可以进一步包括:响应于所述至少一个预定提示,接收所述用户的至少一个另外的话音输入;以及从所述至少一个另外的话音输入中提取所述所需意图参数中的至少一个所需意图参数,直到收集到所有缺少的意图参数。所述意图参数可以包括以下中的至少一个:数值、词、短语、声音、和图像。可以从预定值的列表中选择所述意图参数中的至少一个。

在一个示例中,所述方法可以进一步包括由开发者平台使得开发者能够创建所述自然话音对话系统的对话代理以自动化收集缺少的意图参数,所述对话代理与开发者简档相关联。该方法可以进一步包括:由所述开发者平台提供图形界面以使得所述开发者能够进行以下操作:创建所述对话代理;以及,提供以下中的一个或多个:所述对话系统意图、至少一个意图参数以及针对所述意图参数的一个或多个提示。所述方法可以进一步包括:由所述开发者平台使得所述开发者能够为所述意图参数指定对话系统实体或数据类型;以及由所述开发者平台使得所述开发者能够为所述意图参数中的每一个指定值类型。所述动作指令可以被配置为使得服务器或用户设备基于所述动作指令和一个或多个所需意图参数来实现预定动作。所述动作指令可以包括被配置为引起API服务的应用编程接口(API)特定响应。所述方法还包括:提供允许所述用户确认或阐明所述动作指令的确认消息,其中,所述确认消息记载一个或多个所需的意图参数。

在根据本公开的另一示例中,提供了一种自然话音对话系统,其包括至少一个处理器和存储处理器可执行代码的存储器。处理器可以被配置为在执行处理器可执行代码时实现以下操作:基于至少一个预定意图关键字来识别与所述话音输入相关联的对话系统意图,所述对话系统意图具有所有所需意图参数;确定所述对话系统的所有所需意图参数的数据是否可用;基于所述确定,选择性地发起与所述对话系统意图相关联的参数收集对话,所述参数收集对话可操作为收集对于所述对话系统意图不可用的所需参数的数据;以及基于所述对话系统意图和一个或多个所需参数,生成动作指令。

在一个示例中,至少一个处理器可以被进一步配置为基于所述话音输入包括全部缺少的意图参数的确定,从所述话音输入中取得全部缺少的意图参数而不发起所述参数收集对话。所述至少一个处理器可以被进一步配置为生成所述参数收集对话的至少一个预定提示。所述至少一个处理器可以进一步被配置为在执行所述处理器可执行代码时实现以下操作:响应于所述至少一个预定提示,接收所述用户的至少一个另外的话音输入;以及从所述至少一个另外的话音输入中取得所述所需意图参数中的至少一个所需意图参数,直到收集到所有缺少的意图参数。

在一个示例中,至少一个处理器可以被配置为在执行处理器可执行代码时实现以下操作:由开发者平台使得开发者能够创建所述自然话音对话系统的对话代理以自动化收集所需意图参数,所述对话代理与开发者简档相关联。所述至少一个处理器可被配置为在执行所述处理器可执行代码时实现以下操作:由所述开发者平台提供图形界面以:使得开发者能够创建对话代理;以及提供以下中的一个或多个:所述对话系统意图、至少一个意图参数以及针对所述意图参数中的每一个的所述参数收集对话的一个或多个提示;所述开发者平台使得所述开发者能够为所述意图参数指定对话系统实体或数据类型;以及所述开发者平台使得所述开发者能够为所述意图参数中的每一个指定值类型。

在根据本公开的又一示例中,提供了一种其上存储有指令的非暂时性处理器可读介质,所述指令在由一个或多个处理器执行时使得所述一个或多个处理器实现用于自然话音对话系统的方法,所述方法包括:基于至少一个预定意图关键字来识别与所述话音输入相关联的对话系统意图,所述对话系统意图具有所需意图参数;确定所述对话系统的所有所需意图参数的数据是否可用;基于所述确定,选择性地发起与所述对话系统意图相关联的参数收集对话,所述参数收集对话可操作为收集对于所述对话系统意图不可用的所需参数的数据;以及基于所述对话系统意图和一个或多个所需参数,生成动作指令。

本部分不旨在识别要求保护的主题的关键特征或基本特征,也不旨在用作确定所要求保护的主题的范围的辅助。在附图和下面的描述中阐述在本说明书中描述的主题的一个或多个示例的细节。主题的其他潜在特征、方面和优点将从说明书、附图和权利要求书中变得显而易见。

附图说明

在附图的图中通过示例而非限制的方式示出实施例,在附图中,相同的附图标记表示相似的元素。

图1示出了根据本公开的一些实施例的可在其中实现用于为对话系统接口创建定制对话系统引擎的系统和方法的环境。

图2是示出根据示例实施例的用于使用平台创建定制对话系统引擎并用于操作平台的方法的过程流程图。

图3示出了根据本公开的示例实施例的对话系统引擎的高级架构。

图4示出根据本公开的示例实施例的用于创建新对话系统实体的平台接口的图形用户界面(GUI)。

图5示出了根据本公开的示例实施例的用于创建新的对话系统意图的平台接口的GUI。

图6示出了根据本公开的示例实施例的用于提供用于处理对话系统的请求的日志的平台接口的GUI;

图7是示出根据本公开的示例实施例的用于收集意图参数的方法的过程流程图。

图8示出根据本公开的示例实施例的用于创建用于通过参数收集对话收集意图参数的对话代理的平台接口的示例GUI。

图9示出了根据本公开的示例实施例的用于定义对话代理的提示的平台接口的示例GUI。

图10是示出适用于实现本文描述的方法的示例计算设备的高级框图。

具体实施方式

本公开的示例方面通常涉及被配置为维持智能人机交互的自然语言对话系统(为了简单起见也称为“对话系统”)。对话系统可以接收来自用户的话音输入,将话音输入转换为文本输入,并且使用机器学习、统计、启发式或其他合适的算法来处理文本输入。处理的结果可以包括对于用户的响应消息或者由客户端设备或服务器执行的动作。示例动作可能包括发送电子邮件、进行预约、设置通知或提醒、预订酒店、查看天气预报和导航流量等等。

人机交互可以基于对话系统意图,该对话系统意图可以包括方案、规则或在用户输入和对话系统要采取的动作和特别是对话场境之间的映射。可以由对话系统在人机交互过程中通过检测用户输入中的预定关键字或短语来自动识别对话系统意图。例如,当用户要求对话系统预订某个城市的酒店时,可以识别意图。在另一个示例中,当用户请求对话系统向特定收件人发送文本消息或电子邮件时,可以识别意图。在又一示例中,当用户请求对话系统从餐馆订购披萨时,可以识别意图。

处理预定的对话系统意图能够需要收集宽范围的意图参数。例如,当意图需要向接收者发送文本消息的动作时,执行该意图所需且足够的意图参数可以包括文本消息的内容和接收者的姓名。对于被提供以电子方式预订酒店的意图示例,所需参数可以包括目的地城市、房间类型、到达日期、出发日期以及可选的其他参数,诸如酒店评级、酒店名称和酒店服务等。不同于定义多个意图并经由对话场境链接它们,这里公开的示例提供了用于在对话系统中使用的对话代理,使得每个对话代理可以与单个对话系统意图和对话系统意图的一个或多个意图参数相关联。

当特定的对话代理被激活时,可以在检测到用户话音输入中的对话系统意图时发起参数收集对话。参数收集对话可以检测已由用户提供或可从其他来源获得的意图参数。如果确定某些意图参数丢失,则参数收集对话可以向用户提供提示消息以提示用户提供额外的话音输入。提示消息可以被预定义或者可以根据需要被创建,并且被选择来引导用户提供丢失的所需参数以及在某些情况下提供附加的可选参数。对话系统可以从用户的一个或多个额外的话音输入中检索意图参数。

在一些示例中,可以从预存储的数据中获得一些参数。例如,如果用户说“call a taxi service to give me a ride from where I am to home(打电话给出租车服务,把我从当前位置送回家)”,则可以从存储器中获得用户的家庭地址。当至少收集或知晓特定意图所需的最低限度的所有参数时,完成参数收集并且对话系统可以基于意图来生成动作指令。动作指令可以基于意图以及从用户话音输入收集或从别处获得的一些必需和可选的意图参数。然后,对话系统、客户端设备或服务器可以执行动作命令以向用户提供对话响应或执行特定动作。

例如,当用户讲出“Please book a hotel for me in PaloAlto(请在帕洛阿尔托为我预订酒店)”时,对话系统可以识别对话系统意图是“酒店预订”并发起对应的参数收集对话。首先,对话系统可以确定一些所需参数(即,城市是Palo Alto)已经被提供或可以从其他来源获得。对话系统可以进一步确定“酒店预订”意图的其他所需参数(诸如到达日期和逗留时间)仍然缺少。对话系统可以使用提示——诸如“When would you like to arrive?*(你想什么时候到达?)”和“How many nights would you be staying?(你会住几晚?)”——来提示用户提供进一步的话音输入。当用户提供回答时,对话系统可以从输入中检索意图参数并继续提供提示,直到收集到所有缺少的所需意图参数。此外,对话系统可以通过提供汇总输出(诸如,例如“You want me to book a hotel in Palo Alto for you starting next Monday for two nights.Is that correct?(你希望我为你在帕洛阿尔托的一家酒店预订从下周一开始的两晚。对吗?)”——来请求用户确认收集了所需的参数。如果用户肯定回答,则对话系统可以生成包括一个或多个收集参数的电子酒店预订订单,并将其发送到适当的web服务。否则,对话系统可以询问用户需要更改或添加什么。

本文公开的示例还涉及开发者平台,其使软件开发者能够创建定制对话系统引擎和对话代理,包括如上所述的用于收集意图参数的对话代理。通常,对话系统引擎包括与定制对话系统接口进行配合的后端服务。对话系统接口至少可以实现为各个软件应用、移动应用、中间件应用、固件应用、和网站等的一部分来实现。换言之,对话系统接口可以提供被配置为至少获取用户输入并将对话系统输出传递给用户的计算机-人接口。

对话系统引擎可以通过处理用户输入并生成对应的响应(或命令)来支持对话系统接口。因此,对话系统引擎和对话系统接口在彼此交互时可形成对话系统。在某些示例中,在用户设备上运行或从用户设备访问的对话系统接口可以被称为“前端”用户接口,而支持该对话系统接口的操作的对话系统引擎可以被称为“后端”服务。在一些示例中,接口和引擎可以包括客户端-服务器模型,其中,两者经由网络连接进行通信。在其他示例中,对话系统引擎和对话系统接口可以在单个设备上操作,而不需要到服务器的联网连接。

根据本公开的示例,开发者平台可以允许软件开发者创建能够支持前端对话系统接口的定制对话系统引擎。例如,如果软件开发者想要将对话系统功能作为附加特征集成到移动应用中,则开发者可以使用该平台创建和部署定制对话系统引擎,并将定制对话系统引擎与移动应用链接起来。移动应用可能只包含对话系统接口。在这个示例中,用户可以通过与移动应用交互来激活对话系统接口。用户可以以语音输入或文本输入的形式查询对话系统接口。一旦接收到用户查询,对话系统接口就可以在具有或不具有额外的预处理的情况下将查询传送到链接的定制对话系统引擎,其是先前使用开发者平台创建的。定制对话系统引擎可以处理并解释所接收的用户查询,并基于预定的规则和设置生成对查询的响应。该响应然后可以被传递到对话系统接口以供进一步向用户进行视觉或音频呈现。替选地,如果响应包括动作指令(命令),则动作指令可以被执行或发送到服务器、web服务、或客户端设备以供执行。

对话系统接口可以由诸如个人计算机或智能电话的用户设备可执行的或远程地在服务器或计算云资源上的范围广泛的软件应用运行和/或集成到该软件应用中,使得对话系统是网站或web服务的一部分。如上所述,对话系统引擎可以在与接口相同的用户设备上,在与其上实现接口的设备(诸如,经由Bluetooth连接进行通信的移动电话和智能手表)通信的伴随设备上,或者在一个服务器上实现,使得它们的功能能够通过互联网、移动数据网络或任何其他通信网络而可被对话系统接口访问。

图1示出了可适用于实践本公开的示例的示例系统环境100的高级框图。特别地,图1示出了用于创建和维护定制对话系统引擎的平台110。如所示,平台110包括用于创建定制对话系统引擎的平台接口112和用于维护和运行定制对话系统引擎120的后端服务114。在本公开的一些方面中,平台110包括开发者平台。

平台接口112可以包括嵌入网页中并且可以由开发者经由网络访问的图形用户界面(GUI)。在本公开的一些其他方面中,平台接口112可以被实现为软件应用,包括可下载的软件应用或任何其他软件,诸如中间件或运行在电子设备(诸如计算机或智能电话)上或可从其访问的固件。在图1所示的示例中,作为web可访问的GUI(下面更详细地描述)执行平台接口112。为了简单起见,本公开仅提供平台接口112是基于服务器的解决方案以经由互联网可访问的方面。然而,应该理解的是,平台接口112不限于这样的实施方式,并且可以允许通过各种GUI工具来创建一个或多个定制对话系统引擎120或对话代理。

仍然参考图1,后端服务114可以负责维护和运行例如通过或者借助于平台接口112创建的定制对话系统引擎120。后端服务114可以作为web服务来操作,该web服务通过下述方式向定制对话系统提供功能:使其对话系统接口能够与由平台110的后端服务114维护的定制对话系统引擎120交互。

如上所述,可以在客户端侧140上提供对话系统接口130。对话系统接口130可以是GUI,其使得用户能够进行查询(然后将该查询传送到后端服务114以供对应的对话系统处理引擎120处理),并且接收对由对话系统引擎120产生的对于查询的响应。对话系统接口130可以被实现为独立的软件应用,或者其可以被集成到另一个软件应用、web服务和网站等。应该理解的是,仅出于解释的目的说明了客户端-服务器模型。这里公开的系统不需要是客户端-服务器系统,并且在某些示例中,对话系统接口130和对话系统引擎120可以在同一个(例如,用户)设备上。

客户端侧140可以包括用户设备、客户端设备、终端、门户(portal)、用户设备、计算设备(例如,膝上型计算机、平板计算机、台式计算机、工作站、个人计算机和智能电话)、个人数字助理、游戏控制台、遥控器、多媒体系统、智能电视设备、机顶盒、信息娱乐系统、车载计算设备、信息亭和机器人等等。在这些示例中,一个或多个对话系统接口130可以被实现为软件、中间件或固件。

在附加示例中,客户端侧140可以指代诸如服务器、web托管服务、web服务、网站、和云服务等的联网或在线解决方案。例如,对话系统接口130可以包括提供在一个或多个网页上的小组件(widget)或GUI,以允许最终用户进行查询并接收对其的响应。在例如开发者想要将对话系统集成到网站中以提供增强的客户服务的情况下,此选项可以适用。

从图1中可以看出,对话系统接口130和对应的定制对话系统引擎120之间的交互正在经由通信网络150进行。通信网络150可以包括以下中的一个或多个:互联网、内联网、移动数据网络、局域网络、广域网、基于IEEE 802.11的网络、个人区域网络(例如,Bluetooth、Zigbee)和红外线等等。

图1还示出了各种第三方web资源/服务160,其可以向定制对话系统引擎120或对话系统接口130提供信息作为对话系统响应的一部分或者执行某些动作或操作。例如,web资源/服务160可以提供电子邮件服务、天气服务、导航服务、酒店预订服务、出租车预约服务、在线购物服务、电子商务服务、预约服务、和提醒服务等。相应地,如果用户说“What is the weather like today?(今天天气怎么样?)”,则对话系统引擎120可以从一个或多个第三方web资源/服务160自动获取对应的信息,并将其集成到待传递给用户的对话系统响应中。如果用户说“Send an email to John to invite him to my party tonight(发送电子邮件给约翰邀请他参加我今晚的聚会)”,则对话系统引擎120可以使得第三方web资源/服务160创建电子邮件并将该电子邮件发送到与收件人相关联的电子邮件地址。

现在将参照图1和其他附图描述创建和操作定制对话系统引擎120的示例过程。具体而言,平台接口112可以提供一个或多个GUI,其具有使得开发者能够创建和定制一个或多个“对话系统元素”的多个工具,其用作定制对话系统引擎的基础。

根据各个示例,对话系统元素至少包括“实体”和“意图”。每个实体可以包括具有基本相同或相似特性的多个对象。换言之,实体可以包含定义类的对象的关键字列表。在一个示例中,实体可以包括关键字和与关键字相对应的一组同义词。在另一个示例中,实体可以包括关键字和与关键字相对应的一组定义。在又一个示例中,实体可以包括列表(例如,城市列表、名称列表、标题列表、品牌列表以及街道名称列表)。在一些示例中,实体可以用在特定的对话代理中并且取决于预期作为代理功能的结果返回的参数值。

在本公开的一些示例中,开发者可能不需要为对话代理中提及的每个概念——仅针对可动作数据所需的那些概念——创建实体。例如,可以有三种类型的实体。第一类型可以包括系统实体,例如,通用日期引用、时间引用、数字引用和城市引用。第二类型可以包括开发者实体,例如被映射到引用值的任何独特的同义词组,使得开发者可以通过用具有“veg”和“veggie”的同义词的“vegetarian(素食者)”引用值来创建食物类型实体。第三类型可以包括用户实体,例如为特定最终用户定义的实体,诸如特定于用户偏好的播放列表实体。此外,这些实体中的每一个都可以是映射(具有引用值)、枚举类型(没有引用值)或复合体(包含具有别名和返回对象类型值的其他实体)。

在一些示例中,与实体相关联的对象列表可以被自动扩展。例如,可以使用机器学习算法来建议要与该实体相关联的一个或多个新对象。机器学习算法可以使用大型文本和/或词汇表进行训练。作为示例而非限制,定制对话系统引擎120的开发者可以定义具有诸如New York(纽约)和Los Angeles(洛杉矶)的值的实体@city。如果定制对话系统引擎的用户讲出或录入词“Washington,D.C(华盛顿特区)”,则实体@city(城市)可以自动扩展到New York、Los Angeles和Washington,D.C,因为机器学习算法可以确定“Washington,D.C”与实体@city中列出的对象有关。在一些示例中,可以要求用户确认建议的对象与一个或多个实体有关。

在进一步的示例中,实体可以包括其他实体的列表。例如,开发者可以将实体@car(车)定义为实体列表(@make(品牌),@model(型号)),其中,值@make和@model被设置为@make和@model可以关联的任何对象。例如,实体@car可以包含复合对象,如{make:“Honda”;model:“Accord”}和{make:“Ford”;model:“Fiesta”}等等。

此外,每个意图可以包括描述用户请求和对话系统响应之间的特定关系的对话系统交互方案或规则。换言之,意图可以表示用户所说的内容和软件应用要采取的动作之间的映射。在一个示例中,意图可以被确定为明确包括实体的一个或多个引用的模式。示例模式可以包括“@city:city中的天气如何”,其中,“@city:city”是对于实体@city和在实体@city内的参数city的引用。在某些其他示例中,为了确定意图,开发者可以仅仅提供示例请求(短语)来说明意图和实体,而不是提供包含“实体”的明确引用的模式。在这样的示例中,平台110使用机器学习技术自动确定示例请求中暗示什么“实体”和“意图”。

基于示例输入,平台110可以创建对应的动作。每个动作可以包括名称(实体)和一个或多个参数。例如,可以输入一个请求如下:“Weather forecast for Los Angeles(洛杉矶天气预报)”。机器学习技术可以使用名称“weather”和参数名称:数据类型@city的城市来确定动作。

因此,开发者可以使用平台接口112来生成多个实体和多个意图,这两个意图都是特定于特定应用或行业的。这些多个实体和意图可以形成对话系统引擎120并且使得对话系统引擎120能够响应于范围广泛的最终用户输入而执行某些动作或生成某些输出。在某些示例中,意图可以包括通用结构,其包括:意图名称(仅用于用户引用)、模式和/或示例请求列表、动作名称、与动作相关联的参数、以及与动作相关联的履行。履行可能包括文本(屏幕上突出显示的文本)或对web服务的调用,并且向数据库发出请求,等等。在一些示例中,平台112可以向开发者提供动作并且允许开发者将与动作相关联的定制履行直接集成到定制对话系统引擎120中。在某些示例中,开发者可以接收动作(动作名称和参数),并且将定制履行集成到到客户端侧140内。例如,定制履行可以包括对网站或数据库的请求以检索信息(例如,预测、交通信息和导航),并且执行对话系统接口正在其上运行的设备的一些操作,等等。

在一些示例中,对话系统元素可以包括一个或多个场境。场境可以包括包含在特定最终用户的会话期间意图的标签、关键字或线索的一个或多个参数。场境可以包括标签的前置条件和布尔表达式。可以基于输入场境来触发意图。例如,当满足某个前提条件或前提条件的布尔表达式为真时,可以触发意图。当基于用户的请求执行意图时,输出场境被设置到最终用户会话中。在各个示例中,可以在包括若干用户请求的用户会话内为输出场境指派特定的使用期限。在一些示例中,输出场境的使用期限可以被测量为在用户会话期间作出的请求的数目。在用户会话内,存在:当前场境状态,其在响应下一个用户请求执行意图之前存在;以及执行后(post-execution)场境状态,其在执行意图之后设置。执行后场境状态可以包括基于用户请求和执行意图的结果的一个或多个新添加的场境。一些旧的场境可以基于执行意图的结果或由于其期满而从执行后状态中被删除。

场境可以是表示用户请求的当前场境的字符串。这有助于区分短语,这些短语取决于用户的偏好或地理位置或交谈的话题而可能含糊或具有不同的含义。例如,如果用户正在收听音乐播放器应用,并发现了可以引起他兴趣的乐队,则他可能会说类似“I want to hear more of this(我想听到更多这样的)”的话。开发者可以在请求的场境中包含乐队的名称,以使得对话代理可以更有效地处理它。在另一个示例中,开发者是智能家居设备的制造者,并且具有远程控制家用电器的移动应用。用户可能会说“Turn on the front door light(打开前门灯)”,然后说“Turn it off(把它关闭)”,并且移动应用会明白第二短语仍然指代该灯,因为它处于相同的场境中。现在稍后,如果用户说“Turn on the coffee machine(打开咖啡机)”,其后是“Turn it off”,则由于新的场境,它会导致与以前不同的操作。场境还可以与用户会话相联系(例如,与在API调用中传递的会话标识符相联系)。如果用户表达式与意图匹配,则意图可以设置将来由该表达式共享的输出场境。

在进一步的示例中,可以将一个或多个属性或参数指派给每个场境。这些属性可以在执行意图期间识别并用于与意图相关联的动作中。从场境中检索的值可以形成该动作的参数。这些属性可以进一步放置在执行意图后设置的输出场境中。

图2是示出根据在此公开的一个方面的,用于使用平台110创建定制对话系统引擎并且用于操作平台110的方法200的过程流程图。方法200可以通过处理逻辑来执行,所述处理逻辑可以包括硬件(例如,决策逻辑、专用逻辑、可编程逻辑、和微码)、软件(诸如在通用计算机系统或专用机器上运行的软件)或者两者的组合。在一个示例中,处理逻辑指代图10中所示的平台110或计算设备的一个或多个组件。可以按照与图2所述和所示不同的顺序来实现方法200的步骤。此外,方法200可以具有本文未示出的附加步骤,但是对于本领域技术人员而言,其根据本公开内容可以是显而易见的。方法200也可以具有比以下概述和在图2中示出的更少的步骤。

方法200可以在操作202处开始,其中使得开发者能够向平台110注册并且通过包括至少一个处理器和存储处理器可执行代码的存储器的第一服务器来创建开发者简档。为了这些目的,开发者与平台接口112进行交互。开发者简档可以虚拟地链接(关联)开发者的定制对话系统引擎120和部署在客户端侧140上的一个或多个对话系统接口130。该链接可以包括规定应用编程接口(API)代码、交互规则和目标地址等等。在某些示例中,开发者简档可以被多个开发者访问。在操作202处,该方法可以允许开发者创建一个或多个对话系统。每个对话系统可以与访问标识符(ID)相关联。访问ID可以用于经由认证来从客户端侧140访问对话系统。在各个示例中,访问ID可以包括令牌和数字密钥等等。

在操作204,平台110可以从开发者接收一个或多个对话系统实体,并将其存储在存储器或数据库中。在一些示例中,实体不是被接收到的,而是由开发者使用平台接口112的web工具创建的。对话系统实体可以包括关键字和关键字的至少一个同义词、关键字和关键字的至少一个定义、和定义一个类的对象的关键字列表等等。对话系统实体也可以与一个或多个参数相关联或包括一个或多个参数。

在操作206,平台110从开发者接收一个或多个对话系统意图并将其存储在存储器或数据库中。在一些示例中,对话系统意图不是被接收到的,而是由开发者使用平台接口112的工具创建的。如上所述,意图形成对话系统元素(使得对话系统引擎能够生成针对特定需求定制的响应的定制逻辑)。对话系统意图可以包括对话系统交互方案、定义用户请求和对话系统响应之间的关系的规则和在特定动作与一个或多个对话系统实体之间的关系的规则等等。在一些示例中,开发者可以明确地定义要在一个或多个对话系统意图中使用的一个或多个对话系统实体。另外或替选地,开发者可以提供示例请求(短语)。基于示例请求,平台110可以建议一个或多个对话系统实体。为了建议实体,在操作204,平台110可首先搜索由开发者提供的实体列表中的适当实体。在一些示例中,平台110可经由机器学习技术来建议新的对话系统实体。可以使得开发者能够批准、修改或更改所建议的新对话系统实体的参数。开发者还可以提供一个或多个意图参数。

应该注意的是,实体的定义不是静态的。在进一步的操作期间,平台110可以动态地重新定义由开发者定义的实体。实体可以基于用户简档、偏好、和用户请求等来被重新定义(增强)。重新定义的实体被平台110用于进一步的处理。

在操作208,平台110可以将一个或多个对话系统意图与一个或多个对话系统动作相关联以创建一个或多个定制对话系统引擎120或对话代理。定制对话系统引擎120与开发者的一个或多个对话系统接口130相关联。每个动作都由与对话系统实体关联的名称和一组别名定义。

操作202-208说明了定制对话系统引擎120(对话代理)的设置过程,而操作210-218说明了操作定制对话系统引擎120的过程。特别地,一旦定制对话系统引擎120的所有对话系统元素被创建,它们便被维持为后端服务并且使得任何相关联的对话系统接口130能够根据预定的设置来向用户提供对话系统的全部功能。

具体地,在操作210,平台110可以从未识别的对话系统接口130接收用户请求。用户请求可以是语音(话音)输入或文本输入。在一些示例中,对话系统接口130可以例如通过辨识说出的词并将语音输入转换为文本输入而预处理用户输入。在其他示例中,预处理可以包括音频增强、噪声消除和加密/解密等。然而,在其他示例中,对话系统接口130不执行预处理。

在操作212,平台110处理用户请求,并识别对话系统接口130。识别过程可以基于从用户请求中检索对话系统接口130的标识符。例如,在用户请求从对话系统接口130发送到平台110时,用户请求可以伴随有标识符。

在操作214处,基于在操作212处的识别结果,平台110激活与所识别的对话系统接口130相关联的定制对话系统引擎120。在相同的操作214处,平台110还可以基于在操作212处的识别结果来检索或识别一个或多个对话系统元素(即,一个或多个实体以及一个或多个意图)。在操作214,平台110可以识别与用户请求和特定请求会话相关联的场境(其一个或多个标签、关键字、线索和逻辑表达)。

在操作216,定制对话系统引擎120使用在操作214检索到的对话系统元素(即,一个或多个实体以及一个或多个意图)来处理用户请求。可基于场境来触发意图。场境可以被预先定义,基于用户请求来被确定,以及在触发一个或多个意图之后被进一步改变。场境对于特定用户和用户的特定会话而言可以是特定的。参照图3进一步描述对话系统处理的一些示例。

在操作218,定制对话系统引擎120可以生成响应并将其发送到与定制对话系统引擎120相关联的对话系统接口130。响应可以包括特定数据(例如文本消息)和/或和一个或多个动作。每个动作可以包括使用一个或多个意图和一个或多个实体所识别的动作的名称和一组参数。然后,对话系统接口130可以根据预定的设置来向最终用户显示或回放文本消息。对话系统接口130还可以使用动作名称和参数组基于一个或多个动作并且根据与动作相关联的定制履行来执行一个或多个操作。在一些示例中,定制对话系统引擎120可以处理定制履行并将结果发送到对话系统接口130。定制对话系统引擎120的响应还可以指代可以由客户端设备、web资源/服务160、平台110或远程服务器执行的动作指令。

图3示出根据一个示例的对话系统引擎120的高级架构300。应该注意,对话系统引擎120或关联的架构的每个模块都包括硬件组件、软件组件或其组合。对话系统引擎120可以被嵌入或安装在用户设备或服务器中,或者可以被呈现为云计算模块和/或分布式计算模块。

在图3所图示的示例中,对话系统引擎120包括自动话音辨识器(ASR)310,其被配置为接收基于话音的用户输入并将其处理为参数向量序列。ASR 310进一步将参数向量序列转换成辨识的输入(即,具有一个或多个词、短语或句子的文本输入)。ASR 310包括一个或多个话音辨识器,诸如基于模式的话音辨识器、自由听写辨识器、基于地址簿的辨识器和动态创建的辨识器等等。

此外,对话系统引擎120包括用于理解说出的语言输入的自然语言处理(NLP)模块320。具体而言,NLP模块320可以分解和解析所辨识的输入以产生话语,然后利用例如形态学分析、词类标记、浅解析、神经网络、机器学习分类器、和模式挖掘分类器等来分析所述话语。然后,NLP模块320可以将辨识的输入或其部分映射到意义表示。

对话系统引擎120进一步包括对话管理器330,其协调所有组件的活动,控制对话流,并与外部应用、设备、服务、或资源通信。对话管理器330可以扮演许多角色,其包括语篇分析、知识数据库查询、以及基于语篇场境的系统动作预测。在一些示例中,对话管理器330可联系可具有关于特定任务域的知识的一个或多个任务管理器(未示出)。在一些示例中,对话管理器330可以与各个计算、逻辑或存储资源340进行通信,所述计算、逻辑或存储资源340可以包括例如内容存储、规则数据库、推荐数据库、推送通知数据库、电子地址簿、电子邮件或文本代理、对话历史数据库、相异的知识数据库、地图数据库、兴趣点数据库、地理位置确定器、时钟、无线网络检测器、搜索引擎、社交联网网站、博客网站、和新闻馈送服务等等。在一些示例中,计算或存储资源340包括上面讨论的一个或多个web资源/服务160。

在操作期间(例如,在对话会话内),对话管理器330可以根据输入和输出场境来控制对话流。输入场境表示意图执行的一些前提条件。只有在一定输入场境存在于用户请求中时或作为执行先前意图的结果的情况下,才会触发特定意图。如果可以基于相同的场境来触发若干意图,则关于要执行哪个意图的决策可以基于与场境相关的意图的权重、场境的年龄、以及如在偏好中指定的其他参数。较新的场境可以具有较高的优先级。可以在匹配和执行意图时设置输出场境。

在各个示例中,对话管理器330可以将用户请求传递给对话系统。对话系统可以包括由开发者设计的定制对话系统,如图1和图2中所述。同时,在一些示例中,用户请求可以并行发送到任务域。任务域是预构建的对话系统,其可以处理请求并提供回答。在一些示例中,如果定制对话系统未能提供对用户请求的回答,则对话管理器330继续处理从任务域接收到的回答。

对话管理器330可以采用多个不同的方法来响应于辨识的输入而生成输出。一些方法包括使用统计分析、机器学习算法(例如,神经网络)和启发式分析等等。对话管理器330是对话系统引擎120的中心组件之一。对话管理器330的主要作用是基于观察到的证据和来自NLP结果的推断对话状态(例如,对话动作、用户目标和语篇历史)来选择正确的系统动作。另外,当用户输入具有由噪声或非预期输入引起的ASR和NLP错误时,对话管理器330可以处置错误。

对话系统引擎120还可以包括输出渲染器350,用于将对话管理器330选择的动作变换为适合于向用户提供的形式或以计算机可实现或处理器可实现的指令的形式(例如,API代码)的输出。例如,输出渲染器350可以使用文本到话音引擎,或者可以联系预先记录的音频数据库以生成对应于对话管理器330的输出的音频消息。在某些示例中,输出渲染器350可以将对话管理器330的输出呈现为或致使将其呈现为文本消息、图像或视频消息以供进一步显示在用户设备的显示屏幕上。

在其他示例中,输出渲染器350向客户端侧140上的对话系统接口130提供所选动作(动作名称和参数组)。开发者可以配置对话系统接口130以处理所选动作,并执行一个或多个所需的操作,如向web服务发送请求、数据库操作、显示文本消息、在用户设备上播放音频或视频、生成文本、和通过文本转话音系统来处理它等等。在一些示例中,开发者可以配置定制对话系统引擎120以根据与动作相关联的履行来处理动作并将结果提供给对话系统接口130。

图4示出了用于如上所述创建新对话系统实体的平台接口112的示例GUI 400。当开发者期望创建定制对话系统引擎120时,他可以使用诸如GUI 400的平台接口112的web工具来定义对话系统实体和意图。使用GUI 400,开发者可以在由GUI 400提供的对应域中录入关键字的引用值402并录入所提供的引用值的同义词404。对话系统实体可以包括关键字(或引用值)以及关键字的同义词、关键字和关键字的定义、以及定义一类对象的关键字的列表等等。关键字或引用值及其同义词和/或定义组成对话系统实体。

在一些示例中,每个实体可以具有标题。例如,一个实体可以被称为“城市”,并包含诸如Arlington、Boston和Chicago等的城市的列表。在其他示例中,实体可以被称为关键字,并且其可以包含该关键字的同义词或定义。在一个示例中,称为“音乐”的实体可以包括歌曲、歌手、歌唱和音乐家等的词项。在另一个示例中,称为“艺术家”的实体可以包括音乐乐队、音乐团、或音乐艺术家的列表。在另一个示例中,称为“Beatles”的实体可能包括一系列可能的同义词,如“The Beatles”、“Beatles”、“Fab Four”、“Liverpool Legends”和“John Lennon”等等。在又一个示例中、可以存在称为“艺术家”的实体、其可以包括各个艺术家姓名、艺术家姓名同义词、和音乐乐队名称等等。

图5示出了用于如上所述创建来新的对话系统意图的平台接口112的示例GUI 500。对话系统意图可以定义用户请求和对话系统响应之间的关系,并且可以基于特定动作和实体之间的关系而与规则相关联。一般而言,每个意图可以表示为以下计算机可读程序"[Action]@[Entity]"或"[Action]@[Entities]"。使用GUI 500,开发者可以添加用户表达502(例如,"Weather@city"))来说明意图和实体。基于用户表达502,平台110使用机器学习技术来自动确定示例请求中隐含什么实体和意图,并创建对应的规则。例如,开发者可以简单地提供示例请求,诸如“Weather forecast for Los Angeles(洛杉矶的天气预报)”。平台110可将“Los Angeles”与现有实体(系统或用户定义的)匹配并自动生成对应的"[Action]@[Entity]"规则。另外地或替选地,开发者可以在明确呈现一个或多个实体的情况下提供示例请求,诸如“What is the weather in@say.geo-city:geo-city-us(@say.geo-city:geo-city-us的天气怎样)”。在图5的示例中,与动作506相关联的“weather”和参数是"geo-city-us"和"geo-city"。开发者可以进一步修改动作506并为动作506提供履行508。

所创建的规则意味着特定的动作应由客户端侧140(或服务器、web服务等)关于该实体或若干实体执行。例如,一个意图可以表示为“looking up forecast for$geo-city-us(查找对$geo-city-us的预报)”。在这个示例中,意图命令对话系统引擎120查找Los Angeles的预报。

在一些示例中,GUI 500提供对于机器学习的控制510。切换机器学习算法可以允许处置范围从硬/刚性匹配到广泛的模糊或机器学习匹配的匹配的模糊性。

在一些示例中,平台接口112可以提供GUI以供提供请求的日志,并且处理与特定对话系统最终用户或一组最终用户相关联的意图。图6示出了用于提供特定用户的请求的日志的示例GUI 600。

在各个示例中,平台接口112可以向开发者提供用于对定制对话系统的效能的统计分析的工具。得到的统计数据可能包括会话数目、请求数目、已分类请求数目(至少有一个意图针对其而被触发)、未分类请求数目(未针对其触发意图)、请求的查准率、查全率、和F分值等。在一些示例中,基于机器学习聚类来将未分类的请求分成群组。

在进一步的示例中,平台接口112可以提供用于通过开发者或机器学习技术来标记在未分类请求中的实体以修改或生成针对所述请求的新实体、意图、动作和履行的工具。平台接口112可以包括用于通过一个或多个定制对话系统对请求进行重新分类的工具。

图7是示出根据示例的用于收集意图参数和操作对话系统的方法700的过程流程图。方法700可以通过处理逻辑来执行,该处理逻辑可以包括硬件(例如,决策逻辑、专用逻辑、可编程逻辑专用集成电路(ASIC)、和微码)、软件(诸如在通用计算机系统或专用机器上运行的软件)或者两者的组合。在一个示例中,处理逻辑指代平台110、后端服务114、定制对话系统引擎120,计算设备1000或其任何组合。方法700的以下记载的步骤可以按照与图中所述和所示不同的顺序来实现。此外,方法700可以具有在此未示出的附加步骤,但是其对于本领域技术人员而言,根据本公开内容可以是显而易见的。方法700也可以具有比以下概述和在图7中所示的更少的步骤。

方法700可以在操作702处开始,其中对话系统(例如,定制对话系统引擎120)接收用户的话音输入。话音输入可以通过对话系统接口130提供给客户端140。话音输入可以在客户端140或通过对话系统进行处理。例如,话音输入可以被辨识并转换成计算机可读的文本输入。

在操作704,对话系统(例如,定制对话系统引擎120)可以基于话音输入的至少一个预定意图关键字来识别或确定与话音输入相关联的对话系统意图。换言之,对话系统可以处理话音输入以确定一个或多个意图关键字是否指代预定意图之一。例如,话音输入“Please order a pizza for me(请为我订购披萨)”包括意图关键字“order”和“pizza”,其可以引起触发或检测预定的“Order Pizza(订购比萨)”意图(其可以由开发者先前经由平台110创建)。对话系统意图可以指示进入用于收集意图参数的参数收集对话的入口点。在给定的示例中,意图参数可以包括披萨大小、饼皮类型、配料的选择、酱、送货地址、送货时间和供应商等。因此,意图参数可以与参数名称及其值相关联。参数值可以包括数值、词、短语、声音或图像。在一些实施方式中,可以从预定值的列表中选择一些或全部意图参数(例如,可以从预定城市名称的列表中选择一个意图参数)。

在操作706,对话系统可以确定话音输入是否已经包括所有缺少的所需意图参数。如果确定在操作702给出的话音输入中存在所有缺少的所需意图参数,则该方法可以进行到操作708。在操作708,对话系统可以从话音输入中识别并收集缺少的所需意图参数。收集到的所需意图参数可以临时存储在高速缓存或存储器中。

在操作710,一旦收集到所有所需的缺少的意图参数,对话系统便基于意图和意图参数来生成与对话系统相关联的动作指令。动作指令可被配置为基于动作指令和一个或多个意图参数来使得对话系统、服务器、用户设备、或对话系统接口实现预定动作。在上述给出的示例中,动作指令可以指代可以发送到预定web服务160的电子购买订单,以用于基于之前收集的意图参数来订购比萨。因此,在一些示例中,动作指令可以包括被配置为引起API服务的API特定响应(或API代码)。例如,动作指令的API代码可以处于JavaScript对象标记(JSON)格式。

在一些示例中,在操作710处,在生成动作指令之前,对话系统可以生成响应消息并将其呈现给用户。响应消息可以重复收集的意图参数中的一个或多个并要求用户确认意图参数是否正确。例如,对话系统可以生成要经由对话系统接口130传递的文本或音频消息,例如“You want to order a large margherita pizza to be delivered to your home in an hour.Is that correct?(你想要在一个小时内将大份玛格丽塔比萨送到你家。对吗?)”如果用户作出肯定响应,则对话系统可以继续如上所述来渲染动作指令。否则,对话系统可以提供一个或多个提示来要求用户阐明他的请求。

如果在操作706处确定初始话音输入(在操作702处获取)不包括所有缺少的所需意图参数,则该方法可以进行到操作712,如图7所示。在操作712处,对话系统可以发起与在操作704处识别的意图相关联的预定参数收集对话。预定参数收集对话可以包括对话系统可以询问以获得缺少的所需意图以及在一些示例中可选的意图参数的多个提示消息参数。因此,在操作712处,对话系统向用户提供一个或多个提示以提示用户输入一个或多个缺少的意图参数。例如,在操作712,对话系统可以询问用户“What pizza size would you like-large,medium or small?(你想要哪种比萨尺寸——大、中或小?)”或者“Tell me what toppings you would like to have?(告诉我你想要有什么配料?)”

在操作714,对话系统可以接收来自用户的一个或多个附加话音输入,其包括对在先前操作中给出的提示的回答。对话系统可以从附加话音输入或从其他来源检索所需的意图参数。在操作716,对话系统可以确定是否所有所需的意图参数都可用。如果确定所有所需的意图参数都可用,则该方法可以前进到操作710。否则,如果确定不是所有所需的意图参数都可用,则该方法可以返回到操作712,如图7中所示。可以重复操作712、714和716,直到收集到所有缺少的所需意图参数。

如上所述,平台110可以使得开发者能够创建或修改自然话音对话系统的对话代理,以自动化收集所有所需的意图参数。每个开发者可以具有开发者简档,其中平台110存储所有的开发者的定制对话系统引擎和对话代理。图8示出根据示例的,用于在参数收集对话中创建用于收集意图参数的对话代理的平台接口112的示例GUI 800。

如图8所示,GUI 800包括可引起创建对话系统意图的可动作按钮802。例如,开发者可以创建电子预订酒店的意图,并创建用于该意图的参数收集对话,以收集用于恰当预订酒店预约所需的所有意图参数。首先,开发者可以命名新创建的意图,诸如“预订酒店”意图,如图8中的小组件804所示。此外,开发者可以经由GUI 800的界面来提供能够触发对该意图的激活的一个或多个示例短语或关键字。为了这些目的,开发者可以通过小组件806来提供示例短语或关键字。用于“book a hotel(预订酒店)”意图的一些示例短语或关键字包括“book a hotel”、“book a hotel in@sys.geo-city:city(预订@sys.geo-city:city中的酒店)”或者“book a hotel in@sys.geo-city:city on@sys.date:date(预订@sys.date:date时间的在@sys.geo-city:city的酒店)。”在这里,@sys.geo-city:city和@sys.date:date分别指代实体“城市”和“日期”。换言之,在一些示例中,用于触发意图的示例短语或关键字可以与一个或多个实体相关联。通过点击按钮808,开发者可以添加与该意图相关联的附加示例短语或关键字。

此外,当对话系统执行意图时,开发者可以选择预定动作之一或创建要执行的新动作。这里,小组件810示出了开发者选择了预定动作之一或创建了可以通过平台接口112的另一个GUI来定制的新动作“bookhotel”。此外,开发者可以提供一个或多个意图参数,在与用户对话的过程中激活参数收集对话时将在参数收集对话中收集该一个或多个意图参数。意图参数可以包括“城市”和“日期”等等。如图8所示,经由GUI小组件812提供、识别或修改意图参数。通过点击按钮814,开发者可以将新的意图参数添加到列表。每个意图参数可以具有多个特性。例如,开发者可以指定意图参数是否是必需(强制)的或可选的。此外,开发者可以提供或修改参数名称、参数数据类型、和参数值,并提供一个或多个提示消息。对话系统可以在参数收集对话期间询问每个意图参数的提示消息以获取所有缺少的意图参数值(例如,如上面参考方法700的操作712和714所述)。

图9示出根据示例的,用于定义对话代理的提示的平台接口112的示例GUI。如图所示,每个意图参数可以与参数名称(例如城市)、参数数据类型(例如@sys.geo-city)、参数值(例如$city)以及一个或多个提示消息902相关联。这里,参数数据类型和参数值可以指代对话系统实体。此外,提示消息902可以指代“Where are you going?(你要去哪里?)”和“What is the destination?(目的地是什么?)”开发者可以提供他想要的所有提示。选择和向用户传递提示的顺序可以是任意的或由开发者预先确定的。

如上所述,一些参数可以是强制的(必需的)以便向用户要求并且从用户收集它们的相应值,而一些其他参数可以是可选的。例如,“城市”参数可以是强制性的,但连锁酒店的名称可以是可选的。

图10是图示适用于实现本文中所描述的方法的计算设备1000的高级框图。具体的,计算设备1000可以用于由开发者创建和修改对话系统并用于执行对话系统。计算设备1000可以包括多种类型的设备中的一个或多个、作为其或者作为其必需部分,该多种类型的设备诸如通用计算机、台式计算机、膝上型计算机、平板计算机、服务器、上网本、移动电话、智能电话、信息娱乐系统、智能电视设备等等。在一些示例中、计算设备1000可以被视为客户端设备、服务器、平台110或对话系统的实例。

如图10所示、计算设备1000包括一个或多个处理器1010、存储器1020、一个或多个大容量存储设备1030、一个或多个输入设备1050、一个或多个输出设备1060、网络接口1070、一个或多个可选外围设备1080、以及用于操作地互连上面列出的元素的通信总线1090。处理器1010可以被配置为实现功能和/或处理用于在计算设备1000内执行的指令。例如,处理器1010可以处理存储在存储器1020中的指令和/或存储在存储设备1030上的指令。这样的指令可以包括操作系统或软件应用的组件。

根据一个示例,存储器1020被配置为在操作期间在计算设备1000内存储信息。在一些示例中,存储器1020可以指代非暂时性计算机可读存储介质或计算机可读存储设备。在一些示例中,存储器1020是临时存储器,这意味着存储器1020的主要目的可能不是长期存储。存储器1020还可以指代易失性存储器,这意味着当存储器1020没有接收电力时,存储器1020不维持存储的内容。易失性存储器的示例包括随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)以及本领域已知的其他形式的易失性存储器。在一些示例中,存储器1020用于存储由处理器1010执行的程序指令。在一个示例中,存储器1020由软件应用使用。通常,软件应用指代适用于实现如本文所述的用于收集意图参数和操作对话系统的方法的至少一些操作的软件应用。

大容量存储设备1030还可以包括一个或多个暂时性或非暂时性计算机可读存储介质和/或计算机可读存储设备。在一些示例中、大容量存储设备1030可以被配置为存储比存储器1020更大量的信息。大容量存储设备1030也可以被配置用于长期存储信息。在一些示例中,大容量存储设备1030包括非易失性存储元件。这样的非易失性存储元件的示例包括磁性硬盘、光盘、固态盘、闪存、电可编程存储器(EPROM)或电可擦和可编程存储器的形式、以及本领域中已知的其他形式的非易失性存储器。

仍参考图10,计算设备1000还可以包括一个或多个输入设备1050。输入设备1050可以被配置为通过触觉、音频、视频、或生物计量通道接收来自用户的输入。输入设备1050的示例可以包括键盘、小键盘、鼠标、轨迹球、触摸屏、触摸板、麦克风、视频相机、图像传感器、指纹传感器、或能够检测来自用户或其他源的输入并且将输入中继到计算设备1000或其组件的任何其他设备。输出设备1060可以被配置为通过视觉或听觉通道向用户提供输出。输出设备1060可以包括:视频图形适配器卡;诸如液晶显示器(LCD)监视器、发光二极管(LED)监视器、或有机LED监视器的显示器;声卡;扬声器;照明设备;投影仪;或能够生成用户可理解的输出的任何其他设备。输出设备1060还可以包括触摸屏、存在敏感显示器或本领域已知的其他具有输入/输出能力的显示器。

计算设备1000还可以包括网络接口1070。网络接口1070可以用于经由一个或多个网络与外部设备进行通信,该一个或多个网络诸如一个或多个有线、无线或光学网络,包括例如互联网、内联网、局域网、广域网、蜂窝电话网络(例如,全球移动通信系统网络、长期演进通信网络、分组交换通信网络、电路交换通信网络)、Bluetooth无线电、和基于IEEE 802.11的无线电高频网络等。网络接口1070可以是网络接口卡,诸如以太网卡、光收发器、射频收发器或可以发送和接收信息的任何其他类型的设备。

计算设备1000的操作系统可以控制计算设备1000或其组件的一个或多个功能。例如,操作系统可以与软件应用交互并且可以促进软件应用与处理器1010、存储器1020、存储设备1030、输入设备1050、输出设备1060、和网络接口1070之间的一个或多个交互。操作系统可以与软件应用或其组件进行交互或以其他方式耦合到软件应用或其组件。在一些示例中,软件应用可以被包括在操作系统中。

因此,已经描述了用于收集对话系统中的意图参数的方法和系统。虽然已经参考具体示例描述了某些方面,但显而易见的是,可以对这些示例进行各种修改和改变而不偏离本申请的更广泛的精神和范围。因此,说明书和附图应被视为说明而非限制。

前面的具体实施方式包括对形成具体实施方式的一部分的附图的引用。本部分描述的方法不是权利要求的现有技术,并且不被承认为通过包含在本部分中而成为现有技术。附图示出了根据本文公开的示例的说明。在本文中也被称为“示例”的这些示例被足够详细地描述以使得本领域技术人员能够实践本主题。在不脱离要求保护的范围的情况下,可以组合示例,可以使用其他示例,或者可以进行结构、逻辑和操作改变。因此以下具体实施方式不作为限制,并且范围由所附权利要求书及其等同物来限定。

以上提供的示例在附图中通过统称为“元素”的各个框、组件、电路、步骤、操作、过程、算法等来引用。可以使用电子硬件、计算机软件或其任何组合来实现这些元素。这些元素被实现为硬件还是软件取决于特定的应用和对整个系统施加的设计约束。

举例而言,可以用包括一个或多个处理器的“处理系统”来实现元素、元素的任何部分、或元素的任何组合。处理器的示例包括微处理器、微控制器、中央处理单元(CPU)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、可编程逻辑器件(PLD)、状态机、门控逻辑、分立硬件电路、以及被配置为执行贯穿本公开描述的各种功能的其他合适的硬件。处理系统中的一个或多个处理器可以执行软件、固件或中间件(统称为“软件”)。术语“软件”应被广泛地解释为表示指令、指令集、代码、代码段、程序代码、程序、子程序、软件组件、应用、软件应用、软件包、例程、子例程、对象、可执行程序、执行线程、程序、功能等,而无论是被称为软件、固件、中间件、微码、硬件描述语言还是以其他方式称呼。

因此,在一个或多个示例中,所描述的功能可以用硬件、软件或其任何组合来实现。如果以软件实现,则功能可以在非暂时性计算机可读介质上被存储或编码为一个或多个指令或代码。计算机可读介质包括计算机存储介质。存储介质可以是可以被计算机访问的任何可用介质。作为示例而非限制,这样的计算机可读介质可以包括随机存取存储器、只读存储器、电可擦除可编程随机存取存储器(EEPROM)、光盘随机存取存储器或其他光盘存储器、磁盘存储器、固态存储器、或任何其他数据存储设备、前述类型的计算机可读介质的组合、或可用于以可以通过计算机访问的指令或数据结构的形式存储计算机可执行代码的任何其他介质。

为了本专利文件的目的,术语“或”与“和”表示“和/或”,除非另有说明或者通过其使用的场境而另有明确所指。除非另有说明或在使用“一个或多个”显然是不恰当的情况下,否则术语“一个”指“一个或多个”。术语“包括”和“包含”是可互换的,而不意欲是限制性的。例如,术语“包括”应被解释为意指“包括但不限于”。

术语“自然语言对话系统”和“对话系统”可以互换使用,并且应该被解释为意指用于使用文本、话音、图形、触觉、手势、计算机生成的动作、以及在输入和输出通道上的其他通信模式来提供人机对话交互的计算机实现的系统,其中,对用户输入的响应由一个或多个对话系统代理或对话系统引擎生成,并且其中,系统提供用于接收、处理、管理并传递信息的接口。术语“聊天信息系统”、“口语对话系统”、“交谈代理”、“聊天者机器人”、“聊天者机器人程序”、“聊天机器人程序”、“聊天代理”、“数字个人助理”和“自动化在线助理”等在术语“对话系统”的范围内。

术语“客户端设备”和“用户设备”应被解释为意指具有输入和输出能力的客户端侧140上的任何电子或计算设备,诸如移动设备、蜂窝电话、移动电话、用户设备、用户终端、智能电话、平板计算机、膝上型计算机、台式计算机、服务器、个人数字助理、音乐播放器、多媒体播放器、便携式计算设备、导航系统、车辆计算机、信息娱乐系统、游戏设备、游戏控制台、娱乐系统、电视设备、网络设备、调制解调器、和路由器等等。

术语“用户”意指“客户端设备”和“用户设备”的用户。术语“开发者”应被解释为可以经由平台110创建和维护的对话系统引擎(代理)的软件开发者、工程师或所有者。

术语“对话系统代理”和“对话系统引擎”可以互换使用,并且可以被解释为表示用于基于一个或多个预定规则或标准——诸如对话系统元素,包括对话系统意图和对话系统实体——处理用户输入的计算机可实现的接口。

本文公开的技术效果可以在处理用户请求和收集与用户请求相关联的多个参数(或参数值)时为自然语言对话系统提供改进,以基于多个参数来产生计算机实现的动作。

本文公开的进一步的技术效果可以通过减少进行查找属性而对存储器的调用来提供硬件性能的改进,从而减少时延并改善电池使用寿命,减少建立语音动作所需的步骤、接口和对存储器的调用等。

在这里讨论的系统或方法收集关于用户的个人信息或可以利用个人信息的情形下,可以向用户提供机会来控制对这样的个人信息的收集和/或使用,从而限制对这样的数据的部分或全部收集。例如,当可获得对用于识别参数的场境的使用时,可以向用户提供限制对一些或所有场境数据的收集的能力。另外,某些数据在其被存储或使用之前可能会以一种或多种方式处理,使得个人可识别信息被删除或模糊。例如,可以对用户的身份进行处理,使得无法针对用户确定个人可识别信息,或者可以泛化用户的地理位置,使得无法确定用户的特定位置。因此,可以向用户提供对如何收集关于该用户以及由这里公开的系统和方法使用的信息的控制。

尽管本公开包括一些细节,但这些不应被解释为对本公开的范围或可要求保护的内容的范围的限制,而是作为对本公开的示例实施方式的特征的描述。本公开中在分开的实施方式的场境中描述的某些特征也可以在单个实施方式中组合提供。相反,在单个实施方式的场境中描述的各个特征也可以在多个实施方式中单独或以任何合适的子组合提供。此外,尽管上文可以将特征描述为以某些组合起作用并且甚至最初要求如此,但是来自所要求保护的组合的一个或多个特征可以在一些情况下从组合中删除,并且所要求保护的组合可以针对子组合或子组合的变化。

类似地,虽然在附图中以特定顺序描绘了操作,但这不应理解为要求以所示的特定顺序或按依次顺序执行这样的操作,或者执行所有示出的操作以实现期望的结果。在某些情形下,多任务和并行处理可能是有利的。此外,上述实施方式中的各个系统组件的分离不应该被理解为在所有实施方式中都需要这样的分离,并且应该理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中或者封装到多个软件产品内。

因此,已经描述了本公开的特定实施方式。其他实施方式在所附的权利要求书的范围内。例如,权利要求书中记载的动作可以以不同的顺序执行并仍然实现期望的结果。已经描述了多个实施方式。然而,应该理解,在不脱离本公开的精神和范围的情况下可以进行各种修改。例如,可以使用上面所示的各种形式的流程,其中重新排序、添加或删除步骤。因此,其他实施方式在所附权利要求的范围内。

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