首页 / 专利库 / 人工智能 / 对话代理 / 自然语言内容生成器

自然语言内容生成器

阅读:176发布:2020-05-15

专利汇可以提供自然语言内容生成器专利检索,专利查询,专利分析的服务。并且一种生成自然语言内容的系统。系统生成并维护具有过程视图、查询视图和数据视图的对话状态表示。在代理和用户之间的谈话期间连续地更新三视图对话状态表示,并且可以基于该谈话自动生成规则。在发生内容生成事件时,可以基于对话状态表示而生成对象描述。然后使用所自动生成的规则和从注释学习的其他规则和其他用户输入的混合方法,从对象描述确定字符串。该字符串被转变为文本或语音并由代理输出。本系统例如在对输出排名和处理注释模板时还包含学习技术。,下面是自然语言内容生成器专利的具体信息内容。

1.一种用于提供生成自然语言内容的会话系统的方法,包括:
在用户和在计算设备上执行的代理之间进行谈话;
基于所述谈话更新对话状态表示;
基于从所述谈话、注释数据以及所述对话状态表示的当前状态自动创建的规则,生成对象描述;以及
基于所述对象生成自然语言输出字符串。
2.根据权利要求1所述的方法,其中所述对话状态表示包括过程视图、查询视图和数据视图。
3.根据权利要求1所述的方法,其中所自动创建的所述规则包括从当前谈话创建的规则。
4.根据权利要求1所述的方法,其中所自动创建的所述规则包括从先前谈话创建的规则。
5.根据权利要求1所述的方法,其中所述对象描述从对象-属性对的列表的子集而被创建。
6.根据权利要求5所述的方法,其中所述子集基于新近度得分而被选择。
7.根据权利要求1所述的方法,其中所述注释数据包括经学习的注释规则,所述对象描述基于从用户注释学习的所述经学习的注释规则而被生成。
8.根据权利要求1所述的方法,其中所述对象描述从用于对对象-属性对进行排名的经学习的规则而被生成。
9.根据权利要求1所述的方法,其中所述自然语言输出字符串至少部分地从超图而被生成。
10.一种非暂态计算机可读存储介质,具有具化于其上的程序,所述程序由处理器可执行以执行提供会话系统的方法,所述会话系统生成自然语言内容,所述方法包括:
在用户和代理之间进行谈话;
基于所述谈话更新对话状态表示;
基于从所述谈话、注释数据以及所述对话状态表示的当前状态自动创建的规则,生成对象描述;以及
基于所述对象生成自然语言输出字符串。
11.根据权利要求10所述的非暂态计算机可读存储介质,其中所述对话状态表示包括过程视图、查询视图和数据视图。
12.根据权利要求10所述的非暂态计算机可读存储介质,其中所自动创建的所述规则包括从当前谈话创建的规则。
13.根据权利要求10所述的非暂态计算机可读存储介质,其中所自动创建的所述规则包括从先前谈话创建的规则。
14.根据权利要求10所述的非暂态计算机可读存储介质,其中所述对象描述从对象-属性对的列表的子集而被创建。
15.根据权利要求14所述的非暂态计算机可读存储介质,其中所述子集基于新近度得分而被选择。
16.根据权利要求10所述的非暂态计算机可读存储介质,其中所述注释数据包括经学习的注释规则,所述对象描述基于从用户注释学习的所述经学习的注释规则而被生成。
17.根据权利要求10所述的非暂态计算机可读存储介质,其中所述对象描述从用于对对象-属性对进行排名的经学习的规则而被生成。
18.根据权利要求10所述的非暂态计算机可读存储介质,其中所述自然语言输出字符串至少部分地从超图而被生成。
19.一种用于提供生成自然语言内容的会话系统的系统,包括:
处理器;
存储器
一个或多个模,被存储在存储器中并且可由所述处理器执行以:在用户和代理之间进行谈话,基于所述谈话更新对话状态表示,基于从所述谈话、注释数据以及所述对话状态表示的当前状态自动创建的规则来生成对象描述,以及基于所述对象生成自然语言输出字符串。

说明书全文

自然语言内容生成器

[0001] 相关申请的交叉引用
[0002] 本申请要求于2017年02月08日提交的题目为“Natural Language Content Generator”的美国临时专利申请号62/456574的优先权权益,其公开内容并入本文。

背景技术

[0003] 对话系统被设计为与用户进行交互,并且在一些时候需要确定说什么以及如何说出来。对于现有技术的填槽系统,这些系统设计有系统可以执行的固定数目的行为。因此,对于特定的行为,人类工程师已经编写了填槽系统应当说的内容。所需要的是向用户提供输出的改进的对话助理。发明内容
[0004] 粗略描述的本技术提供了一种用于生成自然语言内容的系统。系统生成并维护具有过程视图、查询视图和数据视图的对话状态表示。在代理和用户之间的谈话期间,连续地更新三视图对话状态表示,并且可以基于该谈话自动生成规则。在发生内容生成事件时,可以基于对话状态表示而生成对象描述。然后使用所自动生成的规则和从注释学习的其他规则和其他用户输入的混合方法,从对象描述确定字符串。字符串被转变为文本或语音并由代理输出。生成自然语言内容的混合方法利用针对低平谈话自动生成的规则(诸如从用户收集数据),并且利用针对高水平谈话的注释和其他基于用户输入的模板。本系统还包含学习技术,例如在对输出排名和处理注释模板时。
[0005] 在一些情况下,公开了一种用于提供生成自然语言内容的会话系统的方法和系统。在用户和在计算设备上执行的代理之间进行谈话。基于谈话更新对话状态表示。基于从谈话、注释数据和对话状态表示的当前状态自动创建的规则来生成对象描述。基于对象生成自然语言输出字符串。附图说明
[0006] 图1图示了用于生成自然语言内容的系统的示例性框图
[0007] 图2图示了用于实现具有自然语言内容生成器的自动化助理应用的示例性模
[0008] 图3图示了对话状态表示的框图。
[0009] 图4图示了用于提供自然语言内容生成器的方法。
[0010] 图5图示了用于更新状态表示的方法。
[0011] 图6图示了用于管理属性和对象的新近度得分的方法。
[0012] 图7图示了用于生成对象描述的方法。
[0013] 图8图示了用于标识生成行为的方法。
[0014] 图9图示了用于从对象描述生成字符串的方法。
[0015] 图10图示了超图的框图。
[0016] 图11图示了通过超图的单个路径的框图。
[0017] 图12图示了用于实现本技术的示例性系统的框图。

具体实施方式

[0018] 粗略描述的本技术提供了用于生成自然语言内容的系统。系统生成并维护具有过程视图、查询视图和数据视图的对话状态表示。在代理和用户之间的谈话期间连续地更新三视图对话状态表示,并且可以基于谈话自动生成规则。在发生内容生成事件时,可以基于对话状态表示而生成对象描述。然后使用利用所自动生成的规则和从注释学习的其他规则和其他用户输入的混合方法,根据对象描述确定字符串。该字符串被转变为文本或语音并由代理输出。
[0019] 生成自然语言内容的混合方法利用针对低水平谈话自动生成的规则(诸如从用户收集数据),以及针对高水平谈话的注释和其他基于用户输入的模板。自动生成的规则用于处理关于代理在谈话期间所说或所生成的内容的决策。用户注释和其他用户输入用于生成对事物进行最高水平描述的自然语言内容,这可以更好地模仿真实人在谈话期间所做或所说的内容。混合方法是有效的,并且不需要针对自动化助理生成大量的规则和/或模板。
[0020] 例如在对输出排名和处理注释模板时,本系统包含学习技术。学习组件可以让人类代理对生成的输出进行排名,并且使用学习模型来重现排名,学习组件还能够使人类代理在初始系统状态的上下文中获取注释器内容,并且使用该信息来引发规则的集合。
[0021] 图1图示了用于生成自然语言内容的系统的示例性框图。图1的系统100包括客户端110、移动设备120、计算设备130、网络140、网络服务器150、应用服务器160和数据存储装置170。客户端110、移动设备120和计算设备130通过网络140与网络服务器150通信。网络140可以包括专用网络、公共网络、因特网和内联网、WAN、LAN、蜂窝网络或适合于在图1的计算设备之间传输数据的某种其他网络。
[0022] 客户端110包括应用112。应用112可以提供自动化助理、TTS功能、自动语音识别、解析、内容生成以及本文所讨论的其他功能。应用112可以被实现为一个或多个应用、对象、模块或其他软件。应用112可以通过图1的服务器架构或直接(图1中未示出)与应用服务器160和数据存储装置170通信以访问大量数据。
[0023] 移动设备120可以包括移动应用122。移动应用可以提供与关于应用112描述的相同的功能。移动应用122可以被实现为一个或多个应用、对象、模块或其他软件,并且可以操作以结合应用服务器160提供服务。
[0024] 计算设备130可以包括网络浏览器132。网络浏览器可以接收一个或多个内容页面、脚本代码和其他代码,这些代码在被加载到网络浏览器中时提供与关于应用112描述的相同的功能。内容页面可以操作以结合应用服务器160提供服务。
[0025] 网络服务器150可以经由网络140从应用112、移动应用122和网络浏览器132接收请求和数据。请求可以由特定应用或浏览器应用发起。网络服务器150可以处理请求和数据、传送响应,或者向应用服务器160传送请求和数据或其他内容。
[0026] 应用服务器160包括应用162。应用服务器可以接收数据(包括从应用112和122以及浏览器132接收的数据请求)、处理数据,以及向网络服务器150传送响应。在一些实施方式中,网络服务器152将响应转发到最初发送请求的计算机或应用。应用的服务器160还可以与数据存储装置170通信。例如,可以从数据存储装置170访问待被应用使用的数据以提供关于应用112描述的功能。应用服务器160包括应用162,除了全部或部分地在应用服务器160上实现之外,应用162可以以与应用112类似的方式操作。
[0027] 框200包括网络服务器150、应用服务器160和数据存储装置170,并且可以用于实现包括内容生成机制的自动化助理。关于图2更详细地讨论框200。
[0028] 图2图示了用于实现具有自然语言内容生成器的自动化助理应用的示例性模块。包括自动化助理应用的模块可以实现图1的系统中的客户端110的应用112、移动设备120的移动应用122,和/或应用162和服务器160的全部或部分。另外,模块210、220、240、250、280、
292、294和296中的每个模块可以以不同的顺序、不止一次、与其他模块组合地实现,或者在图2的系统中可以是可选的。
[0029] 图2的系统200包括自动语音识别(ASR)模块210、解析器220、计算模块240、生成器250、状态管理器260和文本到语音(TTS)模块280。模块中的每个模块可以如箭头所示的那样进行通信,并且可以另外与可以在或没有在图2中图示的其他模块、机器或系统通信。
[0030] 自动语音识别模块210可以从客户端110、移动设备120或计算设备130中的一个接收音频内容,诸如通过麦克接收的内容,并且可以处理音频内容以标识语音。语音可以被提供给解码器230以及其他模块(图2中未图示)。
[0031] 解析器220可以将用户讲话解释为意图。在一些情况下,解析器220可以产生对由ASR 210接收和识别的讲话的一组候选响应。解析器220可以使用从状态管理器260接收的当前对话状态例如通过创建一个或多个卡来生成一个或多个计划。在一些情况下,解析器220可以使用来自状态管理器260的表达来选择和填充模板以创建卡并且将卡传递到计算模块240。
[0032] 计算模块240可以管理对话(例如,执行对话管理器功能并充当对话管理器)并检查从解析器220接收的候选响应(诸如计划)。计算模块可以对它们进行排名,改变它们,也可以向它们添加。在一些情况下,计算模块240可以向候选响应添加“不做任何事情”动作。计算模块可以决定执行哪个计划,诸如通过机器学习或某种其他方法。一旦计算模块确定执行哪个计划,计算模块240就可以与一个或多个第三方服务292、294或296通信以执行计划。在一些情况下,执行计划可以涉及通过第三方服务发送电子邮件,通过第三方服务发送文本消息,访问来自第三方服务的信息,诸如航班信息、旅馆信息或其他数据。在一些情况下,标识计划和执行计划可以涉及由生成器250生成响应而不访问来自第三方服务的内容。
[0033] 状态管理器260允许系统在他或她使用代词或通用名词短语来引用实体时推断用户表示什么对象。状态管理器可以跟踪“显著性”-即,跟踪交互的焦点、意图和历史。显著性信息可用于本文描述的释义操作系统,但自动化助理的其他内部工作不可观察。
[0034] 生成器250从计算模块240、状态管理器260接收数据,并且从系统的用户接收讲话或文本。生成器250利用该数据来生成规则、生成和维护对话状态表示、根据状态表示生成对象描述、根据对象描述生成字符串,并且执行如本文所述的其他功能。一旦生成字符串,就将它们提供给转变器270。
[0035] TTS从转变器270接收释义并且使用神经网络系统基于该释义来执行语音合成。然后由TTS280输出所生成的语音(例如,音频文件)。
[0036] 关于框200的模块(包括解析器、用于管理显著性信息的状态管理器、生成器和用于实现对话管理的其他模块)的附加细节在于2016年11月10日提交的题目为“Interaction Assistant”的美国专利申请号15/348226('226申请)中进行描述,该申请要求于2015年11月12日提交的题目为“Attentive Communication Assistant”的美国临时专利申请62/254438的优先权权益,其公开内容通过引用并入本文。自动化助理应用(诸如图2的自动化助理应用)的附加细节还在于2017年10月24日提交的题目为“Sequence to Sequence Transformations for Speech Synthesis Via Recurrent Neural Networks”的美国专利申请号15/792236中进行描述,其公开内容通过引入并入本文。
[0037] 图3图示了对话状态表示的框图。对话状态表示由属性和对象对组成,并且包括过程视图、查询视图和数据视图。
[0038] 过程视图可以对应于对话状态的概念。该视图将世界的表示作为一组独立但通信的过程(例如“帮助用户查找航班”或“帮助用户标识位置”)进行跟踪。在每个时间步骤,这些过程中的每个过程都为对话代理建议动作(向用户发送字符串或向后端发送请求)。最后,过程完成并返回结果(航班、位置等)。过程视图只显示这些过程的名称以及它们之间的依赖关系。
[0039] 查询视图可以跟踪后端请求的当前状态。大多数过程由于与后端交互而生成某种对象(例如,完成的航班预订的表示、酒店的列表、下一个长周末的日期等)。每个这种过程(在过程视图中)都与查询(在查询视图中)相关联。该查询视图示出了其关联过程将发送到后端以产生结果的最终请求的当前状态。
[0040] 数据视图示出了后端为已经能够执行的那些请求返回的结果。每个查询在数据视图中都具有关联的数据,但这些数据中的一些数据可能处于不完整状态(例如,如果关联的查询未指定)。
[0041] 图4是用于提供自然语言内容生成器的方法。图4的方法以在步骤410处启动对话助理开始。在启动时,访问对域的描述,并且自动生成适于该域的规则。规则可以是为每个域生成的核心规则、基于具有相同上下文或其他相似性的代理或用户之间的先前谈话而生成的规则,和/或其他规则。下面关于图10的超图更详细地讨论核心规则。
[0042] 在步骤420处,通过对话助理进行代理和人之间的谈话。根据系统正在执行的计划来生成对话状态表示。例如,可以为进行航班预订的计划生成状态表示。如之前所讨论的,过程视图将对话助手中的世界的表示作为一组独立但通信的过程进行跟踪。过程视图示出了这些过程的名称。查询视图跟踪后端请求的当前状态。过程视图中的每个流程都与查询相关联。数据视图包括由后端或其他第三方服务为可执行的请求返回的结果。
[0043] 随着谈话在步骤430处继续,对话状态表示被更新。更新状态表示可以包括创建和维护属性和对象的列表,该属性和对象的列表是“给定”的并且在后续交流中不需要由代理向用户提及。未“给定”的属性和对象包括已经被要求的属性和对象,或者需要与谈话中的任何其他内容一起说出的那些属性和对象。关于图5的方法讨论了更新状态表示的更多细节。
[0044] 在步骤440处,根据谈话来自动生成规则。在一些情况下,系统在具有结构化对象的状态A下开始。然后,人可以在结构化对象的上下文内提供字符串。本系统可以使用算法从事物的集合中生成一个小规则。在当前的上下文出现在将来以及其他上下文和区域中时,可以使用所生成的规则。如此,根据本公开自动生成的规则可以在若干上下文(诸如从代理到用户的低水平交流)中使用,并且有助于允许基于注释和其他用户输入生成最高水平描述并且有助于模仿人们所说的话。
[0045] 在步骤450处开始生成事件。生成事件可以包括收集计划内的足够的信息以提供所请求的数据、从用户请求更多信息或一些其他事件。生成事件可以在生成模块260内或生成模块外部的一些源中触发。
[0046] 在步骤460处生成对象描述。可以基于过程视图中的节点和两个其他连接节点(查询视图和数据视图)来生成对象描述。生成对象视图可以包括标识特定节点内的生成行为,对树内的对象和属性对象的新近度得分进行分析,以及其他步骤。下面关于图7的方法更详细地讨论生成对象描述。
[0047] 在步骤470处根据对象描述生成字符串。生成字符串可以包括计算超路径内的路径的得分,并且选择具有最高路径的得分。关于图9的方法讨论用于生成字符串的更多细节。
[0048] 图5是用于更新状态表示的方法。图5的方法为图4的方法的步骤430提供了更多细节。首先,在步骤510处确定在代理和用户之间的谈话期间,属性是否已经被添加或改变。如果属性已经例如通过计算模块240取回数据而被添加或改变,则在步骤520更新新近度得分。更新得分可以包括为对象属性创建初始新近度得分,以及为其他对象属性修改新近度得分。下面关于图6的方法更详细地讨论基于属性改变或添加来管理新近度得分。
[0049] 确定在阈值中是否未提及属性或对象。在步骤530处,如果在某个时间段内没有提及属性或对象,则它在谈话的当前点可能不相关,并且在步骤540处,该属性或对象的状态被设置为“给定”,其中它将不被代理提及。如果在该时间段内提及属性或对象,则在步骤550处确定是否提及类似的属性或对象。如果没有相似的对象或属性被提及,则基于该谈话,在当前时间的状态表示不需要改变。如果提及了类似的对象或属性,则在步骤540处,之前提及的对象或状态被设置为“给定”。
[0050] 图6是用于管理属性和对象的新近度得分的方法。图6的方法为图5的方法的步骤510提供了更多细节。首先,在步骤610处,新的或改变的属性对象被添加到列表,并且被分配0的新近度得分。在步骤620处,列表上的所有其他对的新近度得分递增。在一些情况下,其他对可以递增值1,或者可以根据新添加或改变的属性对象的权重或上下文而递增不同的量。
[0051] 在步骤630,确定列表中的任何对是否具有大于阈值的新近度得分。在一些情况下,阈值可以是任意数目的事务、添加或其他数字,在该阈值处,代理的输出中不需要该对。如果任何对具有大于阈值的新近度得分,则在当前谈话期间确定它们不是最近的并且在步骤650将它们从列表中去除。如果对不具有大于阈值的新近度得分,则它们保持在该过程的列表中,在步骤640结束。
[0052] 图7是用于生成对象描述的方法。图7的方法为图4的方法的步骤460提供了更多细节。首先,在步骤710处生成行为被标识。可以基于指向对话状态图中的特定节点的指针来标识行为。关于图8的方法讨论了用于标识生成行为的更多信息。
[0053] 在步骤720处确定是否存在用于所标识的属性对象对的注释数据。如果存在注释数据,则在步骤730处为标识的生成行为生成对象描述。对象描述可以包括具有注释模板数据的超图。如果不存在用于标识生成的行为的注释,则在步骤740处确定是否存在用于属性对象对的域规则。域规则可以通过分析和处理代理与用户之间的谈话来生成,并且可以是上下文和/或域特定的。如果存在域规则,则在步骤750处根据域规则来生成对象描述。如果不存在域规则,则在步骤760处从核心规则生成对象描述。
[0054] 在一些情况下,可以存在用于标识的生成行为的注释数据,可以存在一个以上的注释模板。当存在一个以上的注释模板时,可以针对每个规则和子规则计算得分,可以选择与最高得分相关联的模板。得分可以由试图找到得分的一致分配的用户、人类代理或算法分配。
[0055] 图8是用于标识生成行为的方法。图8的方法为图7的方法的步骤710提供了更多细节。首先,在步骤810处访问信息结构中的属性对象对。然后在步骤820处确定对是否具有注释模板。如果该对具有注释模板,则在步骤830处为生成行为选择该具有注释模板的对。如果该对没有注释模板,则在步骤840处确定该对的对象是否具有针对该对象类型的最低新近度得分。如果特定属性对象对具有一个对象,其中没有其他对象具有针对该对象类型的更低的新近度得分,则在步骤850处为生成行为选择该对象。如果该对象不具有最低的新近度得分,则在步骤860处,在具有相同属性对象类型的所有对中选择具有最低新近度得分的属性对象对。
[0056] 图9是用于从对象描述生成字符串的方法。在步骤910处,为加权超图中的每个路径计算得分。然后,在步骤920处,选择具有最高路径的得分作为字符串进行输出。
[0057] 图10是超图的框图。图10的超图指示将我们的航班搜索结果从第一个节点连接到第二个节点的每个片段被连接到其他两个节点。路径指示从[1]到[2]的航班“针对超图插入内容”,第一个其他节点被连接到纽约节点和“那里”节点。第二个节点被连接到波士顿节点。
[0058] 可以使用核心规则来生成超图节点。核心规则提供了将任何可描述对象变换为超图节点的默认机制。用于描述对象(具有区别“名称”字段)的简单核心规则可能会产生具有模板字符串“name with attrl、attr2和attr3”的超边,其中name是对象的名称,所有的attrs都是描述中的键,并且所有的都是要填充的模板槽。这个超边将具有对应于三个槽的三个尾。核心规则也可以选择基于上下文省略一些属性(如下面选择要呈现的内容中所述),或者将整个对象呈现为(可能合格的)回指(如下面的回指中所述)。在完全呈现的情况下,这可能具体看起来像“具有名称Omni和位置芝加哥的酒店”。
[0059] 用于描述事件的核心规则可能产生具有用于三元动词的模板字符串“<施动者(agent)><动词><受益者(beneficiary)><受事(patient)>”的超边,并且如前面的示例中那样产生四个尾。在英语和许多其他语言中,动词参数的精确排序随动词身份而变化,并且可以从例如OntoNotes(http://www.aclweb.org/anthology/N06-2015)的注释资源中获得。在完全呈现的情况下,这可能看起来像“I booked you that flight(我为你预定了那个航班)”。如果动词具有多个替换,则用于事件的核心规则可能产生多个输出超边,例如,附加的“<施动者(agent)><动词><受事(patient)>针对(for)<受益者(beneficiary)>”->“I booked that flight for you(我为你预定了那个航班)”。
[0060] 基于包含在上述生成上下文中的信息,核心规则应用时态、情况等。规则还可以选择要呈现的视图。回想一下,生成从元节点处开始。为了产生具体的字符串,系统可以决定例如是否说“我们的航班搜索结果”、“从波士顿飞往纽约的航班”,或“9:30离开BOS并于中午抵达肯尼迪机场的航班”(所有这些是相同的元节点在不同的视图中的描述)。本技术可能会生成所有这三个作为出边(outgoing edge),并且根据它们包含的信息量和对话状态的更广泛的上下文对它们进行不同的加权。在一些情况下,核心规则在编码上可以被国际化。
[0061] 在许多情况下,本技术不是使用该通用呈现编码,而是以精确的方式描述某些类型的对象。例如,对于具有属性“类型”(“共享房间”、“单个房间”、“整个住宅”、“整个公寓”中的一个)和“成本”的常见类型的“住宿”对象,本技术将会说“单人间100美元/晚”而不是“单人间类型的住宿,费用100美元”。
[0062] 域注释也可以用于生成超图。以上示例作为后备生成很好,但听起来不是特别自然。另一方面,域规则是严厉的,并且要求当前的技术放弃许多用于属性选择或回指的自定义逻辑。如果域规则不针对每一种新类型的对象从头开始重新实现,则本技术将会更有效地操作。因此,轻量级注释允许开发人员指定属性的首选顺序、重写属性名称等。
[0063]
[0064] 这些可以被认为是“元规则”,其改变了应用核心规则的方式。
[0065] 描述包含对话系统关于世界的状态的所有信息。在一些情况下,本技术可能不想谈论所有事情。这可以通过两种方式避免:(1)域规则的编写者手动选择要讨论的内容以及不讨论的内容;(2)核心规则使用生成上下文的谈话部分来确定哪些事物值得谈论。谈话的上下文的表示基本上是信息结构的经典概念。本系统维护一组对象和给定的(属性,对象)对,以及一组被聚焦的属性。
[0066] 核心规则可以以若干方式中的任何方式来使用该谈话上下文。例如,每次系统选择在对象上呈现(属性,值)对时,该属性都会添加到给定的(属性,对象)对的列表中。这个新的生成上下文由超图中较低的规则应用和后续句子(如下面的推论中所述)继承。每次系统选择呈现对象时,它都会被添加到给定对象的列表中。每当用户询问关于属性的问题时,系统都可以使该属性被聚焦。当如上所述地应用核心规则时,它们忽略所有给定的(属性,值)对,并且呈现利用适当的回指(那个、那里、它,等)给定的对象。
[0067] 一旦构造了对给定描述符的所有可能的呈现进行编码的超图,本系统就可以将其变成字符串。这相当于在加权的超图中找到最高得分路径,这可以使用标准算法(http://www.aclweb.org/anthology/D09-1005)来完成。如果本系统被设计成将超图与n元语法(n-gram)语言模型相交,则这也可以有效地完成。回想一下,生成过程还取决于生成上下文,生成上下文随着本系统通过树下降而被逐渐构造。在生成超图中的一些边不在最终字符串中使用,并且本系统可能希望确保仅在这些边上提及的对象不被添加到给定列表中。本系统可以首先运行推断过程以寻找得分最高的路径,然后仅沿该路径累积生成上下文。该累积的上下文被传递给生成的下一个句子的根。相同的工具使得可以直接获得生成n个最佳列表。
[0068] 图11是通过超图的单个路径的框图。单个路径包括用于出边生成的生成上下文:
[0069] 利用学习规则的生成
[0070] 交互内的内容的生成可以涉及所学习的规则,包括学习利用手写规则对超图进行重新加权,或者从头学习完整的生成系统。本系统可以利用至少两种不同的训练数据源中的一个或多个训练数据源:人类注释人员从系统重新排列n个最佳列表,以及人类代理与系统用户自由交互。在任一训练设定中,可以假设我们已经将字符串与对话状态对齐。这对于本技术的培训程序(参考训练专利)是直截了当的。
[0071] 规则权重可以被学习。从上面描述的手写规则设置开始,开发人员很容易为每个实体写下一组具有高查全率和低精度的规则,为每个可能的呈现提供规则(属性或回指提及的每个组合、每一种排序等)。在这种情况下,我们只需要定义一个评分函数,该评分函数在给定生成上下文和我们试图呈现的实体的情况下对每个边进行加权。该评分函数可以被实现为CRF或神经网络,或者以某种其他方式实现。
[0072] 如果从经排序的系统输出中学习,则寻找实际生成期望的字符串的一组超路径是直接的解析问题。在这种情况下,学习的问题是最大化分配给所有这种超路径的得分,同时最小化分配给在给定上下文中被判断为错误的超路径的得分。本技术可以使用裕度或可能性损失,并且使用直接梯度来训练CRF模型或神经网络模型。
[0073] 如果从人类输出学习,则可以预期训练字符串将不在系统容量中。因此,本系统首先定义字符串相似性的度量(例如,BLEU或精确度)。然后,选择权重以最大化训练数据和系统输出之间的预期相似性。这可以通过以与上面相同的方式训练模型,在适当的期望半环中进行超图推断而不是直接最大化可能性来完成。
[0074] 图12是用于实现本技术的计算机系统1200的框图。图12的系统1200可以在客户端110、移动设备120、计算设备130、网络服务器140、应用服务器160和数据存储装置170等的上下文中实现。
[0075] 图12的计算系统1200包括一个或多个处理器1210和存储器1220。主存储器1220部分地存储由处理器1210执行的指令和数据。主存储器1210可以在操作时存储可执行代码。图12的系统1200还包括大容量存储设备1230、便携式存储介质驱动器1240、输出设备1250、用户输入设备1260、图形显示器1270和外围设备1280。
[0076] 图12中所示的组件被描绘为经由单个总线1290连接。然而,组件可以通过一个或多个数据传输装置连接。例如,处理器单元1210和主存储器1220可以经由本地微处理器总线连接,并且大容量存储设备1230、外围设备1280、便携式或远程存储设备1240和显示系统1270可以经由一个或多个输入/输出(I/O)总线连接。
[0077] 可以用磁盘驱动器或光盘驱动器实现的大容量存储设备1230是用于存储供处理器单元1210使用的数据和指令的非易失性存储设备。大容量存储设备1230可以存储用于实现本发明的实施例系统软件,以用于将该软件加载到主存储器1220中。
[0078] 便携式存储设备1240与便携式非易失性存储介质(诸如光盘、数字视频盘、磁盘、闪存等)一起操作以向图12的计算机系统1200输入数据和代码以及从其输出数据和代码。用于实现本发明的实施例的系统软件可以被存储在这种便携式介质上,并且经由便携式存储设备1240输入到计算机系统1200。
[0079] 输入设备1260提供用户界面的一部分。输入设备1260可以包括用于输入字母数字和其他信息的字母数字小键盘(诸如键盘)或者指示设备(诸如鼠标轨迹球、触笔或光标方向键)。另外,如图12所示的系统1200包括输出设备1250。合适的输出设备的示例包括扬声器、打印机、网络接口和显示器。
[0080] 显示系统1270可以包括液晶显示器(LCD)、LED显示器、触摸显示器或其他合适的显示设备。显示系统1270接收文本和图形信息,并且处理该信息以输出到显示设备。显示系统可以通过触摸显示器接收输入并且传送所接收的输入以进行存储或进一步处理。
[0081] 外围设备1280可以包括任何类型的计算机支持设备以向计算机系统添加附加功能。例如,外围设备1280可以包括调制解调器或路由器。
[0082] 包含在图12的计算机系统1200中的组件可以包括个人计算机、手持式计算设备、平板计算机、电话、移动计算设备、工作站、服务器、小型计算机、大型计算机或任何其他计算设备。计算机还可以包括不同的总线配置、联网平台、多处理器平台等。可以使用各种操作系统,包括Unix、Linux、Windows、Apple OS或iOS、Android和其他合适的操作系统,包括移动版本。
[0083] 当实现诸如智能电话或平板计算机等移动设备或者无线地通信的任何其他计算设备时,图12的计算机系统1200可以包括一个或多个天线、无线电和用于经由无线信号进行通信的其他电路装置,诸如例如,使用Wi-Fi、蜂窝或其他无线信号的通信。
[0084] 尽管本专利文件包含很多细节,但这些细节不应当被解释为对任何发明或可以要求保护的内容的范围的限制,而是作为特定于特定发明的特定实施例的特征的描述。在本专利文件中在单独的实施例的上下文中描述的某些特征也可以在单个实施例中组合实现。相反,在单个实施例的上下文中描述的各种特征也可以在多个实施例中单独地或以任何合适的子组合实现。而且,尽管上面的特征可以描述为以某些组合起作用并且甚至最初如此要求保护,但是在一些情况下,可以从组合中排除来自所要求保护的组合的一个或多个特征,并且所要求保护的组合可以涉及子组合或子组合的变化。
[0085] 类似地,尽管在附图中以特定顺序描绘了操作,但是这不应当被理解为要求这样的操作以所示的特定顺序或按顺序执行,或者执行所有示出的操作,以实现期望的结果。而且,在本专利文件中描述的实施例中的各种系统组件的分离不应当被理解为在所有实施例中都需要这种分离。
[0086] 仅描述了少数实现和示例,并且可以基于本专利文件中描述和示出的内容来做出其他实现、增强和变化。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈