基于众包来更新用于数字个人助理的语言理解分类器模型的制作方法

文档序号:11293353阅读:308来源:国知局
基于众包来更新用于数字个人助理的语言理解分类器模型的制造方法与工艺

背景

随着计算技术的发展,越来越强大的移动设备已经变得可用。例如,智能电话以及其他计算设备已经变得普及。此类设备的处理能力已导致开发出不同类型的功能性,诸如与数字个人助理相关的功能性。

数字个人助理可以被用于执行用于个体的任务或服务。例如,数字个人助理可以是在移动设备或台式计算机上运行的软件模块。此外,实现在移动设备内的数字个人助理具有交互式和内置会话理解力以能够对用户问题或语音命令作出响应。可以由数字个人助理执行的任务和服务的示例可以包括拨打电话呼叫、发送电子邮件或文本消息和设置日历提醒。

尽管数字个人助理可被实现来使用代理执行多个任务,然而编程/定义每个反应型代理可能是耗时的。因此,在与创建和编辑用于实现数字个人助理的反应型代理定义和相关联的语言理解分类器模型相关的技术方面存在充足的改善机会。

概述

提供本概述以便以简化的形式介绍以下在详细描述中进一步描述的一些概念。本概述并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。

根据一个或多个方面,一种用于更新语言理解分类器模型的方法可包括经由计算设备的一个或多个话筒接收来自该计算设备的用户的数字语音输入。还可以从用户接收使用经由其他输入(例如,经由文本输入或其他类型的输入)的输入。使用数字语音输入执行自然语言处理以确定用户语音请求。在确定用户语音请求不匹配在该计算设备上运行的数字个人助理的代理定义(例如,可扩展标记语言(xml)模式定义)中的多个预定义任务中的至少一者之际,可以使用该计算设备的最终用户标记工具(eult)的图形用户界面来接收用户选择。任务可通过语音(或文本录入的)命令以及通过一个或多个附加装置(诸如通过基于规则的引擎、机器学习分类器,等等)来定义。用户选择可包括针对域的多个可用意图中的至少一个意图。可任选地,用户选择还可包括针对该至少一个意图的至少一个槽。该至少一个意图与被用于执行域的功能类别的至少一个功能的至少一个动作相关联。当被包括在用户选择中时,该至少一个槽指示用于执行该至少一个动作的值。可通过将用户语音请求与用户选择(例如,所选域、意图、和/或槽)进行配对(或以其他方式进行关联)来生成经标记数据集。可以从与代理定义相关联的多个可用语言理解分类器中选择语言理解分类器,该选择至少基于由该用户选择的至少一个意图。可基于所生成的经标记数据集来更新所选择的语言理解分类器。

根据一个或多个方面,一种服务器计算机包括处理单元和耦合到处理单元的存储器。服务器计算机可被配置成执行用于更新语言理解分类器模型的操作。各操作可包括从通信地耦合到服务器计算机的多个计算设备中的至少一个计算设备接收对多个可用意图中的至少一个意图的第一用户选择。可任选地,用户选择还可包括针对该至少一个意图的至少一个槽。在被包括在用户选择中时,该至少一个意图可与被用来执行域的功能类别的至少一个功能的至少一个动作相关联。该至少一个槽可指示用于执行该至少一个动作的值。第一用户选择可与在至少一个计算设备处接收到的数字语音输入相关联。可以从多个计算设备中的至少另一计算设备接收与第一用户选择相同的多个后续用户选择。可通过将数字语音输入与第一用户选择进行配对来生成经标记数据集。可从与一个或多个xml模式定义相关联的多个可用语言理解分类器中选择语言理解分类器,该选择至少基于数字语音输入、第一用户选择的域、意图和/或槽中的一者或多者。可基于所生成的经标记数据集来更新所选择的语言理解分类器。

根据一个或多个方面,一种计算机可读存储介质可包括指令,该指令在执行时使得计算设备执行用于更新语言理解分类器模型的操作。各操作可包括基于在计算设备处接收到的用户输入来确定用户请求。该用户请求可经由文本输入和语音输入中的至少一者来接收,并且该请求可针对在该计算设备上运行的数字个人助理的功能性。各操作还可包括确定用户请求不匹配数字个人助理的可扩展标记语言(xml)模式定义中的多个预定义任务(例如,语音命令)中的至少一者。在一个实现中,可通过将与xml模式定义相关联的多个可用语言理解分类器应用于用户请求来生成置信度分数。在确定置信度分数小于阈值之际,可使用计算设备的最终用户标记工具(eult)的图形用户界面来接收用户选择。在另一实现中,其他方法可被使用(例如,代替使用阈值)来确定是否使用eult接收对域、意图和/或槽信息中的至少一者的用户选择。用户选择可包括多个可用意图中的至少一个意图。可任选地,用户选择可包括域和/或针对该至少一个意图的至少一个槽。该至少一个意图与被用于执行域的功能类别的至少一个功能的至少一个动作相关联。当被包括在用户选择中时,该至少一个槽可指示用于执行该至少一个动作的值。可通过将用户语音请求与用户选择进行配对来生成经标记数据集。可以从与xml模式定义相关联的多个可用语言理解分类器中选择语言理解分类器,其中该选择基于由该用户选择的至少一个意图和/或槽。可通过使用所生成的经标记数据集训练所选择的语言理解分类器(例如,将分类器与语音请求和用户选择中的域、意图和/或槽中的至少一者进行关联)来生成经更新的语言理解分类器。

如本文所述的,各种其它特征和优点可按照需要被结合到所述技术中。

附图简述

图1是解说根据本公开的示例实施例的用于更新语言理解分类器模型的示例体系结构的框图。

图2是解说根据本公开的示例实施例的启用语音的应用对语言理解分类器的各种使用的框图。

图3a-3b解说了根据本公开的示例实施例的用于更新语言理解分类器模型的示例处理循环。

图4a-4b解说了可根据本公开的示例实施例来使用的最终用户标记工具的示例用户界面。

图5-7是解说根据一个或多个实施例的更新语言理解分类器模型的流程图。

图8是解说可结合其来实现本文中描述的创新的示例移动计算设备的框图。

图9是可用于实现所描述的一些实施例的示例计算系统的示图。

图10是可结合本文中描述的技术来使用的示例云计算环境。

详细描述

如本文所描述的,各种技术和解决方案可被应用于更新语言理解分类器模型。更具体而言,代理定义规范(例如,语音命令定义(vcd)规范、反应型代理定义(rad)规范、或另一类型的计算机可读文档)可被用来定义与在计算设备上运行的数字个人助理相关联的一个或多个代理。代理定义规范可以指定域信息、意图信息、槽信息、状态消息、预期用户话语(或语音命令)、状态转变、响应串以及模板、本地化信息以及经由rade录入以提供反应型代理功能性的视觉/声明性表示的任何其他信息。代理定义规范可与一个或多个语言理解分类器(术语“分类器”的定义在下文提供)一起被实现在启用语音的应用(例如,设备操作系统本机的数字个人助理或者第三方启用语音的应用)内。每一分类器还可与域、意图以及槽中的一者或多者相关联,以及与用户话语相关联。

在其中用户话语(或文本输入)不匹配代理定义规范内的特定话语/命令的情形中,可在计算设备处使用最终用户标记工具(eult)来使用户能够选择域、针对该域的意图、和/或针对该意图的一个或多个槽中的一者或多者。在域不可用时的情形中,用户可以添加域,并可任选地指定针对该域的意图和/或槽。可通过将用户话语与所选域、意图和/或槽进行关联来创建经标记数据集。随后可使用经标记数据集来更新与所选意图(和/或域或槽)相关联的分类器。对分类器的更新可只在某一数量的用户作出基本上类似的用户选择(即,请求相同或相似的域、意图和/或槽)之后才被触发,以避免对分类器的欺诈性操纵和更新。对分类器的更新可以在本地(在该计算设备内)完成,且经更新的分类器随后可被存储在云数据库中,在此它可由其他用户使用。或者,用户选择信息可被发送给服务器计算机(云服务器),在此经标记数据集可被创建且分类器在足够数目的用户执行相同(或相似)的话语和用户选择之后被更新。

在本文中详细描述了各种方法、进程和过程。尽管特定步骤可能是按照特定序列来描述的,然而这种序列主要是为了方便和清楚。特定步骤可被重复超过一次,可在其它步骤之前或之后发生(即使那些步骤原本是按另一序列描述的),以及可与其它步骤并行发生。仅在第一步骤必须在第二步骤开始之前完成时,才要求第二步骤跟在第一步骤之后。在不能从上下文清楚地看出时,这种情形将被具体指出。特定步骤可被省略;仅当特定步骤的省略将显著影响另一步骤时才需要该特定步骤。

在本文中,使用术语“和”、“或”以及“和/或”。这些术语将被解读为具有相同含义;即,是包含性的。例如,“a和b”可至少指以下各项:“a和b两者”、“只有a”、“只有b”、“至少a和b两者”。作为另一示例,“a或b”可至少指以下各项:“只有a”、“只有b”、“a和b两者”、“至少a和b两者”。在想要表达异或时,将对其明确注明(例如,“a或b之一”、“a和b中最多一个”)。

在本文中描述了各种计算机实现的方法、进程和过程。要理解,各动作(接收、存储、发送、传递、显示等)是由硬件设备执行的,即使动作可被用户授权、发起或触发,或即使硬件设备由计算机程序、软件、固件等控制。而且,要理解,硬件设备对数据进行操作,即使数据可表示概念或现实世界对象,从而如此省略了明确标记为“数据”。例如,在硬件设备被描述为“存储记录”时,要理解硬件设备存储表示该记录的数据。

如本文中所使用的,术语“代理”或“反应型代理”指代可被数字个人助理用来实现与设备功能性相关联的一个或多个响应对话(例如,语音、文本和/或触觉响应)的数据/命令结构。该设备功能性(例如,电子邮件收发、消息收发等)可由到数字个人助理的用户输入(例如,语音命令)来激活。反应型代理(或代理)可使用语音代理定义(vad)、语音命令定义(vcd)或反应型代理定义(rad)xml文档(或另一类型的计算机可读文档)以及用于驱动该代理来通过对话的编程代码(例如,c++代码)来定义。例如,电子邮件反应型代理可被用来基于用户任务(例如,语音命令)打开新的电子邮件窗口、基于语音输入来创作电子邮件以及向由到数字个人助理的语音输入所指定的电子邮件地址发送电子邮件。反应型代理也可被用来在用数字个人助理发起的对话会话期间基于用户输入提供一个或多个响应(例如,音频/视频/触觉响应)。

如本文所使用的,术语“xml模式”指代具有被用来描述和证实xml环境中的数据的xml代码段集合的文档。更具体而言,xml模式可列出被用来描述xml文档中的内容的元素和属性,在哪每个元素被允许,什么类型的内容被允许等等。用户可生成符合xml模式的xml文件(例如,用于在反应型代理定义中使用)。

如本文所使用的,术语“域”可被用来指示个人知识的一领域或范围并可与计算设备执行的功能类别相关联。示例域包括电子邮件(例如,电子邮件代理可被数字个人助理(dpa)用来生成/发送电子邮件)、消息(例如,消息代理可被dpa用来生成/发送文本消息)、闹钟(闹钟反应型代理可被用来设置/删除/修改闹钟)等。

如本文所使用的,术语“意图”可被用来指示被用于执行所标识域的功能类别的至少一个功能的至少一个动作。例如,“设置闹钟”意图可被用于闹钟领域。

如本文所使用的,术语“槽”可被用来指示被用于完成给定域-意图对的特定动作的特定值或值集合。槽可与一个或多个意图相关联并可被显式提供(即,注释)在xml模式模板中。通常,域、意图和一个或多个槽构成语言理解构造,然而在给定代理场景内,槽可跨多个意图共享。作为示例,如果域是具有两个不同意图的闹钟——设置闹钟和删除闹钟,则这两个意图可共享相同的“alarmtime(闹钟时间)槽”。就此,槽可被连接至一个或多个意图。

如本文所使用的,术语“用户选择”(结合最终用户标记工具)指的是用户对域和/或意图和/或槽信息的选择。就此,对域或意图或槽的个别选择是可能的(例如,只有意图能被选择),并且任何配对是可能的(例如,选择域-意图而不选择槽)。

如本文所使用的,术语“分类器”或“语言理解分类器”指的是可将给定用户输入(语音或文本)映射到域和意图的统计的、基于规则的或基于机器学习的算法或软件实现。该算法还可输出使用分类器执行的针对任何分类的置信度分数。相同算法或后续软件段随后可推断/确定由用户指定为该域-意图对的话语的一部分的槽集合。给定用户话语可以训练多个分类器——一些用于肯定情形而其他用于否定情形。作为示例,用户话语(或语音/文本命令)“messagerobi’mrunninglate(给rob发消息我迟到了)”可作为肯定训练集被用来训练“messaging(消息收发)”分类器,且作为否定训练集来训练“email(电子邮件)”分类器。分类器可以与经标记数据的一个或多个部分(例如,用户话语、域、意图和/或槽)相关联。

图1是解说根据本公开的示例实施例的用于更新语言理解分类器模型的示例体系结构(100)的框图。参考图1,客户端计算设备(例如智能电话或其它移动计算设备,诸如图8中的设备800)可执行根据体系结构100组织的软件以提供语言理解分类器模型的更新。

体系结构100包括经由网络130耦合到一个或多个远程服务器计算机140的计算设备102(例如,电话、平板、膝上型设备、台式或其它类型的计算设备)。计算设备102包括用于将声音转换成电子信号的话筒106。话筒106可以是分别使用电磁感应、电容或压电中的相应改变从气压变化中产生电子信号的动态的电容器或压电话筒。话筒106可以包括放大器、一个或多个模拟或数字滤波器和/或模-数转换器以产生数字声音输入。数字声音输入可以包括用户语音的再现,诸如在用户正命令数字个人助理110执行任务时。

数字个人助理110在计算设备102上运行,并允许计算设备102的用户使用语音(或文本)输入执行各种动作。数字个人助理110可包括自然语言处理模块112、代理定义结构114、用户界面116、语言理解分类器模型(lucm)120以及最终用户标记工具(eult)118。数字个人助理110可以经由话筒106接收用户语音输入,使用代理定义结构114(例如,语音命令数据结构或反应型代理定义结构)根据用户语音输入确定对应任务(例如,语音命令),并执行该任务(例如,语音命令)。在一些情形中,数字个人助理110将用户(语音或文本)命令发送到第三方启用语音的应用108之一。在其他情形中,数字个人助理110本身处置该任务。

设备操作系统(os)104管理用户输入功能、输出功能、存储访问功能、网络通信功能、以及设备110的其他功能。设备os104向数字个人助理110提供对这些功能的访问。

代理定义结构114可以定义dpa110的一个或多个代理并可指定dpa110和/或第三方启用语音的应用108所支持的任务或命令(例如,语音命令)连同相关联的语音命令变型和语音命令示例。在一些实现中,代理定义结构114用xml格式来实现。另外,代理定义结构114可以标识可从应用商店146远程获得的启用语音的应用和/或可从web服务148远程获得的启用语音的服务(例如通过访问可从远程服务器计算机140获得的定义远程应用和/或远程服务的能力的模式定义)。

代理定义结构114可以与语言理解分类器模型(lucm)120一起提供(例如,作为操作系统104的一部分或者可在安装dpa110时被安装)。lucm120可包括多个分类器c1、……、cn,其中每一分类器可以与域(d1、……、dn)、意图(i1、……、in)和/或槽(s1、……、sn)中的一者或多者相关联。分类器中的每一者可包括可将给定用户输入(语音或文本)映射到域和意图的统计的、基于规则的或基于机器学习的算法或软件实现。该算法还可输出使用分类器执行的针对任何分类的置信度分数。在一些实现中,分类器可以与域、意图和/或槽信息中的一者或多者相关联,并且可在被应用于给定用户语音/文本输入时提供置信度分数(参考图2描述了示例实现场景)。

即使lucm120与代理定义结构114一起被示为dpa110的一部分,本公开也不限于此。在一些实施例中,lucm120可以是分类器模型的本地副本,它包括与代理定义结构114和dpa110相关的分类器(c1、……、cn)。另一(例如,全局)分类器模型(例如,lucm170)可被存储在云中(例如,作为服务器计算机140的一部分)。全局lucm170可在创建代理定义结构时被使用,使得(例如,相关)分类器子集可与这样的定义结构包括在一起并被实现为应用(例如,第三方应用108、dpa110和/或os104)的一部分。

dpa110可以使用自然语言处理模块112处理用户语音输入。自然语言处理模块112可以接收数字声音输入并使用语音识别将用户所说的词转换成文本。所提取的文本可以被语义地分析以确定任务(例如,用户语音命令)。通过分析数字声音输入并响应于所说的命令采取动作,数字个人助理110可以由用户的语音输入来控制。例如,数字个人助理110可以将所提取的文本与(例如存储在代理定义结构114中的)可能的用户命令的列表相比较以确定最可能与用户的意图匹配的命令。dpa110还可以应用来自lucm120的分类器中的一者或多者以确定置信度分数,基于置信度分数来选择分类器,并基于与该分类器相关联的命令(或话语)来确定最可能与用户的意图匹配的命令。就此,该匹配可以是基于统计或概率方法、决策树或其它规则、其它合适的匹配准则或其组合。可能的用户命令可以是dpa110的本机命令和/或在代理定义结构114中所定义的命令。因而,通过在代理定义结构114和lucm120内的分类器中定义命令,dpa110可代表用户执行的任务的范围可被扩展。可能的命令也可以包括用于执行第三方启用语音的应用108的任务的语音命令。

数字个人助理110包括语音和/或图形用户界面116。用户界面116可以向用户提供描述dpa110的能力(例如,eult118的能力)和/或第三方启用语音的应用108的信息。

最终用户标记工具(eult)118可包括合适的逻辑、电路系统、接口和/或代码,且可用于提供用于更新语言理解分类器模型的功能性,如本文所描述的。例如,在代理定义结构114不具有匹配用户的语音/文本命令的语音命令串或者可用分类器中的一者或多者返回低于阈值量的置信度分数时的情形中,eult118可被触发(如在图2中看到的)。用户随后可以使用eult118来选择域、意图和/或槽,并且将任务(例如,被表达为话语的语音命令)或文本命令与用户选择的域、意图和/或槽信息进行关联。用户选择和用户录入的语音/文本命令可被发送给服务器计算机140,其中全局分类器集合170可被更新(例如,使用用户录入的域、意图和/或槽来更新匹配该用户语音/文本命令的分类器)。就此,众包(crowd-sourcing)办法可被使用来训练/标记分类器,并且因此改进全局和本地lucm(170和120)。

数字个人助理110可以访问在远程服务器计算机140上执行的远程服务142。远程服务142可以包括在网络(诸如网络130)上的网络地址处提供的软件功能。网络130可包括局域网(lan)、广域网(wan)、因特网、内联网、有线网络、无线网络、蜂窝网络、其组合、或适用于提供在计算设备102和远程服务器计算机140之间进行通信的信道的任何网络。应该理解,图1所示的网络拓扑结构已经被简化,并且可利用多个网络和联网设备来互连此处所公开的各种计算系统。

远程服务142可以包括可通过网络130从远程服务器计算机140访问的各种计算服务。远程服务142可以包括(例如由数字个人助理110所调用以执行或协助模块112的自然语言处理功能的)自然语言处理服务144。远程服务142可以包括应用商店146(例如提供启用语音的应用的应用商店,所述应用可以被搜索或下载和安装)。远程服务142还可以包括web服务148,其可以使用数字个人助理110通过语音输入被访问。远程服务142还可包括开发者标记工具150、分类器模型训练服务152以及分类器模型欺诈检测服务154,如下文解释的。远程服务器计算机140还可管理话语数据库160和经标记数据数据库162。

图2是解说根据本公开的示例实施例的启用语音的应用对语言理解分类器的各种使用的框图200。参考图1-2,用户(例如,设备102的用户)可以录入语音输入202。语音识别框206(例如,112)可以将输入202的语音转换成用户命令(文本)208。用户命令208可另选地作为文本条目204来被录入。在框210,可通过将用户命令208与代理定义结构(例如,114)中指定的一个或多个用户命令相匹配来执行代理定义匹配。如果存在直接匹配(在212处),则可根据所匹配的用户命令来推断出域216、意图218和/或槽220,并且这样的信息可由dpa110和/或应用108在框232使用。然而,如果不存在匹配(在214处),则可执行使用lucm120(或170)进行匹配。

更具体而言,用户命令208可被用作对于分类器c1、……、cn的输入,且对应的置信度分数240可被计算。如果对于给定分类器(例如,c1),置信度分数大于或等于阈值(例如,20%),则该分类器可被用来提取与这样的分类器相关联的域224、意图226和/或槽228。所提取的域/意图/槽可由dpa110或应用108使用(在230处)。然而,如果置信度分数低于阈值(例如,在250处),则分类器模型可被更新(例如,使用eult118且如在图3b-4b中看到的)。在eult标记过程期间所确定的域、意图和/或槽可由dpa110和/或应用108(在232处)使用。

即使分类器所生成的置信度分数(与阈值一起)被使用来确定是否使用eult来获得用户选择,本公开不限于此。在另一实现中,其他方法可被使用(例如,代替使用阈值)来确定是否使用eult来接收对域、意图和/或槽信息中的至少一者的用户选择。

图3a-3b解说了根据本公开的示例实施例的用于更新语言理解分类器模型的示例处理循环。参考图3a,示出了用于使用开发者标记工具150训练/更新分类器数据的体系结构300。如在图3a中看到的,代理定义结构114可以与lucm120绑定在一起(lucm120可以与lucm170相同或是其子集)。代理定义结构114和lucm120随后可被实现为(例如,如可在应用商店146中获得的)应用108或dpa110的一部分。应用108(以及dpa110)随后可被安装在设备102中。

在eult118被禁用时的情形中,用户可以提供话语302(例如,用户命令)。该话语可被传递并被存储作为话语数据库160的一部分,该数据库还可存储来自通信地耦合到服务器计算机140的其他计算设备的用户的话语。网络管理员/开发者随后可使用开发者标记工具150来从数据库160检索话语(例如,302)并生成域、意图和/或槽选择303。管理员选择303可以与话语302绑定在一起并被存储为经标记数据数据库162内的经标记数据。管理员随后可将经标记数据传递给分类器训练服务152(或者经标记数据可在被存储在数据库162中之际被自动传递给训练服务152)。

分类器模型训练服务152可包括合适的逻辑、电路系统、接口和/或代码并可用于执行对lucm120和/或170内的一个或多个分类器的训练(或更新)。在示例分类器训练304期间,经标记数据集可被检索(例如,302和303);域、意图和/或槽信息(例如,303)可被使用(例如,作为索引)来访问lucm120/170以及检索与这样的域、意图和/或槽相关联的分类器。训练服务152随后可更新分类器,以使得它与用户话语/命令(302)相关联以及与管理员使用开发者标记工具150提供的域、意图和/或槽(303)中的一者或多者相关联。经更新的lucm120随后可被使用且与代理定义结构绑定在一起以供在应用中实现。

参考图3b,示出了用于使用最终用户标记工具(eult)118来训练/更新分类器数据的体系结构370。如在图3b中看到的,代理定义结构114可以与lucm120绑定在一起(lucm120可以与lucm170相同或是其子集)。代理定义结构114和lucm120随后可被实现为(例如,如可在应用商店146中获得的)应用108、dpa110和/或应用350、……、360的一部分。应用108、350、……、360(以及dpa110)随后可被安装在设备102中。

在eult118被启用时的情形中,用户可以提供话语302(例如,用户命令)。该话语可被传递并被存储作为话语数据库160的一部分,该数据库还可存储来自通信地耦合到服务器计算机140的其他计算设备的用户的话语。设备102的用户随后可使用eult118来提供用户输入,从而选择与话语/命令302相关联的域、意图和/或槽中的一者或多者(这假定不存在与代理定义结构114内的命令的直接匹配(例如,212),并且不存在高于阈值的置信度分数(例如,240))。

用户可以使用eult118来选择与话语302相关联的域、意图和/或槽(例如,320)。dpa110(或设备102)可以选择lucm120内的分类器c1、……、cn中的至少一者来作为匹配所录入的用户选择320(例如,可以基于与具有经由eult118录入的用户选择320的域、意图和/或槽信息的分类器相关联的匹配的域、意图和/或槽信息从lucm120选择分类器)。

根据本公开的示例实施例,在从lucm120检索到匹配分类器之后,设备102可以更新该分类器(录入,如以上参考304所讨论的)并将经更新/经训练的分类器存储为本地分类器330。分类器的训练和更新以及生成本地分类器330可以通过使用远程服务器计算机140的分类器模型训练服务152来执行。就此,一个或多个本地分类器330可被生成,而无需这样的经训练的分类器存在于全局lucm170中。本地分类器330可以与用户简档340相关联,且可以在安装在设备102上的应用350、……、360中的一者或多者之间被使用/被共享。可任选地,本地分类器330可被存储在服务器计算机140中,作为用户简档340的一部分(简档也可与其他简档/用户账户信息一起被存储在服务器计算机140中)。

dpa110也可将用户选择的域、意图和/或槽信息320与话语302一起传递,以供存储为经标记数据数据库162内的经标记数据。经标记数据随后可被传递给分类器训练服务152以用于训练。根据本公开的示例实施例,分类器模型欺诈检测服务154可以结合训练服务152来使用。更具体而言,欺诈检测服务154可包括合适的逻辑、电路系统、接口和/或代码并可用于阻止分类器训练/更新,除非特定最小数目(阈值)的用户已经请求对与相同(或基本上相似)的用户话语相关联的分类器的相同(或基本上相似)的更新。就此,在用户尝试将任务(例如,表达语音命令的话语)与域、意图和/或槽进行关联(系统中的大多数其他其余用户没有将这样的话语与其进行关联)时的情形中,可阻止自动分类器更新。

假定最小数目的用户已经请求对分类器的相同或基本上相似的更新,则对该分类器的训练/更新(304)可以进行,如先前参考图3a讨论的。在示例分类器训练304期间,经标记数据集可被检索(例如,302和303);域、意图和/或槽信息(例如,303)可被使用(例如,作为索引)来访问lucm120/170以及检索与这样的域、意图和/或槽相关联的分类器。训练服务152随后可更新分类器,以使得它与用户话语/命令(302)相关联以及与管理员使用开发者标记工具150提供的域、意图和/或槽(303)中的一者或多者相关联。经更新的lucm120可被使用且与代理定义结构绑定在一起以供在应用中实现。

图4a-4b解说了可根据本公开的示例实施例来使用的最终用户标记工具的示例用户界面。参考图4a,在402处的用户界面解说了dpa110的初始视图,提示用户提供任务(例如,语音命令)。在404,用户在405处提供语音命令。在406,dpa110可已经执行了处理(例如,202-214)并可已确定代理定义结构114中没有匹配的用户命令或充分高的置信度分数(240)。处理随后通过激活eult118界面来继续(例如,在250处)。在407,dpa110向用户通知任务(例如,语音命令)不清楚并且询问用户是否想要激活“标记工具”(eult118)。用户随后通过按下软件按钮408激活eult118。

参考图4b,409处的用户界面提出一个或多个域,所以用户可以选择针对他们的任务(例如,语音命令)的相关域。一个或多个域可被列出(例如,与任务(或即语音命令)相关(例如,发音相似)的一个或多个域或者该系统中可用的所有域)。在用户选择域之后,用户界面410可被用来列出与所选择的域相关联的一个或多个意图。或者,所有可用意图可被列出以供用户从中进行选择。在用户选择意图之后,用户界面412可被用来列出与所选择的意图相关联的一个或多个槽。或者,所有可用槽可被列出以供用户从中进行选择。在选择槽之后,域、意图和/或槽信息320可被进一步处理,如下所述。

图5-7是解说根据一个或多个实施例的反应型代理定义的生成的流程图。参考图1-5,示例方法500可在502处在针对以下各项中的至少一者的第一用户选择(320)时开始:可以从通信地耦合到服务器计算机(例如,140)的多个计算设备中的至少一个计算设备(例如,102)接收多个可用意图中的至少一个意图和/或针对该至少一个意图的至少一个槽。该至少一个意图(用户选择320中的意图)与被用来执行域的功能类别的至少一个功能的至少一个动作相关联。该至少一个槽(例如,在用户选择320内)指示被用来执行该至少一个动作的值。第一用户选择(320)与在至少一个计算设备(102)处接收到的数字语音输入(例如,话语302)相关联。在504,在从多个计算设备中的至少另一计算设备接收到与第一用户选择相同的多个后续用户选择之际,通过将该数字语音输入与该第一用户选择进行配对来生成经标记数据集。例如,在302和320被配对以生成经标记数据集之后,训练服务152可以通过在特定(阈值)数目的其他用户提交相同(或基本上相似)的用户选择和话语之后训练对应的分类器来继续进行。在506,分类器模型训练服务152可以从与一个或多个代理定义相关联的多个可用语言理解分类器(例如,来自lucm170)中选择语言理解分类器。该选择可至少基于该至少一个意图。在508,训练服务152可以基于所生成的经标记数据集来更新所选择的语言理解分类器。

参考图1-3b和6,示例方法600可以在602处在来自计算设备(102)的用户的数字语音输入(302)可经由计算设备(102)的一个或多个话筒(106)接收到时开始。在604,自然语言处理模块112可以使用该数字语音输入执行自然语言处理以确定用户语音请求。

在606,在确定用户语音请求不匹配(例如,214)在该计算设备上运行的数字个人助理(110)的代理定义(例如,114)中的多个预定义语音命令中的至少一者之际,可使用该计算设备(102)的最终用户标记工具(eult)118的图形用户界面来接收对以下各项中的至少一者的用户选择(320):多个可用意图中的意图以及针对该至少一个意图的至少一个槽。该意图与用来执行域的功能类别的至少一个功能的至少一个动作相关联,且该至少一个槽指示用于执行该至少一个动作的值。在608,dpa110可以通过将用户语音请求(320)与用户选择(302)进行配对来生成经标记数据集。在610,dpa110(或设备102)可以从与代理定义(例如,114)相关联的多个可用语言理解分类器(例如,lucm120中的c1、……、cn)中选择语言理解分类器。对分类器的选择可至少基于由用户使用eult118选择的至少一个意图。在612,dpa110(或设备102)可以基于所生成的经标记数据集(例如,基于302和320,创建本地分类器330)更新所选择的语言理解分类器。

参考图1-3b和7,示例方法700可在702处在可基于在计算设备(102)处接收到的用户输入(302)确定用户请求时开始。该用户请求可经由文本输入(204)和/或语音输入(202)中的至少一者来接收,该请求针对在该计算设备上运行的数字个人助理(110)的功能性。在704,dpa110(或设备102)可以确定用户请求不匹配数字个人助理的代理定义(114)中的多个预定义任务(例如,语音命令)中的至少一者(例如,214)。

在706,dpa110(或设备102)可以通过将与代理定义相关联的多个可用语言理解分类器(c1、……、cn)应用于用户请求(208)来生成置信度分数(240)。在708,在确定置信度分数小于阈值(250)之际,dpa110使用该计算设备的最终用户标记工具(eult)118的图形用户界面来接收对以下各项中的至少一者的用户选择(320):多个可用意图中的至少一个意图以及针对该至少一个意图的至少一个槽。该至少一个意图与用来执行域的功能类别的至少一个功能的至少一个动作相关联且该至少一个槽指示用于执行该至少一个动作的值。

在710,dpa110(或设备102)可以通过将用户语音请求(320)与用户选择(302)进行配对来生成经标记数据集。在712,dpa110(或设备102)从与代理定义相关联的多个可用语言理解分类器(lucm120)中选择语言理解分类器,该选择至少基于由用户选择的至少一个意图。在714,dpa110(或设备102)通过使用所生成的经标记数据集训练所选语言理解分类器来生成经更新语言理解分类器(例如,生成本地分类器330)。

图8是解说可结合其来实现本文中描述的创新的示例移动计算设备的框图。移动设备800包括各种任选的硬件和软件组件,其通常在802处示出。一般来说,移动设备中的组件802可与该设备的任何其他组件通信,但出于容易说明的目的未示出所有连接。移动设备800可以是各种计算设备(例如,蜂窝电话、智能电话、手持式计算机、膝上型计算机、笔记本计算机、平板设备、上网本、媒体播放器、个人数字助理(pda)、相机、摄像机等)中的任何一个,并且可允许与诸如无线保真(wi-fi)、蜂窝、或卫星网络之类的一个或多个移动通信网络804进行无线双向通信。

所解说的移动设备800可包括用于执行如信号编码、数据处理(包括分配权重和对诸如搜索结果之类的数据进行排名)、输入/输出处理、电源控制和/或其他功能等任务的控制器或处理器810(例如,信号处理器、微处理器、asic、或其他控制和处理逻辑电路)。操作系统812控制各组件802的分配和使用,并且支持一个或多个应用程序811。操作系统812可包括最终用户标记工具813,它可具有与参考图1-7描述的eult118的功能性相似的功能性。

所示的移动设备800包括存储器820。存储器820可以包括不可移动存储器822和/或可移动存储器824。不可移动存储器822可以包括ram、rom、闪存、硬盘或者其他公知的存储器存储技术。可移动存储器824可包括闪存或订户身份模块(sim)卡——其在全球移动通信系统(gsm)等通信系统中是众所周知的,或者其他众所周知的存储器存储技术,诸如“智能卡”。存储器820可用于存储运行操作系统812和应用811的数据和/或代码。示例数据可以包括要经由一个或多个有线或无线网络被发送至和/或接收自一个或多个网络服务器或其他设备的网页、文本、图像、声音文件、视频数据或者其他数据集。存储器820可用于存储订户标识符和设备标识符,所述订户标识符诸如国际移动订户身份(imsi),所述设备标识符诸如国际移动设备标识符(imei)。这种标识符可以被发射至网络服务器以标识用户和设备。

移动设备800可支持一个或多个输入设备830以及一个或多个输出设备850,一个或多个输入设备830为诸如触摸屏832(例如,能够捕捉手指轻击输入、手指姿势输入或虚拟键盘或小键盘的键击输入)、话筒834(例如,能够捕捉语音输入)、相机836(例如,能够捕捉静止图片和/或视频图像)、物理键盘838、按钮和/或跟踪球840,一个或多个输出设备850为诸如扬声器852和显示器854。其他可能的输出设备(未示出)可以包括压电或其他触觉输出设备。一些设备可以用于多于一个输入/输出功能。例如,触摸屏832和显示器854可以在单个输入/输出设备内被组合。移动设备800可提供一个或多个自然用户界面(nui)。例如,操作系统812或应用811可包括多媒体处理软件,诸如音频/视频播放器。

无线调制解调器860可被耦合至一个或多个天线(未示出),并且可支持处理器810与外置设备间的双向通信,如本领域中充分理解的那样。调制解调器860一般被示为并可包括例如用于通过移动通信网络804进行长程通信的蜂窝式调制解调器、可兼容蓝牙的调制解调器864、或用于通过外置的配备有蓝牙的设备或者本地的无线数据网络或路由器来进行短程通信的可兼容wi-fi的调制解调器862。无线调制解调器860一般被配置成与一个或多个蜂窝网络(诸如gsm网络)通信,用于单个蜂窝网络内、多个蜂窝网络之间、或者在移动设备和公共交换电话网(pstn)之间的数据和语音通信。

移动设备可进一步包括至少一个输入/输出端口880、电源882、卫星导航系统接收机884(诸如全球定位系统(gps)接收机)、传感器886(诸如,用于检测设备800的方向和运动并用于接收姿势命令来作为输入的加速度计、陀螺仪或红外邻近传感器)、收发机888(用于无线发射模拟或数字信号)和/或物理连接器890,它可以是usb端口、ieee1394(火线)端口、和/或rs-232端口。所示的组件802不是必需的或所有都包括的,因为可删除所示的组件中的任何一个并可添加其他组件。

移动设备可基于通过卫星导航系统接收机884(例如,gps接收机)接收到的信息来确定指示移动设备的位置的位置数据。或者,移动设备可以另一方式来确定指示移动设备的位置的位置数据。例如,可以通过蜂窝网络的各蜂窝塔之间的三角测量来确定移动设备的位置。或者,可基于在移动设备附近的wi-fi路由器的已知位置来确定移动设备的位置。可以每秒钟或以其他为基础来更新位置数据,这取决于实现和/或用户设置。不管位置数据的源如何,移动设备都可以向地图导航工具提供位置数据以供在地图导航中使用。

作为客户端计算设备,移动设备800可以向服务器计算设备(例如,搜索服务器、路由服务器等)发送请求,并且作为回报从服务器计算设备接收地图图像、距离、方向、其他地图数据、搜索结果(例如,基于指定搜索区域内的poi搜索的poi)或其他数据。

移动设备800可以是实现环境的一部分,在实现环境中各种类型的服务(例如,计算服务)是通过计算“云”来提供的。例如,云可包括可位于中央或是分布式的计算设备集,其向经由诸如因特网等网络连接的各种类型的用户和设备提供基于云的服务。一些任务(例如,处理用户输入和呈现用户界面)可在本地计算设备(例如,连接的设备)上执行,而其他任务(例如,对将在后继处理中使用的数据的存储、数据的加权和数据的排名)可在云中执行。

虽然图8示出了移动设备800,但更一般地本文中描述的创新可以通过具有其他屏幕能力和设备形成因素的设备来实现,诸如台式计算机、电视屏幕或连接到电视机的设备(例如,机顶盒或游戏控制台)。可由云通过服务提供商、或通过其他在线服务的提供商来提供服务。此外,由于本文中描述的技术可涉及音频流传输,可能不需要或使用设备屏幕(在音频/视频内容正被流传输到具有视频回放能力的多媒体端点设备时的实例中,可使用显示器)。

图9是可用于实现所描述的一些实施例的示例计算系统的示图。计算系统900并不旨对使用范围或功能提出任何限制,因为这些创新可以在不同的通用或专用计算系统中实现。

参考图9,计算环境900包括一个或多个处理单元910、915和存储器920、925。在图9中,该基本配置930被包括在虚线内。处理单元910、915执行计算机可执行的指令。处理单元可以是通用中央处理单元(cpu)、专用集成电路(asic)中的处理器或任意其它类型的处理器。在多处理系统中,多个处理单元执行计算机可执行指令以提高处理能力。例如,图9示出中央处理单元910以及图形处理单元或协处理单元915。有形存储器920、925可以是可由(诸)处理单元存取的易失性存储器(例如,寄存器、高速缓存、ram)、非易失性存储器(例如,rom、eeprom、闪存等)或者两者的某一组合。存储器920、925以适合被(诸)处理单元执行的计算机可执行指令的形式,存储实现此处描述的一个或多个发明的软件980。

计算系统还可具有附加的特征。例如,计算系统900包括存储940、一个或多个输入设备950、一个或多个输出设备960以及一个或多个通信连接970。诸如总线、控制器或网络之类的互连机制(未示出)将计算系统900的各组件互连。通常,操作系统软件(未示出)为在计算系统900中执行的其它软件提供操作环境,并协调计算系统900的各组件的活动。

有形存储940可以是可移动或不可移动的,并包括磁盘、磁带或磁带盒、cd-rom、dvd或可用于储存信息并可在计算系统900内访问的任何其他介质。存储器940存储用于软件980的指令,所述软件980实现此处描述的一个或多个发明。

(诸)输入设备950可以是触摸输入设备(诸如键盘、鼠标、笔或跟踪球)、语音输入设备、扫描设备或向计算系统900提供输入的另一设备。对于视频编码,(诸)输入设备950可以是相机、视频卡、tv调谐卡或接受模拟或数字形式的视频输入的类似设备,或将视频样本读入计算系统900的cd-rom或cd-rw。(诸)输出设备960可以是显示器、打印机、扬声器、cd刻录机或提供来自计算系统900的输出的另一设备。

(诸)通信连接970允许在通信介质上到另一计算实体的通信。通信介质传达诸如计算机可执行指令、音频或视频输入或输出、或已调制数据信号中的其他数据之类的信息。已调制数据信号是使其一个或多个特征以在信号中编码信息的方式设置或改变的信号。作为示例而非限制,通信介质可以使用电的、光学的、rf或其它载体。

各创新可在计算机可执行指令(诸如包括在程序模块中的在目标现实或虚拟处理器上在计算系统中执行的那些计算机可执行指令)的一般上下文中描述。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、库、对象、类、组件、数据结构等。如各实施例中描述的,这些程序模块的功能可以被组合,或者在这些程序模块之间拆分。针对各程序模块的计算机可执行指令可以在本地或分布式计算系统中执行。

术语“系统”和“设备”在本文中被互换地使用。除非上下文明确指示,否则,术语并不暗示对计算系统或计算设备的类型的任何限制。一般说来,计算系统或计算设备可以是本地的或分布式的,并且可以包括具有实现本文中描述的功能的软件的专用硬件和/或通用硬件的任意组合。

图10是可结合本文中描述的技术来使用的示例云计算环境。云计算环境1000包括云计算服务1010。云计算服务1010可包括各种类型的云计算资源,诸如计算机服务器、数据存储仓库、联网资源等。云计算服务1010可集中式定位(例如,由公司或组织的数据中心提供)或分布式定位(例如,由位于不同位置(诸如不同数据中心)和/或位于不同城市或国家的各计算资源提供)。另外,云计算服务1010可以实现eult118和本文描述的与更新语言理解分类器模型相关的其他功能性。

云计算服务1010被各种类型的计算设备(例如客户端计算设备)(诸如计算设备1020、1022和1024)使用。例如,计算设备(例如1020、1022和1024)可以是计算机(例如台式或膝上型计算机)、移动设备(例如平板计算机或智能电话)、或其它类型的计算设备。例如,计算设备(例如1020、1022和1024)可利用云计算服务1010来执行计算操作(例如,数据处理、数据存储、反应型代理定义生成和编辑等)。

出于介绍的目的,本详细描述使用了如“确定”和“使用”等术语来描述计算系统中的计算机操作。这些术语是对由计算机执行的操作的高级抽象,且不应与人类所执行的动作混淆。对应于这些术语的实际的计算机操作取决于实现而不同。

尽管以特定的顺序次序描述所公开方法的一些的操作以便于方便呈现,但应当理解,这一描述方式包含重排,除非以下提出的具体语言要求特定的次序。例如,顺序描述的操作可以在一些情况下并行地重排或同时执行。此外,为简洁起见,附图可能不示出所公开的方法可以结合其他方法使用的各种方式。

所公开的方法中的任何方法可被实现为被存储在一个或多个计算机可读存储介质上并在计算设备(例如任何可用计算设备,包括智能电话或其他包括计算硬件的移动设备)上执行的计算机可执行指令或计算机程序产品。计算机可读存储介质是在计算环境内可访问的任何可用的有形介质(例如,诸如dvd或cd之类的一个或多个光学介质盘、易失性存储器组件(诸如dram或sram)或非易失性存储器组件(诸如闪存或硬件驱动器))。作为示例并参考图9,计算机可读存储介质包括存储器920和925以及存储940。术语“计算机可读存储介质”不包括信号和载波。此外,术语“计算机可读存储介质”不包括通信连接(例如,970)。

用于实现所公开技术的计算机可执行指令中的任一个以及在实现所公开的实施例期间创建和使用的任何数据可以被存储在一个或多个计算机可读存储介质上。计算机可执行指令可以是例如专用软件应用或者经由web浏览器或其他软件应用(诸如远程计算应用)访问和下载的软件应用的一部分。这种软件可以例如在单个本地计算机(例如,任何适当的商业可购买计算机)上或者使用一个或多个网络计算机在网络环境(例如,经由互联网、广域网、局域网、客户端-服务器网络(诸如云计算网络)、或者其他这样的网络)中执行。

为清楚起见,仅描述了基于软件的实现方式的特定所选方面。省略了本领域公知的其他细节。例如,应当理解,所公开的技术不限于任何具体的计算机语言或程序。例如,所公开的技术可以通过以c++、java、perl、javascript、adobeflash或者任何其他适当的编程语言编写的软件来实现。同样,所公开的技术不限于任何特定的计算机或硬件类型。适当计算机和硬件的特定细节是公知的,并且不需要在本公开中详细提出。

而且,基于软件的实施例(包括例如用于使计算机执行所公开方法的任一种的计算机可执行指令)中的任一者可以通过适当的通信手段被上载、下载或远程地访问。这种适当的通信手段包括例如互联网、万维网、内联网、软件应用、电缆(包括光纤电缆)、磁通信、电磁通信(包括rf、微波和红外通信)、电子通信或者其他这样的通信手段。

所公开的方法、装置和系统不应以任何方式被限制。相反,本公开针对各种公开的实施例(单独和彼此的各种组合和子组合)的所有新颖和非显而易见的特征和方面。所公开的方法、装置和系统不限于任何具体方面或特征或它们的组合,所公开的实施例也不要求存在任一个或多个具体优点或者解决问题。

来自任何示例的技术可以与在任何一个或多个其他示例中所描述的技术相组合。鉴于可应用所公开的本技术的原理的许多可能的实施例,应当认识到,所示实施例仅是所公开的技术的示例,并且不应被用作是对所公开的技术的范围的限制。相反,本公开的技术的范围由后续的权利要求书的范围和精神来覆盖。

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