一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

在人工智能对话系统中对主体值的自主学习的制作方法

2022-04-13 19:00:40 来源:中国专利 TAG:

在人工智能对话系统中对主体值的自主学习


背景技术:

1.诸如聊天机器人和虚拟助手之类的人工智能(ai)对话系统变得越来越普及并被广泛使用。虚拟助手(例如,来自佛罗里达州的劳德代尔堡的citrix systems公司的商业可用的citrix assistant)是与用户交互以代表用户执行任务的软件代理。用户可以与虚拟助手交互以完成日常任务并改进他们的生产力。
2.虚拟助手接收、解释并响应用户的话语(例如,人类语言交流)。在这样做时,虚拟助手可以回答问题、控制设备、重放媒体和执行其他有用的过程。虚拟助手使用自然语言处理(nlp)技术来从用户话语中提取意图以及修改和/或增加意图的特异性的一个或多个主体(entity)。在需要时,虚拟助手通过与外部服务(例如,微型应用、第三方服务等)进行互操作来实现该意图。以这种方式,虚拟助手能够创建与用户的对话,以用作用户与外部服务之间的桥梁。对话可以包括音频和文本响应、多媒体演示、超链接和其他形式的内容。


技术实现要素:

3.在一个示例中,提供了一种计算机系统。该计算机系统包括存储器、网络接口以及耦合到存储器和网络接口的至少一个处理器。存储器存储一个或多个主体与响应数据的一个或多个字段之间的一个或多个关联。至少一个处理器耦合到存储器和网络接口。至少一个处理器被配置为:接收用于处理意图的请求;生成用于履行意图的请求;经由网络接口将请求发送到履行服务;经由网络接口从履行服务接收指定一个或多个字段的一个或多个值的响应数据;标识从履行服务接收到的响应数据内的一个或多个字段的一个或多个值;使用一个或多个字段经由一个或多个关联来标识一个或多个主体;在存储器内,将一个或多个字段的一个或多个值存储为一个或多个主体的一个或多个值;并且使用一个或多个主体的一个或多个值来对自然语言处理器进行重新训练。
4.计算机系统的至少一些示例可以包括以下特征中的一个或多个。至少一个处理器还可以被配置为:经由网络接口从同义词库服务接收指定与一个或多个字段的一个或多个值相关联的同义词库数据的响应,该同义词库数据包括一个或多个字段的一个或多个值的近义词、动词和复数形式中的一个或多个;并且将同义词库数据存储在存储器内。至少一个处理器还可以被配置为针对一个或多个主体中的至少一个主体确定系统是否被配置为导入关于该主体的同义词库数据。至少一个处理器还可以被配置为将一个或多个字段的一个或多个值存储在拼写检查器可访问的词典数据内。至少一个处理器还可以被配置为:从用户接收以人类语言表达意图的话语;经由自然语言处理器的执行,将话语标识为表达意图;生成对意图的响应;并且以人类语言将响应呈现给用户。在计算机系统中,意图可以是第一意图,并且至少一个处理器还可以被配置为:接收用于处理第二意图的请求;生成用于履行第二意图的请求,用于履行第二意图的请求包括至少一个参数值,该至少一个参数值等于一个或多个字段的一个或多个值中的至少一个值;经由网络接口将请求发送到履行服务;并且经由网络接口接收对第二意图的响应,对第二意图的响应包括从参数值导出的响应数据。至少一个处理器还可以被配置为针对一个或多个主体中的至少一个主体确定系统是否
被配置为自动发现该主体的值。
5.在另一示例中,提供了一种自主地学习新的主体值的方法。该方法可以由对话系统执行,该对话系统包括存储器,该存储器存储一个或多个主体与响应数据的一个或多个字段之间的一个或多个关联。方法包括:接收用于处理意图的请求;生成用于履行意图的请求;经由网络接口将请求发送到履行服务;经由网络接口从履行服务接收指定一个或多个字段的一个或多个值的响应数据;标识从履行服务接收到的响应数据内的一个或多个字段的一个或多个值;使用一个或多个字段经由一个或多个关联来标识一个或多个主体;在存储器内,将一个或多个字段的一个或多个值存储为一个或多个主体的一个或多个值;并且使用一个或多个主体的一个或多个值来对自然语言处理器进行重新训练。
6.方法的至少一些示例可以包括以下特征中的一个或多个。方法还可以包括:经由网络接口从同义词库服务接收指定与一个或多个字段的一个或多个值相关联的同义词库数据的响应,该同义词库数据包括一个或多个字段的一个或多个值的近义词、动词和复数形式中的一个或多个;并且将同义词库数据存储在存储器内。方法还可以包括针对一个或多个主体中的至少一个主体确定对话系统是否被配置为导入关于该主体的同义词库数据。方法还可以包括将一个或多个字段的一个或多个值存储在拼写检查器可访问的词典数据内。方法还可以包括:从用户接收以人类语言表达意图的话语;经由自然语言处理器的执行,将话语标识为表达意图;生成对意图的响应;并且以人类语言将响应呈现给用户。在方法中,意图可以是第一意图。方法还可以包括:接收用于处理第二意图的请求;生成用于履行第二意图的请求,用于履行第二意图的请求包括至少一个参数值,该至少一个参数值等于一个或多个字段的一个或多个值中的至少一个值;经由网络接口将请求发送到履行服务;并且经由网络接口接收对第二意图的响应,对第二意图的响应包括从参数值导出的响应数据。方法还可以包括针对一个或多个主体中的至少一个主体确定对话系统是否被配置为自动发现该主体的值。
7.在另一示例中,提供了一种非暂时性计算机可读介质,该非暂时性计算机可读介质存储用于实现自主学习过程的可执行的指令的序列。在包括存储一个或多个主体与响应数据的一个或多个字段之间的一个或多个关联的存储器的对话系统内,指令的序列包括用于进行以下操作的指令:接收用于处理意图的请求;生成用于履行意图的请求;经由网络接口将请求发送到履行服务;经由网络接口从履行服务接收指定一个或多个字段的一个或多个值的响应数据;标识从履行服务接收到的响应数据内的一个或多个字段的一个或多个值;使用一个或多个字段经由一个或多个关联来标识一个或多个主体;在存储器内,将一个或多个字段的一个或多个值存储为一个或多个主体的一个或多个值;并且使用一个或多个主体的一个或多个值来对自然语言处理器进行重新训练。
8.非暂时性计算机可读介质的至少一些示例可以包括以下特征中的一个或多个。指令的序列还可以包括用于进行以下操作的指令:经由网络接口从同义词库服务接收指定与一个或多个字段的一个或多个值相关联的同义词库数据的响应,该同义词库数据包括一个或多个字段的一个或多个值的近义词、动词和复数形式中的一个或多个;并且将同义词库数据存储在存储器内。指令的序列还可以包括用于针对一个或多个主体中的至少一个主体确定对话系统是否被配置为导入关于该主体的同义词库数据的指令。指令的序列还可以包括用于将一个或多个字段的一个或多个值存储在拼写检查器可访问的词典数据内的指令。
意图可以是第一意图,并且指令的序列还包括用于进行以下操作的指令:接收用于处理第二意图的请求;生成用于履行第二意图的请求,用于履行第二意图的请求包括至少一个参数值,该至少一个参数值等于一个或多个字段的一个或多个值中的至少一个值;经由网络接口将请求发送到履行服务;并且经由网络接口接收对第二意图的响应,对第二意图的响应包括从参数值导出的响应数据。指令的序列还可以包括用于针对一个或多个主体中的至少一个主体确定对话系统是否被配置为自动发现该主体的值的指令。
9.下面详细讨论了其他方面、示例以及这些方面和示例的优点。此外,应当理解,前述信息和以下具体实施方式两者仅仅是各种方面和特征的说明性示例,并且旨在提供用于理解所要求保护的方面和示例的性质和特征的概述或框架。本文公开的任何示例或特征可以与任何其他示例或特征组合。对不同示例的引用不一定是互斥的,并且旨在指示结合该示例描述的特定特征、结构或特性可以包括在至少一个示例中。因此,当提及本文所描述的示例时,诸如“其他”和“另一个”之类的术语并不旨在传达任何种类的排他性或特征分组,而是被包括以促进可读性。
附图说明
10.下面参考附图讨论至少一个示例的各种方面,这些附图并不旨在按比例绘制。附图被包括以提供对各种方面的说明和进一步的理解,并且附图被并入本说明书中并构成本说明书的一部分,但是附图并不旨在作为对任何特定示例的限制的定义。附图与说明书的其余部分一起用于解释所描述和要求保护的方面的原理和操作。在附图中,在各个附图中示出的每个相同或几乎相同的组件由相同的附图标记表示。为了清楚起见,并非每个组件都可以在每幅图中被标记。
11.图1是描绘根据本文描述的一个或多个示例的虚拟助手系统的框图。
12.图2a和图2b是示出根据本文描述的一个或多个示例的主体学习过程的序列图。
13.图3是示出根据本文描述的一个或多个示例的另一主体学习过程的流程图。
14.图4是示出根据本文描述的一个或多个示例的另一主体学习过程的流程图。
15.图5是其中可以实现本文描述的一个或多个示例的计算设备的网络环境的框图。
16.图6是根据本文描述的一个或多个示例的图1的虚拟助手系统的框图,该虚拟助手系统通过计算设备的配置来实现。
具体实施方式
17.如上面所概括的,本文所描述的各种示例针对使虚拟助手能够标识与由虚拟助手处理的意图相关联的主体的新的值的系统和过程。这些系统和过程扩展了对利用这些新的主体值的意图的处理。这种可扩展性使系统和过程能够随时间自主地适应用户和对话代理词汇的改变,从而使系统和过程对于这种改变灵活且鲁棒。本文描述的系统和过程克服了其他虚拟辅助技术中存在的实际限制,这些限制对于用户和对话代理词汇的改变是不灵活的,并且不能自主处理这种改变。这些其他虚拟辅助技术中存在的不灵活性至少部分地源于对用户进行初始设置和配置的依赖。
18.虚拟助手利用nlp系统将话语分类为表达对应的意图。每个意图表示话语的目的或目标。在一些实现方式中,训练nlp系统以将话语分类为意图要求标记的训练数据。该标
记的训练数据可以包括将意图与话语进行关联的记录。例如,训练数据的每个记录可以包括存储话语的第一字段和存储将话语标记为意图的实例的相关联的意图(例如,字符串值)的第二字段。表1列出了根据这些实现方式的训练数据的样本。
[0019][0020][0021]
表1
[0022]
表1中包括的训练数据与例如正在被训练以处理与技术支持相关的话语的nlp系统有关。在该上下文中,nlp系统可能遇到例如要求具有至少一个已标识的共性的服务票证的列表的话语。因此,表1中包括的训练数据将反映该意图的若干话语与“查找”标签进行关联,该“查找”标签也是特定意图(即,查找意图)的值。查找意图可以进而与意图处理程序相关联,该意图处理程序被配置为通过生成具有已标识的共性的服务票证的列表来接收、处理查找意图并对其做出响应,然后虚拟助手可以将该服务票证的列表提供给用户。
[0023]
虚拟助手还利用nlp系统以从话语中提取与意图相关联的主体值。一般而言,意图是通过引用主体的操作被履行的。例如,为了履行请求具有至少一个已标识的共性的服务票证的列表的意图,必须向履行者提供该共性的值。在该示例中,共性是主体,并且值是主体值。为了进一步参考表1进行说明,话语“找到我的票证”提供了共性(即,指派给已标识的代理的票证)的值(即“我”)。话语“找到我的主要票证”提供了两个共性(即,票证的代理和票证的优先级)的两个值(即,“我的”和“主要”)。因此,在一些实现方式中,主体是与意图相关联的意图处理程序的输入参数,并且主体值是影响由意图处理程序执行的处理的参数值。
[0024]
此外,在一些实现方式中,训练nlp系统以从话语中提取主体值要求标记的训练数据。该标记的训练数据可以包括将主体与话语中包括的一个或多个单词(即,主体值)进行关联的记录。例如,训练数据的每个记录可包括存储话语的第一字段、存储将话语标记为意图的实例的相关联的意图(例如,字符串值)的第二字段、存储标识话语内的主体值(例如,一个或多个单词)的第三字段以及存储将主体值标记为主体的实例的相关联的主体(例如,字符串值)的第四字段。表2列出了根据这些实现方式的训练数据的样本。
[0025][0026]
表2
[0027]
表2中包括的训练数据与例如正在被训练以处理与技术支持相关的话语的nlp系统有关。在该上下文中,nlp系统可能遇到例如指定查找意图的话语。因此,表2中包括的训练数据将若干话语与查找意图进行关联,并在这些话语的上下文中进一步将若干主体值与对履行查找意图有用的主体进行关联。
[0028]
在一些实现方式中,nlp系统将主体和主体值存储在根据主体与主体值之间的一种或多种关系被组织的训练数据中。例如,在一个主体与多个主体值相关联的情况下,nlp系统可以利用将该主体与每个主体值和该主体值的任何近义词进行相关的结构来存储该主体及其相关联的多个主体值。为了进一步参考表2进行说明,可以将请求者主体和与该请求者主体相关联的多个主体值存储在如下的数据结构中。
[0029]
[0030][0031]
在某些实现方式中,训练过程(例如,反向传播过程、子梯度下降过程等)访问并处理上面描述的训练数据以生成模型(例如,人工神经网络、支持向量机等),该模型被训练以将话语分类为意图和/或从话语中提取主体值。
[0032]
上面描述的训练数据源自一个或多个源。一些nlp系统从用户(例如,机器语言(ml)工程师)接收训练数据,该用户熟练地为特定的nlp系统应用生成训练数据。另外地或可替代地,一些nlp系统(例如,google dialogflow和azure luis)提供了预先配置的训练数据,这些训练数据可以原样使用,或者由ml工程师和/或最终用户补充其他训练数据。这种预先配置的训练数据可以使经训练的nlp系统能够从话语中提取例如日期、时间和人名。受到知识领域特定的词汇的全面训练的nlp系统使nlp系统支持的虚拟助手能够在知识领域内流畅地与用户交互。
[0033]
尽管虚拟助手可以提供好处,但是仍然存在关于虚拟助手的配置和使用的挑战。例如,关于专门的知识领域的交流典型地包括专门的语言(即,专门术语)。然而,在某些情况下,向nlp训练数据中不必要地添加专门术语可能降低虚拟助手的功效。另外地,一些主体(例如,公司、人员等)可能要求将大量主体值完全填充到训练数据中。该要求可以使找到适当的训练数据的源变得不容易。此外,用于在知识领域内进行交流的词汇往往随时间而变化。
[0034]
为了克服以上限制,并且为了克服在阅读和理解本说明书后将显而易见的其他限制,本文描述的一些示例包括使虚拟助手能够自主地调整其语言模型以匹配虚拟助手在其中操作的知识领域的当前状态的系统和过程。本公开的教导可以在各种各样的虚拟助手(包括例如可从华盛顿州西雅图市的amazon.com公司获得的alexa虚拟助手;可从加利福尼亚州山景城的google公司获得的google assistant虚拟助手;以及可从加利福尼亚州旧金山的slack technologies公司获得的机器人)中找到有意义的应用。
[0035]
在一些示例中,本文描述的系统和过程实现一个或多个应用编程接口(api),nlp可以通过该api接收新发现的主体值。在这些示例中,api将新发现的主体值存储在用于训
练nlp系统和启动对nlp系统的重新训练的操作数据和/或训练数据内。以这种方式,本文描述的系统和过程使nlp系统能够适当地处理包含新的主体值的话语并对其做出响应。
[0036]
此外,在一些示例中,本文描述的系统和过程在技能或履行服务内实现发现代理。在这些示例中,发现代理被配置为分析对技能履行请求的响应并标识存储在其中的新的主体值。发现代理还被配置为使用上面描述的api来向nlp系统通知新的主体值(例如,在发现代理标识履行响应内的新的主体值的情况下)。
[0037]
本文讨论的方法和系统的示例在应用中不限于在以下描述中阐述或在附图中示出的构造细节和组件的布置。该方法和系统能够在其他示例中实现并且能够以各种方式被实践或执行。本文提供的特定实现方式的示例仅出于说明性的目的,并且不旨在是限制性的。特别地,结合任何一个或多个示例讨论的动作、组件、元件和特征不旨在被排除在任何其他示例中的类似角色之外。
[0038]
自主学习对话系统
[0039]
在一些示例中,对话系统(例如,虚拟助手)被配置为通过正常操作的过程自主地学习新的主体值。图1示出了根据这些示例的对话系统100的逻辑架构。
[0040]
如图1中示出的,对话系统100包括虚拟助手102、履行服务104和同义词库服务130。虚拟助手102包括人类语言接口106、机器人服务108、技能服务110和nlp系统112。技能服务110包括一个或多个意图处理程序128和发现代理114。(多个)意图处理程序128中的任何一个可以在本文中被统称为意图处理程序128。nlp系统112包括api 116、自然语言处理器118、语言模型数据存储库120、拼写检查器122和词典数据存储库124。图1还示出了这些计算机实现的过程之间的通信线路。下面提供关于这些通信的细节,但是应当指出的是,所描绘的通信线路可以包括过程间通信(例如,在图1中示出的计算机实现的过程中的两个或更多个驻留在相同的执行环境中的情况下)以及基于网络的通信(例如,在过程中的两个或更多个驻留在通过计算机网络彼此耦合的不同的执行环境中的情况下)。在一些示例中,计算机实现的过程之间的通信线路可以包括基于超文本传输协议(http)的通信。
[0041]
在图1中,接口106被配置为通过接收话语和呈现响应来与用户105交互。接口106可以包括例如一个或多个输入/输出设备(例如,麦克风、键盘、相机等)和被配置为驱动输入/输出设备的操作的软件栈。接口106还包括可以检测由用户105发出的话语并将响应呈现给用户105的更高级别的过程。这些话语和响应可以在人类可访问的任何介质中被传送,其中最突出的介质可能是声音、视线和/或触摸。因此,用户105经由发声、打字、打手势等发出话语。响应可以由扬声器、显示器和/或触觉设备呈现。音频话语可以开始于唤醒词(例如,虚拟助手的名称),然后是请求。音频响应可以由接口106实现的文本语音转换程序生成。
[0042]
继续图1,机器人服务108被配置为与用户105交互以管理与用户105的对话。因此,机器人服务108可以从接口106接收话语,并且将要由接口106呈现的响应发送到用户105。机器人服务108还被配置为与nlp系统112和技能服务110互操作以在发送之前生成响应。例如,在一些示例中,机器人服务108可以将从接口106接收到的话语发送到nlp系统112以进行处理,并且可以从nlp系统112接收意图和与意图相关联的主体值。此外,机器人服务108可以向技能服务110发送意图和主体值以履行意图,并且可以从技能服务110接收响应。通过与用户105交互,机器人服务108可以执行各种有用的过程,例如,用户标识和认证、回答
116的主体值限制为仅新发现的主体值。进而,api 116被配置为接收主体值、执行一个或多个过程以将新的主体值存储在数据存储库120和124中、并且启动对自然语言处理器118的重新训练。在一些示例中,api 116是基于http的api,尽管这不是必需的。在某些示例中,api 116可以利用近义词和从同义词库服务130中取回的其他数据补充新的主体值,该同义词库服务130是暴露api以使得能够取回同义词库数据的外部服务。下面参考图2-4进一步描述发现代理114和api 116被配置为执行的过程的示例。
[0047]
应当指出的是,在一些示例中,api 116被实现为两个不同的api。在这些示例中,api 116中的一个由自然语言处理器118暴露,并且api 116中的另一个由拼写检查器122暴露。此外,在这些示例中,由自然语言处理器118暴露的api被配置为与同义词库服务130通信,并执行下面参考图3进一步描述的学习过程300。而且,在这些示例中,由拼写检查器122暴露的api被配置为执行下面参考图4进一步描述的学习过程400。
[0048]
图1中示出的计算机实现的过程被配置为彼此互操作以共同执行自主学习过程,同时虚拟助手102在生产环境中操作。这些过程通过从用户105接收话语、处理话语以标识在话语内说明的意图、履行意图并向用户105呈现反映履行的响应来实现技能履行。这些过程通过以下操作来实现自主学习:在技能履行期间发现新的主体值;将新的记录存储在数据存储库120和124中;以及调度对自然语言处理器118的重新训练,从而使虚拟助手102适应于正确地处理新的主体值。下面参考图2-4进一步描述利用自主学习过程的技能履行的示例。
[0049]
图2是示出成功执行的过程200的一个示例的序列图,该过程200利用自主学习来实现技能履行。如图2中示出的,过程200包括图1中示出的计算机实现的过程之间的互操作,这些过程在发现新的主体值的同时共同履行意图以实现自主学习。
[0050]
过程200开始于虚拟助手的人类语言接口(例如,图1的虚拟助手102的人类语言接口106)从用户(例如,图1的用户105)接收话语202。例如,在一个示例中,人类语言接口接收以从由计算设备的麦克风获取的音频信号中数字化的音频数据的形式的话语202。人类语言接口将话语202传递到机器人服务(例如,图1的机器人服务108)以进行后续处理。机器人服务生成包括话语202的解析请求消息204,并将解析请求204发送到自然语言处理器(例如,图1的自然语言处理器118)。
[0051]
继续过程200,自然语言处理器接收解析请求204、从解析请求204中取回话语202、并且执行自然语言处理以将话语202转换为标准化形式(例如,音频数据的文本表示)。然后,自然语言处理器生成包括话语202的标准化形式的归一化的请求消息206并将其发送到拼写检查器(例如,图1的拼写检查器122)。拼写检查器接收归一化的请求206并生成话语202的归一化形式。在某些示例中,为了生成归一化形式,拼写检查器访问词典数据存储库(例如,图1的词典数据存储库124)以标识话语202的标准化形式中包括的所有单词的归一化的拼写。拼写检查器将任何非归一化的拼写替换为归一化的拼写。拼写检查器将包括话语202的归一化形式(例如,其中所有单词均具有归一化的拼写的音频数据的文本表示)的归一化的响应消息208发送到自然语言处理器118。
[0052]
继续过程200,自然语言处理器接收归一化响应208、取回话语202的归一化形式、使用归一化形式将话语202分类为特定意图、并且从归一化形式中提取与特定意图相关联的一个或多个主体值。在一些示例中,自然语言处理器通过执行被训练以标识意图并提取
与意图密切相关的一个或多个主体值的一个或多个机器学习过程,对话语202进行分类并提取一个或多个主体值。能够进行这种分类和提取活动的自然语言处理器的示例包括dialogflow和luis。意图可以是例如可由技能服务(例如,技能服务110)服务的意图。自然语言处理器生成解析响应消息210并将其发送到机器人服务。该解析响应210包括意图和一个或多个主体值,以及一个或多个度量,这些度量指示意图和一个或多个主体值正确的一个或多个置信水平。例如,在针对技术支持的示例中,自然语言处理器可以将话语202分类为说明查找意图。自然语言处理器可以从话语202中进一步提取与查找意图相关联的票证优先级主体的值。这些主体值的示例可以包括“次要”、“主要”、“高”、“低”、“关键”等。
[0053]
继续过程200,机器人服务接收解析响应210并提取意图、一个或多个主体值以及一个或多个置信度量。机器人服务(例如,通过将一个或多个置信度量与一个或多个预定义的阈值进行比较)确定一个或多个置信度量是否足以保证进一步的处理。在机器人服务(例如,通过确定一个或多个置信度量不超过一个或多个阈值)确定一个或多个置信度量不保证进一步的处理的情况下,机器人服务经由人类语言接口通知用户虚拟助手无法对话语202进行进一步的处理。在机器人服务(例如,通过确定一个或多个置信度量超过一个或多个阈值)确定一个或多个置信度量需要进一步的处理的情况下,机器人服务标识已注册以履行意图的技能服务(例如,技能服务110)、生成技能服务请求消息212、并且将技能服务请求212发送到技能服务。在一些示例中,为了标识技能服务,机器人服务访问存储在存储器中的将意图与技能服务进行关联的交叉引用、在交叉引用内找到意图、并且通过其与交叉引用中的意图的关联来标识技能服务。技能服务请求包括意图和一个或多个主体值。
[0054]
继续过程200,技能服务接收技能服务请求212,并取回意图和其中指定的任何主体值。技能服务标识与意图相关联并被配置为履行意图的意图处理程序(例如,图1的意图处理程序128)。例如,在某些示例中,技能服务访问存储在存储器中的将意图与意图处理程序进行关联的交叉引用、在交叉引用内找到意图、并且通过其与交叉引用中的意图的关联来标识意图处理程序。技能服务通过经由处理程序请求214调用已标识的意图处理程序来履行意图。在技能服务请求212包括与意图相关联的主体值的情况下,技能服务将主体值传递到处理程序请求214内的意图处理程序。例如,在针对技术支持的示例中,技能服务请求212可以指定查找意图和将用户105标识为指派给要查找的服务票证的公共代理的主体值。在该示例中,技能服务标识已注册以处理查找意图的处理程序、执行该处理程序、并且经由处理程序请求214将标识用户的主体值传递到该处理程序。
[0055]
继续过程200,在意图的处理期间,意图处理程序可以执行各种各样的程序化操作。为了促进可扩展性,意图处理程序可以通过生成履行请求216并将履行请求216发送到履行服务(例如,图1的履行服务104)来卸载处理。履行请求216可以包括有助于履行服务执行的任何参数。因此,被包括在履行请求216中的参数可以指定对履行服务的输入和/或请求来自履行服务的输出。此外,参数可以包括由技能服务经由处理程序请求214传递到意图处理程序的主体值。在这些示例中,意图处理程序标识意图处理程序的与主体值相关联的参数,并将主体值传递到意图处理程序作为已标识的参数。例如,在一些示例中,意图处理程序访问存储在存储器中的将主体与参数进行关联的交叉引用、在交叉引用内找到主体、并且通过其与主体的关联来标识参数。
[0056]
在其中意图针对维护用户的时间表的示例中,意图处理程序可以生成并发送技能
履行请求216,该技能履行请求216包括指定用户的标识符和对用户时间表的改变的参数。这些参数可以是由技能服务经由处理程序请求214传递到意图处理程序的主体值。在其中意图是查找意图的不同示例中,意图处理程序可以生成并发送技能履行请求216,该技能履行请求216包括指定用户的标识符的参数。该参数可以是由技能服务经由处理程序请求214传递到意图处理程序的主体值。更具体地,在至少一个示例中,由意图处理程序发送的针对查找意图的履行请求216可以是http请求,该http请求包括统一资源标识符(uri),例如,“/tickets?name=《agent》”,其中《agent》是由主体值指定的用户的标识符。在另一示例中,由意图处理程序发送的针对查找意图的履行请求216可以是http请求,该http请求包括uri,例如,“/tickets?priority=major&requestor=citrix”。在该示例中,意图处理程序标识主体值“major”和“citrix”分别与查找意图处理程序的“priority”和“requestor”参数相关联,并将这些主体值传递到查找意图处理程序作为参数值。
[0057]
继续过程200,履行服务接收履行请求216、生成履行响应218、并且将履行响应218发送到意图处理程序。履行响应218可以包括例如由履行服务在其对履行请求216的处理期间生成或接收到的响应数据。例如,该响应数据可以包括关于履行服务是否成功处理了履行请求216的指示符。响应数据还可以包括由意图处理程序经由履行请求216请求的一个或多个响应值。在一些示例中,响应值存储在名称-值对中。在这些示例中,名称是响应字段的标识符,并且值是与响应字段相关联的响应值。
[0058]
例如,在针对维护用户时间表的示例中,履行服务可以接收技能履行请求216、取回用户的标识符和时间表改变数据、并且与外部日历服务进行互操作以根据时间表改变数据更新用户的时间表。此外,在该示例中,履行服务可以生成并发送具有响应数据的履行响应218,该响应数据包括指示符和响应值,该指示符表示用户的时间表未成功更新,该响应值标识与用户的时间表冲突的冲突事件。响应值可以被存储为例如“conflict:{

2010/06/03’,

23:45’,’meeting with natalie’}”,其中“conflict”是响应字段(在这里为对象名称),并且“{

2010/06/03’,

23:45’,’meeting with natalie’}”是响应值。
[0059]
在针对技术支持的示例中,履行服务可以搜索并标识与在履行请求216中指定的代理(例如,用户)相关联的任何票证。履行服务还可以生成包括响应数据的履行响应218,并将履行响应218发送到意图处理程序。响应数据可以包括指示符和响应值,该指示符表示查询成功,该响应值描述由履行服务标识的票证。履行响应218可以采取http响应的形式。例如,履行服务可以生成并发送http响应,该http响应包括具有以下结构的javascript对象表示法(json)对象。
[0060]
tickets:list of ticket objects
[0061][0062]
在该示例中,响应数据的名称-值对具有以下形式:“id:《number》”、“agent:《string》”、“description:《string》”、“priority:《string》”和“requestor:《string》”。
[0063]
在另一示例中,履行服务可以搜索并标识与在履行请求216中指定的请求者(例如,“citrix”)相关联的任何票证。履行服务还可以生成包括响应数据的履行响应218,并将履行响应218发送到意图处理程序。响应数据可以包括指示符和响应值,该指示符表示查询成功,该响应值描述由履行服务标识的票证。该履行响应218可以采取http响应的形式。例如,履行服务可以生成并发送http响应,该http响应包括json票证对象的以下列表。
[0064]
[0065][0066]
在该示例中,响应数据的名称-值对包括“ticket_1_id:1”、“ticket_1_agent:/unassigned
’”
、“ticket_1_description:’bug in patent tool
’”
、“ticket_1_priority:’major
’”
、“ticket_1_requestor:’citrix
’”
、“ticket_2_id:2”、“ticket_2_agent:/unassigned
’”
、“ticket_2_description:’slow responses
’”
、“ticket_2_priority:’very minor
’”
、“ticket_2_requestor:’citrix
’”

[0067]
继续过程200,意图处理程序接收履行响应218并处理履行响应218,以生成处理程序响应220和发现请求222两者。在该处理期间,意图处理程序解析履行响应218并从履行响应218提取响应数据。意图处理程序基于响应数据的内容生成处理程序响应220。例如,在一些示例中,在响应数据指示履行服务无法执行程序化动作和/或无法返回由意图处理程序在履行请求216中请求的信息的情况下,意图处理程序生成处理程序响应220,该处理程序响应220指示该意图未能成功履行。然而,在这些示例中,在响应数据指示履行服务成功地执行程序化动作和/或成功地返回请求的信息的情况下,意图处理程序生成指示动作成功的处理程序响应220和/或将请求的信息合并到请求处理程序响应220中。在成功生成处理程序响应220之后,意图处理程序将处理程序响应传递到技能服务,以最终呈现给用户。
[0068]
在一些示例中,为了生成发现请求222,意图处理程序标识在响应数据内的与语言模型中的主体相关联的响应字段。在一些示例中,为了标识响应字段与主体之间的关联,意图处理程序访问存储在存储器中的将响应字段与主体进行关联的交叉引用;在交叉引用内找到交叉引用内的响应字段,并且通过其与交叉引用中的响应字段的关联来标识主体。可替代地或另外地,履行响应218可以利用与语言模型的主体匹配的响应字段。在任一情况下,意图处理程序在发现请求222内存储被标识为与响应字段相关联的每个主体和与响应
字段相关联的响应值之间的关联。在一些示例中,意图处理程序将这些关联存储为名称-值对。在成功生成发现请求222之后,意图处理程序将发现请求222发送到发现代理(例如,图1的发现代理114)。
[0069]
在针对技术支持的示例中,表3中列出了将响应字段与主体进行关联的交叉引用的一部分。
[0070]
响应字段主体ticket_1_prioritypriority(优先级)ticket_2_prioritypriorityticket_1_requestorrequestor(请求者)ticket_2_requestorrequestor
[0071]
表3
[0072]
在该示例中,在履行响应218包括上面描述的json票证对象的列表的情况下,意图处理程序在发现请求222中存储关联,这些关联包括以下名称-值对:“priority:[major,very minor]”和“requestor:’citrix
’”

[0073]
结合参考图2a和图2b继续过程200,发现代理解析发现请求222并取回主体与其中指定的响应值之间的关联。发现代理还使用主体和响应值生成add_entity请求224,并将add_entity请求224发送到api(例如,图1的api 116)。以这种方式,发现代理将主体和响应值传递到api,以用于潜在地并入nlp系统(例如,图1的nlp系统112)中。
[0074]
在一些示例中,发现代理通过执行api支持的调用来生成并发送add_entity请求224,以将新的主体值添加到针对现有主体的语言模型中。在这些示例中,api调用包括一个或多个主体参数和一个或多个主体值参数。主体参数中的每一个标识以扩展为目标的现有主体。主体值参数中的每一个针对其相关联的现有主体标识潜在的新的值。在这些示例中,对于从发现请求222中取回的每个关联,发现代理在api调用中包括主体参数和主体值参数,该主体参数的值等于在关联中指定的主体,该主体值参数的值等于关联中指定的响应值。以这种方式,发现代理将与主体相关联的响应值映射到该主体的潜在的新的主体值。
[0075]
在针对技术支持并且其中关联被存储为名称-值对的示例中,发现代理可以生成具有与发现请求中包括的名称-值对匹配的参数的api调用(例如,“priority:[major,very minor]”),尽管在发现请求222与add_entity请求224之间的这种语法对应关系不是必需的。例如,api调用可能针对每个主体要求单个主体值(例如,“priority:major”,“priority:very minor”)。其他表述对本领域技术人员将是显而易见的。
[0076]
应当指出的是,在一些示例中,发现代理可以将add_entity请求224的生成和发送限制为仅包括语言模型中不存在的主体值(例如,未存储在图1的数据存储库120和124中的主体值)。在这些示例中,发现代理确定与发现请求222中的主体相关联的每个响应值是否与主体值匹配,该主体值与例如将主体和主体值进行关联的交叉引用内的主体相关联。该交叉引用可以本地存储在分配给技能服务和/或意图处理程序的存储器中。
[0077]
继续过程200,api生成同义词库请求226并将该同义词库请求发送到同义词库服务(例如,图1的同义词库服务130)。例如,同义词库请求226可以是以http请求的形式的api调用,该http请求指定针对其请求了同义词库数据的主体值。同义词库服务接收同义词库请求226、查找其中请求的同义词库数据、并且生成并发送同义词库响应228。同义词库响应
228可以包括由同义词库服务130标识的同义词库数据。
[0078]
继续过程200,api接收同义词库响应228,并生成存储值请求230和232,并将这些消息分别发送到拼写检查器(例如,图1的拼写检查器122)和自然语言处理器(例如,图1的自然语言处理器118)。存储值请求230和232中的每一个可以是例如以指定主体值的http请求的形式的api调用。响应于存储值请求230的接收,自然语言处理器将接收到的主体值存储在语言模型数据存储库(例如,图1的语言模型数据存储库120)的训练数据中,并使用更新后的训练数据对其自身进行重新训练。响应于存储值请求232的接收,拼写检查器将接收到的主体值存储在由拼写检查在其操作期间利用的字典数据存储库(例如,图1的字典数据存储库124)中。应当指出的是,在一些示例中,将存储值请求230和232直接发送到语言模型数据存储库和字典数据存储库,以由自然语言处理器和拼写检查器进行存储和利用。在这些示例中,api或自然语言处理器可以在主体值的存储之后启动对自然语言处理器的重新训练。
[0079]
继续过程200,技能服务生成基于并包括处理程序响应220的技能服务响应234,并将技能服务响应234发送到机器人服务。技能服务响应234可以包括要呈现给用户的文本。接下来,机器人服务基于技能服务响应234生成响应236,并将响应236发送到人类语言接口。人类语言接口接收响应236,并基于响应236向用户呈现响应238,并且过程200结束。响应238可以包括例如技能服务响应234的文本和/或音频呈现。因此,由人类语言接口提供的呈现可以包括指示技能履行成功或失败的内容,以及由意图处理程序、技能服务、机器人服务和/或人类语言接口修改和/或增强的、表示由履行服务生成的响应数据的内容。在呈现响应236之后,过程200结束。
[0080]
应当指出的是,在一些示例中,外部服务(例如,履行服务104)可以被配置为将add_entity请求直接发送到api 116。在初始配置、系统维护或在对话系统未在生产环境中操作时的另一点期间,该方法可能是有益的。
[0081]
图3是示出学习过程300的一个示例的流程图,在一些示例中,api(例如,图1的api 116)被配置为执行该流程图。如图3中示出的,过程300开始于api从发现代理(例如,图1的发现代理114)接收302add_entity请求(例如,图2的add_entity请求224)。例如,在一个示例中,add_entity请求是采用http请求(例如,http post)的形式的api调用,该http请求包括主体与主体值之间的关联(例如,名称-值对)。api解析add_entity请求,并取回304存储在其中的尚未被过程300的该实例处理的下一个关联。该下一个关联将主体与主体值进行关联以用于潜在地并入语言模型中。
[0082]
继续过程300,api确定306api是否配置为自动发现关联中标识的主体的主体值。例如,api可以访问将主体与配置选项进行关联的交叉引用。这些配置选项可以包括布尔标志或指示api是否被授权接收和存储主体的新的主体值的其他指示符。在api确定306api被配置为自动发现主体的主体值的情况下,api进行到操作308。在api确定306api没有被配置为自动发现主体的主体值的情况下,api进行到操作328。
[0083]
在操作308中,api确定在关联中标识的主体值是否已经存在于语言模型数据存储库(例如,图1的语言模型数据存储库120)中。例如,api可以查询语言模型数据存储库以确定主体值是否存储在其中。在api确定308主体值存在于语言模型数据存储库中的情况下,api进行到操作328。在api确定308主体值不存在于语言模型数据存储库中的情况下,api将
与主体相关联的主体值存储310在语言模型数据存储库中。在一些示例中,api与语言模型数据存储库直接互操作以在其中存储主体值。在其他示例中,api通过发送消息(例如,图2的存储值请求232)来与自然语言处理器(例如,图1的自然语言处理器118)互操作,从而将主体值存储在语言模型数据存储库内。
[0084]
继续过程300,api确定312api是否被配置为导入针对关联中标识的主体的同义词库数据。例如,api可以访问将主体与配置选项进行关联的交叉引用。这些配置选项可以包括布尔标志或指示api是否被授权导入针对主体的同义词库数据的其他指示符。在api确定312该api被配置为导入针对主体的同义词库数据的情况下,api进行到操作314。在api确定312该api被配置为不导入针对主体的同义词库数据的情况下,api进行到操作328。
[0085]
在操作314中,api取回针对主体值的同义词库数据。同义词库数据可以包括例如主体值的复数版本、基于主体值的动词以及主体值的近义词。在一些示例中,api通过与外部同义词库服务(例如,图1的同义词库服务130)互操作来取回同义词库数据。这些互操作可以包括以http请求和响应的形式的api调用和响应(例如,图2的同义词库请求226和同义词库响应228)。
[0086]
继续过程300,api确定316主体是否被配置为接受主体值的复数形式。例如,api可以访问将主体与配置选项进行关联的交叉引用。这些配置选项可以包括布尔标志或指示相关联的主体是否被授权接受主体值的复数形式的其他指示符。在api确定316主体被配置为接受主体值的复数形式的情况下,api进行到操作318。在api确定316主体被配置为不接受主体值的复数形式的情况下,api进行到操作320。
[0087]
在操作318中,api将与主体相关联的主体值的复数形式存储在语言模型数据存储库中。在一些示例中,api与语言模型数据存储库直接互操作以在其中存储复数形式。在其他示例中,api通过发送消息(例如,图2的存储值请求232)来与自然语言处理器互操作,从而将复数形式存储在语言模型数据存储库内。
[0088]
在操作320中,api确定主体是否被配置为接受主体值的动词形式。例如,api可以访问将主体与配置选项进行关联的交叉引用。这些配置选项可以包括布尔标志或指示相关联的主体是否被授权接受主体值的动词形式的其他指示符。在api确定320主体被配置为接受主体值的动词形式的情况下,api进行到操作322。在api确定320主体被配置为不接受主体值的动词形式的情况下,api进行到操作324。
[0089]
在操作322中,api将与主体相关联的主体值的动词形式存储在语言模型数据存储库中。在一些示例中,api与语言模型数据存储库直接互操作以在其中存储动词形式。在其他示例中,api通过发送消息(例如,图2的存储值请求232)来与自然语言处理器互操作,从而将动词形式存储在语言模型数据存储库内。
[0090]
在操作324中,api确定主体是否被配置为接受主体值的近义词。例如,api可以访问将主体与配置选项进行关联的交叉引用。这些配置选项可以包括布尔标志或指示相关联的主体是否被授权接受主体值的近义词的其他指示符。在api确定324主体被配置为接受主体值的近义词的情况下,api进行到操作326。在api确定320主体被配置为不接受主体值的近义词的情况下,api进行到操作328。
[0091]
在操作326中,api将与主体相关联的主体值的近义词存储在语言模型数据存储库中。在一些示例中,api与语言模型数据存储库直接互操作以在其中存储近义词。在其他示
例中,api通过发送消息(例如,图2的存储值请求232)来与自然语言处理器互操作,从而将近义词存储在语言模型数据存储库内。
[0092]
在操作328中,api确定在add_entity请求中是否存在更多未处理的关联。在api确定328在add_entity请求中存在更多未处理的关联的情况下,api返回以取回304下一个关联。在api确定328在add_entity请求中不再存在未处理的关联的情况下,api进行到操作330。
[0093]
在操作330中,api确定是否将新发现的主体值作为训练数据添加到语言模型数据存储库中。例如,api可以维护其在过程300的每个实例期间执行的操作的日志,并且可以在该操作内参考该日志以确定在过程300的该实例期间是否已经添加了新的主体值。在api确定新发现的主体值被添加到语言模型数据存储库中的情况下,api启动332对自然语言处理器的重新训练和加载,并且过程300结束。在api确定330主体值没有被添加到语言模型数据存储库中的情况下,过程300结束。
[0094]
图4是示出另一学习过程400的一个示例的流程图,在一些示例中,api(例如,图1的api 116)被配置为执行该流程图。如图4中示出的,过程400开始于api从发现代理(例如,图1的发现代理114)接收402add_entity请求(例如,图2的add_entity请求224)。例如,在一个示例中,add_entity请求是采用http请求(例如,http post)的形式的api调用,该http请求包括主体与主体值之间的关联(例如,名称-值对)。api解析add_entity请求,并取回404存储在其中的尚未被过程400的该实例处理的下一个关联。该下一个关联将主体与主体值进行关联以用于潜在地并入语言模型中。
[0095]
继续过程400,api确定406在关联中标识的主体值是否已经存在于字典数据存储库(例如,图1的字典数据存储库124)中。在api确定406主体值存在于词典数据存储库中的情况下,api进行到操作428。在api确定406主体值不存在于字典数据存储库中的情况下,api将与主体相关联的主体值存储410在字典数据存储库中。在一些示例中,api与字典数据存储库直接互操作以在其中存储主体值。在其他示例中,api通过发送消息(例如,图2的存储值请求230)来与拼写检查器(例如,图1的拼写检查器122)互操作,从而将主体值存储在字典数据存储库中。
[0096]
在操作428中,api确定在add_entity请求中是否存在更多未处理的关联。例如,api可以访问存储在add_entity请求中的名称-值对的列表,并确定当前关联是否为列表的最后一个成员。在api确定428在add_entity请求中存在更多未处理的关联的情况下,api返回以取回404下一个关联。在api确定428在add_entity请求中不再存在未处理的关联的情况下,api进行到操作440。
[0097]
在操作440中,api确定是否将新发现的主体值添加到字典数据存储库中。例如,api可以维护其在过程400的每个实例期间执行的操作的日志,并且可以在该操作内参考该日志以确定在过程400的该实例期间是否已经添加了新的主体值。在api确定新发现的主体值被添加到字典数据存储库中的情况下,api启动442将字典重新加载到拼写检查器中,并且过程400结束。在api确定440主体值没有被添加到字典数据存储库中的情况下,过程400结束。
[0098]
应当指出的是,在一些示例中,api可以通过执行与上面参考图3描述的操作312-326类似的操作来将同义词库数据添加到词典数据模型中。
[0099]
本文公开的过程中的每一个过程各自描绘了特定示例中的一个特定的动作序列。一些动作是可选的,并且因此可以根据一个或多个示例省略这些动作。另外地,在不脱离本文讨论的装置和方法的范围的情况下,可以改变动作的次序,或者可以添加其他动作。
[0100]
用于自主学习对话系统的计算设备
[0101]
图5是根据本文公开的示例的被配置为实现各种自主学习对话系统和过程的计算设备500的框图。
[0102]
计算设备500包括一个或多个处理器503、易失性存储器522(例如,随机存取存储器(ram))、非易失性存储器528、用户接口(ui)570、一个或多个网络或通信接口518和通信总线550。计算设备500也可以被称为客户端设备、计算设备、端点设备、计算机或计算机系统。
[0103]
非易失性(非暂时性)存储器528可以包括:一个或多个硬盘驱动器(hdd)或其他磁或光存储介质;一个或多个固态驱动器(ssd),例如,闪存驱动器或其他固态存储介质;一个或多个混合磁驱动器和固态驱动器;和/或一个或多个虚拟存储卷(例如,云存储装置),或这种物理存储卷和虚拟存储卷或其阵列的组合。
[0104]
用户接口570可以包括图形用户接口(gui)(例如,呈现在触摸屏、显示器等上的控件)和一个或多个输入/输出(i/o)设备(例如,鼠标、键盘、麦克风、一个或多个扬声器、一个或多个相机、一个或多个生物特征扫描仪、一个或多个环境传感器、以及一个或多个加速度计、一个或多个visor等)。
[0105]
非易失性存储器528存储os 515、一个或多个应用或程序516以及数据517。os 515和应用516包括被编码以供(多个)处理器503执行的指令的序列。这些指令的执行导致被操纵的数据。在这些指令的执行之前,指令可以被复制到易失性存储器522。在一些示例中,易失性存储器522可以包括一种或多种类型的ram和/或可以提供比主存储器更快的响应时间的高速缓冲存储器。可以通过用户接口570键入数据,或者可以从诸如网络接口518之类的其他(多个)i/o设备接收数据。上面描述的设备500的各种元件可以经由通信总线550彼此通信。
[0106]
所示的计算设备500仅被示为示例客户端设备或服务器,并且可以在具有任何类型的物理机器或虚拟机或一组物理机器和虚拟机的任何计算或处理环境内实现,这些物理机器或虚拟机可以具有能够如本文所描述地进行操作的合适的硬件和/或软件。
[0107]
(多个)处理器503可以由一个或多个可编程处理器实现以执行一个或多个可执行指令(例如,计算机程序)以执行系统的功能。如本文所使用的,术语“处理器”描述了执行功能、操作或操作的序列的电路。可以将功能、操作或操作的序列硬编码到电路中,或通过保存在存储器设备中并由电路执行的指令的方式对功能、操作或操作的序列进行软编码。处理器可以使用数字值和/或使用模拟信号来执行功能、操作或操作的序列。
[0108]
在一些示例中,处理器可以体现在一个或多个专用集成电路(asic)、微处理器、数字信号处理器(dsp)、图形处理单元(gpu)、微控制器、现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、多核心处理器或具有关联存储器的通用计算机中。
[0109]
(多个)处理器503可以是模拟的、数字的或混合的。在一些示例中,(多个)处理器503可以是一个或多个本地定位的物理处理器或一个或多个远程定位的物理处理器。(多个)处理器503可以包括多个处理器核心和/或多个处理器,并且可以提供用于并行、同时执
行多个指令的功能或者针对多于一条数据并行、同时执行一条指令的功能。
[0110]
网络接口518可以包括一个或多个接口,以使计算设备500能够访问计算机网络580,例如,局域网(lan)、广域网(wan)、个域网(pan)或通过各种有线和/或无线连接(包括蜂窝连接和蓝牙连接)的互联网。在一些示例中,网络580可以允许与其他计算设备590进行通信,以实现分布式计算。网络580可以包括例如计算设备可以在其上交换数据的一个或多个私有网络和/或公共网络。
[0111]
在所描述的示例中,计算设备500可以代表客户端设备的用户执行应用。例如,计算设备500可以执行由管理程序管理的一个或多个虚拟机。每个虚拟机可以提供执行会话(例如,托管的桌面会话),在该执行会话内,应用代表用户或客户端设备执行。计算设备500还可以执行终端服务会话以提供托管的桌面环境。计算设备500可以提供对包括一个或多个应用、一个或多个桌面应用以及可以在其中执行一个或多个应用的一个或多个桌面会话的远程计算环境的访问。
[0112]
图6示出了自主学习对话系统(例如,图1的对话系统100),其被配置用于在包括计算设备(例如,图5的计算设备500)的分布式计算系统600内的操作。如图6中示出的,分布式计算系统600包括客户端计算机602、服务器计算机604a和604b以及服务器环境606。客户端计算机602、服务器计算机604a和604b以及服务器环境606被配置为经由网络608彼此互操作。客户端计算机602、服务器计算机602a和602b、服务器环境606和网络608中的每一个包括至少一个计算设备(例如,图5的计算设备500)。在一些示例中,服务器环境606包括被构造为集群或其他高可用性、高带宽计算平台的多个计算设备。
[0113]
客户端计算机602被配置为托管图1的人类语言接口106。服务器计算机604a被配置为托管图1的履行服务104。服务器计算机604b被配置为托管图1的同义词库服务130。服务器环境606被配置为托管图1的机器人服务108、技能服务110和nlp系统112。
[0114]
分布式计算系统600只是可以用于实现自主学习对话系统的许多潜在配置的一个示例。因此,本文公开的示例不限于计算设备的特定配置,并且其他配置被认为落入本公开的范围内。
[0115]
附加示例
[0116]
为了进一步说明本文所描述的自主学习对话系统和方法的方面和优点,现在将描述两个附加的示例。这些示例针对在技术支持方面精通的对话系统(例如,图1的对话系统100)。
[0117]
在第一示例中,对话系统可以成功处理以下话语:“显示票证”、“显示主要票证”、“显示citrix票证”和“显示citrix的主要票证”。更具体地,对话系统可以识别“显示票证”意图、针对请求者主体的主体值“citrix”、以及针对优先级主体的主体值“主要、次要和关键”。
[0118]
继续第一示例,用户请求对话系统“显示票证”。对话系统履行意图,并利用以下票证的列表进行响应。
[0119]
{id:1,优先级:主要,请求者:“公司1”,
……
}
[0120]
{id:2,优先级:次要,请求者:“公司1”,
……
}
[0121]
{id:3,优先级:主要,请求者:“公司2”,
……
}
[0122]
{id:4,优先级:关键,请求者:“公司3”,
……
}
[0123]
{id:5,优先级:阻止,请求者:“citrix”,
……
}
[0124]
在履行“显示票证”意图的同时,对话系统学习新的优先级(“阻止”)和新的请求者(“公司1”、“公司2”和“公司3”)。
[0125]
继续第一示例,另一用户随后请求对话系统“显示阻止票证”。对话系统履行意图,并利用以下票证进行响应。
[0126]
{id:5,优先级:阻止,请求者:“citrix”,
……
}
[0127]
应当指出的是,如果对话系统先前没有针对“优先级”主体学习“阻止”值,则对话系统将无法利用从“阻止”值导出的响应数据来响应随后的请求。
[0128]
在第二示例中,对话系统的nlp系统可以识别“cmpany”请求者,但是对话系统的词典没有将“cmpany”列出为正确的拼写。在该示例中,用户(经由文本接口)请求对话系统“显示cmpany的票证”。对话系统的拼写检查器使“cmpany”的拼写归一化为“company(公司)”,这导致对话系统履行了“显示公司的票证”的短语中表达的意图。这带来了错误的消息,因为在该示例中,对话系统没有针对“公司”请求者的票证。
[0129]
继续第二过程,用户请求对话系统“显示所有票证”。对话系统履行意图,并利用以下票证的列表进行响应。
[0130]
{id:1,优先级:主要,请求者:“公司1”,
……
}
[0131]
{id:2,优先级:次要,请求者:“cmpany”,
……
}
[0132]
在履行“显示票证”意图的同时,对话系统学习拼写“cmpany”。
[0133]
继续第二过程,用户再次请求对话系统“显示cmpany的票证”。在该实例中,对话系统履行意图,并利用以下票证进行响应。
[0134]
{id:2,优先级:次要,请求者:“cmpany”,
……
}
[0135]
因此,通过学习“cmpany”请求者的拼写并将其添加到词典数据存储库中,对话系统已经改进了用户的体验。
[0136]
附加示例的描述如下。根据本公开,其他变型将是显而易见的。
[0137]
示例1是一种计算机系统,包括:存储器,其存储一个或多个主体与响应数据的一个或多个字段之间的一个或多个关联;网络接口;以及至少一个处理器,其耦合到存储器和网络接口,并且被配置为:接收用于处理意图的请求;生成用于履行意图的请求;经由网络接口将请求发送到履行服务;经由网络接口从履行服务接收指定一个或多个字段的一个或多个值的响应数据;标识从履行服务接收到的响应数据内的一个或多个字段的一个或多个值;使用一个或多个字段经由一个或多个关联来标识一个或多个主体;在存储器内,将一个或多个字段的一个或多个值存储为一个或多个主体的一个或多个值;并且使用一个或多个主体的一个或多个值来对自然语言处理器进行重新训练。
[0138]
示例2包括示例1的主题,至少一个处理器还被配置为:经由网络接口从同义词库服务接收指定与一个或多个字段的一个或多个值相关联的同义词库数据的响应,该同义词库数据包括一个或多个字段的一个或多个值的近义词、动词和复数形式中的一个或多个;并且将同义词库数据存储在存储器内。
[0139]
示例3包括示例2的主题,至少一个处理器还被配置为针对一个或多个主体中的至少一个主体确定系统是否被配置为导入关于该主体的同义词库数据。
[0140]
示例4包括示例1至3中任一项的主题,至少一个处理器还被配置为将一个或多个
字段的一个或多个值存储在拼写检查器可访问的词典数据内。
[0141]
示例5包括示例1至4中任一项的主题,至少一个处理器还被配置为:从用户接收以人类语言表达意图的话语;经由自然语言处理器的执行,将话语标识为表达意图;生成对意图的响应;并且以人类语言将响应呈现给用户。
[0142]
示例6包括示例1至5中任一项的主题,其中,意图是第一意图,并且至少一个处理器还被配置为:接收用于处理第二意图的请求;生成用于履行第二意图的请求,用于履行第二意图的请求包括至少一个参数值,该至少一个参数值等于一个或多个字段的一个或多个值中的至少一个值;经由网络接口将请求发送到履行服务;并且经由网络接口接收对第二意图的响应,对第二意图的响应包括从参数值导出的响应数据。
[0143]
示例7包括示例1至6中任一项的主题,至少一个处理器还被配置为针对一个或多个主体中的至少一个主体确定系统是否被配置为自动发现该主体的值。
[0144]
示例8是一种由对话系统执行的自主地学习新的主体值的方法,该对话系统包括存储器,该存储器存储一个或多个主体与响应数据的一个或多个字段之间的一个或多个关联,该方法包括:接收用于处理意图的请求;生成用于履行意图的请求;经由网络接口将请求发送到履行服务;经由网络接口从履行服务接收指定一个或多个字段的一个或多个值的响应数据;标识从履行服务接收到的响应数据内的一个或多个字段的一个或多个值;使用一个或多个字段经由一个或多个关联来标识一个或多个主体;在存储器内,将一个或多个字段的一个或多个值存储为一个或多个主体的一个或多个值;并且使用一个或多个主体的一个或多个值来对自然语言处理器进行重新训练。
[0145]
示例9包括示例8的主题,还包括:经由网络接口从同义词库服务接收指定与一个或多个字段的一个或多个值相关联的同义词库数据的响应,该同义词库数据包括一个或多个字段的一个或多个值的近义词、动词和复数形式中的一个或多个;并且将同义词库数据存储在存储器内。
[0146]
示例10包括示例9的主题,还包括针对一个或多个主体中的至少一个主体确定对话系统是否被配置为导入关于该主体的同义词库数据。
[0147]
示例11包括示例8至10中任一项的主题,还包括将一个或多个字段的一个或多个值存储在拼写检查器可访问的词典数据内。
[0148]
示例12包括示例8至11中任一项的主题,还包括:从用户接收以人类语言表达意图的话语;经由自然语言处理器的执行,将话语标识为表达意图;生成对意图的响应;并且以人类语言将响应呈现给用户。
[0149]
示例13包括示例8至12中任一项的主题,其中,意图是第一意图,并且该方法还包括:接收用于处理第二意图的请求;生成用于履行第二意图的请求,用于履行第二意图的请求包括至少一个参数值,该至少一个参数值等于一个或多个字段的一个或多个值中的至少一个值;经由网络接口将请求发送到履行服务;并且经由网络接口接收对第二意图的响应,对第二意图的响应包括从参数值导出的响应数据。
[0150]
示例14包括示例8至13中任一项的主题,还包括针对一个或多个主体中的至少一个主体确定对话系统是否被配置为自动发现该主体的值。
[0151]
示例15是一种非暂时性计算机可读介质,其存储用于在对话系统内实现自主学习过程的可执行的指令的序列,该对话系统包括存储器,该存储器存储一个或多个主体与响
应数据的一个或多个字段之间的一个或多个关联,指令的序列包括用于进行以下操作的指令:接收用于处理意图的请求;生成用于履行意图的请求;经由网络接口将请求发送到履行服务;经由网络接口从履行服务接收指定一个或多个字段的一个或多个值的响应数据;标识从履行服务接收到的响应数据内的一个或多个字段的一个或多个值;使用一个或多个字段经由一个或多个关联来标识一个或多个主体;在存储器内,将一个或多个字段的一个或多个值存储为一个或多个主体的一个或多个值;并且使用一个或多个主体的一个或多个值来对自然语言处理器进行重新训练。
[0152]
示例16包括示例15的主题,指令的序列还包括用于进行以下操作的指令:经由网络接口从同义词库服务接收指定与一个或多个字段的一个或多个值相关联的同义词库数据的响应,该同义词库数据包括一个或多个字段的一个或多个值的近义词、动词和复数形式中的一个或多个;并且将同义词库数据存储在存储器内。
[0153]
示例17包括示例16的主题,指令的序列还包括用于针对一个或多个主体中的至少一个主体确定对话系统是否被配置为导入关于该主体的同义词库数据的指令。
[0154]
示例18包括示例15至17中任一项的主题,指令的序列还包括用于将一个或多个字段的一个或多个值存储在拼写检查器可访问的词典数据内的指令。
[0155]
示例19包括示例15至18中任一项的主题,其中,意图是第一意图,指令的序列还包括用于进行以下操作的指令:接收用于处理第二意图的请求;生成用于履行第二意图的请求,用于履行第二意图的请求包括至少一个参数值,该至少一个参数值等于一个或多个字段的一个或多个值中的至少一个值;经由网络接口将请求发送到履行服务;并且经由网络接口接收对第二意图的响应,对第二意图的响应包括从参数值导出的响应数据。
[0156]
示例20包括示例15到19中任一项的主题,指令的序列还包括用于针对一个或多个主体中的至少一个主体确定对话系统是否被配置为自动发现该主体的值的指令。
[0157]
因此,已经描述了至少一个示例的若干方面,应当认识到的是,本领域技术人员将容易想到各种改变、修改和改进。例如,本文公开的示例也可以在其他上下文中使用。这样的改变、修改和改进旨在成为本公开的一部分,并且旨在落入本文讨论的示例的范围内。因此,前述描述和附图仅作为示例。
[0158]
而且,本文使用的措辞和术语是出于描述的目的,并且不应被视为限制性的。以单数形式对本文中引用的系统和方法的示例、组件、元素或动作的任何引用也可以涵盖包括复数的示例,并且以复数形式对本文中任何示例、组件、元素或动作的任何引用也可以涵盖仅包括单数的示例。以单数或复数形式的引用不旨在限制当前公开的系统或方法、它们的组件、动作或元素。本文中对“包括”、“包含”、“具有”、“含有”、“涉及”及其变型的使用意在包含其后列出的项目和其等同物以及附加项。对“或”的引用可以被解释为包括性的,使得使用“或”描述的任何项目可以指示被描述的项目中的单个、多于一个、以及所有中的任一个。另外地,在本文档与通过引用并入本文的文档之间的术语的不一致用法的情况下,在被并入的文献中的术语用法是对本文档的术语用法的补充;针对不可协调的不一致,以本文档中的术语用法为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献