用于自动化对话系统的检测机构的制作方法

文档序号:18745002发布日期:2019-09-21 02:13阅读:176来源:国知局
用于自动化对话系统的检测机构的制作方法

本申请要求于2017年02月09日提交的题目为“Detection Mechanism for Automated Dialogue Systems”的美国临时专利申请号62/456870的优先权权益,其公开内容并入本文。



背景技术:

自动化助理是被设计成与用户关于一个或几个知识域进行会话一种软件。以前的技术(如SIRI或Alexa,它们是分别来自Apple Computer和Amazon的命令控制系统)经常无法提供用户寻找的系统或答案。这至少部分是因为对话系统处理较窄的域。在会话系统中,这个问题变得更加严重,会话系统必须理解对话中的上下文,以及来自一个或多个来源的信息。试图为网页提供语义注释(比会话事务更简单的任务)的诸如“语义网”的当前的系统未能满足用户的要求:“对于语义网的一些挑战包括宽泛性、模糊性、不确定性、不一致性和欺骗性。自动化推理系统将必须处理这些问题中的所有问题才能实现语义网的承诺。”

过去系统的语义分析技术似乎依赖于在“域内”对“域外”交互的话语上训练的词袋分类器。这种两路(或用于在多域系统中使用的多路)方法至少三个方面存在缺陷。首先,它忽略了交互的对话状态。其次,它不允许在会话期间重新分析一些短语或词的状态。第三,它没有考虑系统是否需要理解话语中的短语。至少出于这些原因,自动化助理难以确定话语的主题何时超出已知域。



技术实现要素:

本技术的会话系统提供了一种新颖的方式来处理一种情况,其中用户提供了系统在当前上下文中不能或无法理解的信息。在该新系统中,存在对要递送的语句或数据中的词或短语的自动标识,该自动标识由大型字典、与数据交互的对话模型,或者语言的统计模型和系统中的交互的统计模型提供。

对于任何词或短语,例如在给定交互的暗示或假设意图的情况下,系统尝试判定词或短语是否可能对用户重要。例如,在对话片段“我想要飞往波士顿参加求职面试”中,这次旅行是针对求职面试的事实不会影响将该语句解释为对到波士顿航班请求。另一方面,在语句“我需要求职面试的帮助”中,会话是严格地关于求职面试的事实需要对准备求职面试的行为进行语义解释。

人/机交互中的以意图为条件的语义解释可与其他环境中相同词的语义解释分离,如上段所说明的那样。特别地,本系统可以针对各种主题进行训练,并且不必在从系统能力添加或删除主题时重新训练。

在高水平,由自动化助理接收话语。解析器对话语执行解析操作,导致一些词被解析而一些词未被解析。对于未被解析的词,将忽略被确定为不重要的词或短语。对所得的未被解析的词进行处理以确定它们重要的可能性以及它们是否应当由自动化助理解决。例如,如果与重要的未被解析的词相关联的得分达到特定阈值,则对该话语采取的动作过程可以包括提供不能处理话语中的与该重要的未被解析的词相关联的部分的消息。

在实施例中,一种方法提供了一种会话系统,该会话系统检测重要的域外的内容。方法包括接收具有多个词的话语。通过存储在存储器中并且由计算设备上的处理器执行的解析器代码对话语执行解析操作。确定话语的一个或多个词未被解析器识别。通过存储在存储器中并且由计算设备上的处理器执行的分类器代码来确定未被解析器识别的一个或多个词中的一个或多个词是重要的。基于被解析器解析的词和未被解析器解析的重要的词生成动作。

附图说明

图1是用于提供能够检测域外的主题的自动化助理的系统的框图。

图2是实现自动化助理应用的模块的框图。

图3是检测机构模块的框图。

图4是用于由自动化助理检测域外的内容的方法。

图5是用于由解析器生成用于话语的覆盖矢量的方法。

图6是用于通过分类器对未被解析的词进行分类的方法。

图7是用户和自动化助理之间的交流的图。

图8是用户和自动化助理之间的交流的图,通过分析未被识别的词来增强该交流。

图9是用户和自动化助理之间的交流的图,其中忽略了话语中的未被解析的词。

图10是用户和自动化助理之间的交流的图,其具有助理不能对(多个)特定词采取行动的消息。

图11是用于实现本技术的系统的框图。

具体实施方式

粗略描述的本技术的会话系统(即,自动化助理)处理一种情况,其中用户提供了系统在当前上下文中不能或无法理解的信息。在该系统中,存在对要递送的语句或数据中的词或短语的自动标识,该自动标识由大型字典、与数据交互的对话模型,或者语言的统计模型和中的交互系统的统计模型提供。

对于任何词或短语,例如在给定交互的暗示或假设意图的情况下,系统尝试判定词或短语是否可能对用户重要。例如,在对话片段“我想要飞往波士顿参加求职面试”中,这次旅行是针对求职面试的事实不会影响将该语句解释为对到波士顿航班请求。另一方面,在语句“我需要求职面试的帮助”中,会话是严格地关于求职面试的事实需要对准备求职面试的行为进行语义解释。

人/机交互中的以意图为条件的语义解释可与其他环境中相同词的语义解释分离。本系统可以针对各种主题进行训练,并且不必在从系统能力添加或删除主题时重新训练。

在一些情况下,自动化助理接收话语。解析器对话语执行解析操作,导致一些词被解析而一些词未被解析。对于未被解析的词,将忽略被确定为不重要的词或短语。对剩余的未被解析的词进行处理以确定它们重要的可能性以及它们是否应当由自动化助理解决。例如,如果与重要的未被解析的词相关联的得分达到特定阈值,则对该话语采取的动作过程可以包括提供不能处理与该重要的未被解析的词相关联的话语的部分的消息。

图1是用于提供可以检测域外的主题的自动化助理的系统的框图。图1的系统100包括客户端110、移动设备120、计算设备130、网络140、网络服务器150、应用服务器160和数据存储装置170。客户端110、移动设备120和计算设备130通过网络140与网络服务器150通信。网络140可以包括专用网络、公共网络、因特网和内联网、WAN、LAN、蜂窝网络或适合于在图1的计算设备之间传输数据的某种其他网络。

客户端110包括应用112。应用112可以提供自动化助理、TTS功能、自动语音识别、解析、域检测以及本文所讨论的其他功能。应用112可以被实现为一个或多个应用、对象、模块或其他软件。应用112可以通过图1的服务器架构或直接(图1中未示出)与应用服务器160和数据存储装置170通信以访问数据。

移动设备120可以包括移动应用122。移动应用可以提供与关于应用112描述的相同的功能。移动应用122可以被实现为一个或多个应用、对象、模块或其他软件,并且可以操作以结合应用服务器160提供服务。

计算设备130可以包括网络浏览器132。网络浏览器可以接收一个或多个内容页面、脚本代码和其他代码,这些代码在被加载到网络浏览器中时提供与关于应用112描述的相同的功能。内容页面可以操作以结合应用服务器160提供服务。

网络服务器150可以经由网络140从应用112、移动应用122和网络浏览器132接收请求和数据。请求可以由特定应用或浏览器应用发起。网络服务器150可以处理请求和数据、传送响应,或者向应用服务器160传送请求和数据或其他内容。

应用服务器160包括应用162。应用服务器可以接收数据(包括从应用112和122以及浏览器132接收的数据请求)、处理数据,以及向网络服务器150传送响应。在一些实施方式中,网络服务器152将响应转发到最初发送请求的计算机或应用。应用的服务器160还可以与数据存储装置170通信。例如,可以从数据存储装置170访问待被应用使用的数据以提供关于应用112描述的功能。应用服务器160包括应用162,除了全部或部分地在应用服务器160上实现之外,应用162可以以与应用112类似的方式操作。

框200包括网络服务器150、应用服务器160和数据存储装置170,并且可以用于实现包括域检测机构的自动化助理。关于图2更详细地讨论框200。

图2是自动化助理应用内的模块的框图。包括自动化助理应用的模块可以实现图1的系统中的客户端110的应用112、移动设备120的移动应用122,和/或应用162和服务器160的全部或部分。

图2的自动化助理应用包括自动语音识别模块210、解析器模块220、检测机构模块230、对话管理器模块240和文本到语音模块250。自动语音识别模块210接收音频内容(诸如通过来自客户端110、移动设备120或计算设备130中的一个的麦克风),并且可以处理音频内容以标识语音。ASR模块可以将识别的语音作为文本话语输出到解析器220。

解析器220接收包括一个或多个词的语音话语,并且可以将用户话语解释为意图。解析器220可以使用从自动化助理中的其他地方接收的当前对话状态来生成一个或多个计划(例如通过创建一个或多个卡)。例如,作为对话语执行解析操作的结果,解析器220可以生成可以包括执行一个或多个动作或任务的一个或多个计划。在一些情况下,计划可以包括在系统内生成一个或多个卡。在另一个示例中,动作计划可以包括通过系统生成多个步骤,系统诸如是于2017年02月23日提交的题目为“Expandable Dialogue System”的美国专利申请号62/462736中描述的系统,其公开内容以其整体并入本文。

在本技术的会话系统中,语义解析器用于为对话管理器创建信息。该语义解析器使用关于过去使用的信息作为主要信息源,将过去使用的信息与系统动作和输出结合,从而允许每种词的集合以其对系统动作的贡献来描述。这导致创建词/短语的语义描述。

解析器还可以生成话语的覆盖矢量。覆盖矢量可以指示话语的哪些部分被解析器模块解析。覆盖矢量可以是关于话语中的每个词是否被解析的简单二进制指示。例如,对于话语“我想要飞往波士顿参加求职面试”,解析器可能只能解析“飞往波士顿”的短语。结果,短语“我想”和“参加求职面试”不会被解析,产生如下所示的话语的覆盖矢量:

“我想要飞往波士顿参加面试”

0 0 0 1 1 1 0 0 0 0

本系统中使用的解析器应当能够报告在任何话语中使用的词,并且还应当报告本可以使用(分析可用)但由于它们不满足阈值而未被使用的词。另外,对未使用的词的计算将有助于稍后通过机器学习系统对交流进行分析,其中它们中的一些可以被转换为具有指定语义标签的特定上下文中的词或短语。

检测机构230可以接收由解析器220生成的计划和覆盖矢量,检测在话语中可能重要的未被解析的词,并且基于重要的未被解析的词来修改计划。检测机构230可以包括分类器,该分类器基于一个或多个特征将每个未被解析的词分类为重要或不重要。对于每个重要词,确定该重要词的得分是否达到阈值。在一些情况下,通过参考其过去的统计出现来分析尚未被系统解析的任何词或短语候选,然后系统决定是否注意该短语。如果重要的未被解析的词的得分达到阈值,则经修改的计划可以包括生成该重要的未被解析的词或与未被解析的词相关联的某些动作不能被处理或不能被行政助理执行的消息。

在一些情况下,本技术可以标识使“phraseScore”函数最大化的单个短语,或者运行Semi-Markov动态程序以搜索对phraseScore函数的短语的最大分配。如果被使用,Dynamic程序将满足以下重复次数:

score[j]=max(score[j-1],max_{i<j}(score(i)+phraseScore(i,j)*all(elegible[i:j]))

可以向短语返回超过某个阈值(针对期望的灵敏度设定)的最高得分。在一些情况下,phraseScore是对话状态和输入话语的任何可计算函数。在一些情况下,phraseScore是一种利用神经网络或其他统计模型估算的机器可学习函数,具有以下特征:

关于图3的框图更详细地讨论检测机构230。

对话管理器240可以基于从检测机构230和/或解析器220接收的计划和上下文来执行动作,并且基于所执行的动作和例如从外部服务和实体接收的任何响应来生成响应。对话管理器的生成的响应可以被输出到文本到语音模块250。文本到语音模块250可以接收响应、为所接收的响应生成语音,并且将语音输出到与用户相关联的设备。

诸如图2的自动化助理应用的附加细节在于2017年10月24日提交的题目为“Sequence to Sequence Transformations for Speech Synthesis Via Recurrent Neural Networks”的美国专利申请号15/792236中描述,其公开内容以其整体并入本文。

图3是检测机构的框图。图3提供了图2的检测机构230的更多细节。检测机构230包括分类器310和分类数据320。分类器310可以从解析器220接收原始计划以及覆盖矢量。然后,分类器310可以将每个未被解析的词分类为可能重要或可能不重要。在一些情况下,分类器可以首先基于多个特征来标识不重要的词。然后不重要的词可以被忽略。

对于每个剩余的未被解析的词,生成重要的可能性,例如作为得分。如果得分达到阈值,则分类器可以修改由解析器提供的原始计划,以包括用于向用户提供与自动化助理不能执行与未被解析的词相关联的词或动作的信息的动作。

数据存储320中的分类数据可以包括数据、库、记录和用于帮助分类器310对未被解析的词进行分类的其他信息。分类数据可以包括例如实体名称、语义规则和其他内容使用,以标识话语内的重要词。

图4是用于由自动化助理检测域外的内容的方法。图4的方法以在步骤410处的解析器接收话语开始。可以从自动语音识别模块或从某些其他源接收话语。然后,在步骤420处,解析器可以处理话语以确定它可以对其行动的话语的部分。解析器可以对其识别的词行动并且可以确定一些词未被识别(即,域外)并且因此没有被解析。

在步骤430处,解析器针对被识别的话语部分生成计划。该计划可以包括上下文、要执行的一个或多个动作或步骤,以及其他信息。例如,动作的形式可以是卡或步骤,其导致从第三方服务取回飞行时间、通过网站预订餐馆,或执行一些其他动作。

在步骤440处,解析器210为话语生成覆盖矢量。覆盖矢量指示解析器每个词是否被解析。在一些情况下,覆盖矢量可以包括针对话语中的每个词的二进制值。关于图5的方法更详细地描述了生成覆盖矢量。

在步骤450处,分类器从解析器接收计划和覆盖矢量。然后,在步骤460处,分类器可以从话语中过滤掉不重要的域外的(即,未被解析的)词。分类器可以使用几种方法中的任一种来标识不重要的未被解析的词,包括基于语义规则和其他准则标识非名词短语、介词和话语的其他部分。

本技术的系统在忽略由用户提供但对于在某个特定领域中执行用户和系统之间的交流并不重要的信息方面非常有效。人们经常在他们的对话中插入不相关的信息,忽略非必要信息的能力大大增加了自动化助理的顺利运作。

然后,在步骤470处,分类器对剩余的未被解析的词进行分类。可以分析剩余的未被解析的词以确定重要的可能性。基于可能性值或得分中的任一个是否超过阈值,分类器可以确定是否需要改变动作计划。关于图6的方法更详细地讨论了对未被解析的词进行分类。

在步骤480处,分类器将计划转发到对话管理器。如果未被解析的词都不够重要,则计划可以是由解析器生成的原始动作计划,或者可以基于由于未被解析的重要词而生成的一个或多个动作来修改计划。

在一些情况下,可以通过添加附加词的模块来扩展自动化助理的域,诸如例如用于航空公司预订。域扩展不需要对分类器或任何其他模块进行任何附加训练,并且不需要大量数据。

图5是由解析器生成话语的覆盖矢量的方法。图5的方法为图4的方法的步骤440提供了更多细节。在步骤510处访问话语中的词。在步骤520处标识话语的被解析的词。在步骤530处标识话语的未被解析的词,然后在步骤540处,将话语中的每个词标记为被解析或未被解析。

图6是由分类器对未被解析的词进行分类的方法。图6的方法为图4的方法的步骤470提供了更多细节。首先,在步骤610处确定句法分析是否表明一个或多个未被解析的词是话语/语句的主要点。如果分析表明该词是语句的主要点,则在步骤670处生成新的动作计划。新的动作计划可以包括未被解析的部分未被自动化助理适当处理的消息。

如果分析没有表明未被解析的词是语句的主要点,则在步骤620处确定未被解析的词是否包括话语中的关键短语。如果确定任何未被解析的词包括关键词短语,则在670处生成新计划。如果确定未被解析的词不是关键短语,则在步骤630处基于查询结果确定未被解析的词是否被标识为关键短语。在一些情况下,未被解析的词可以用于形成网络(例如因特网)上的查询。在一些情况下,因特网上的不同内容页面可以用于标识关键短语。例如,可以对诸如维基百科的网站进行查询,以确定是否存在到关键短语的链接。如果关键短语是基于步骤630处的查询结果,则该方法继续到步骤670。

如果关键短语不是基于查询结果,则在步骤640处确定未被解析的词是否形成命名实体。如果未被解析的词形成命名实体,则这些词可能是重要的并且图6的方法继续到步骤670。

如果词不形成命名实体,则在步骤650处确定词是否形成句法成分。如果未被解析的词形成句法成分,则方法继续到步骤670。如果他们不构成成分,在步骤660处确定词是否是语句的核心。该确定可以基于语义模型和其他信息进行。如果未被解析的词不是语句的核心,则在步骤670处生成新的动作计划。这些词不是语句的核心,然后方法继续到步骤680,其中忽略未被解析的内容并且使用原始的动作计划。

本技术有效且准确地检测话语何时包括行政助理处理的域之外的内容。与现有系统不同,本技术检测域外的部分并在适当时向用户指示与域外的内容相关联的问题。

由图6描述的方法标识的词或短语现在有资格在操作系统中进行进一步分析,或者它们备选地形成机器学习算法的数据,该机器学习算法将为短语或词分配语义标识。标识短语或词作为感兴趣项目对于自动化助理系统的运行是至关重要的,并且上面使用阈值的评分在标识短语和学习其语义身份方面非常有效。

图7是用户与现有系统中的常规自动化助理之间的交流的图。在图7的交流中,用户试图安排从旧金山飞往波士顿的航班,然后希望获得旅行保险。旅行保险话语对行政助理来说是域外的。作为回应,自动化助理指示“我不明白。请再试一次。”代理不理解并且再次尝试的这个模糊的陈述不能使用户理解哪里出了问题或后续点击中应当做什么不同。

图8是用户和自动化助理之间的交流的图,通过分析未被识别的词来增强该交流。在图8的交流中,通过系统拾取和分析未被识别的词或短语的能力来增强与自动化助理的对话。如所示的,当用户指示她想要获得旅行保险时,系统解析语句、在第三方网络服务上查找未被解析的部分、确定未被解析的部分是重要的,并且使用更新的计划来修改原始计划以解决未被解析的部分。

图9是用户和自动化助理之间的交流的图,其中话语中的未知词被忽略。在该示例中,未被解析的词被确定为不够重要并且在由自动化助理提供的响应中被忽略(并且未被解决)。

图10是用户和自动化助理之间的交流的图,其具有助理不能对特定词采取行动的消息。在图10的交流中,用户话语为“我想要预订水族馆的门票”。系统解析“我想预订门票”部分,并将“水族馆”标识为未被解析的重要的词。结果,经修改的计划被生成,其讲述“我不知道如何预订水族馆门票”。

图11是用于实现本技术的计算机系统1100的框图。图11的系统1100可以在客户端1110、移动设备1120、计算设备1130、网络服务器1150、应用服务器1160和数据存储1170等的上下文中实现。

图11的计算系统1100包括一个或多个处理器1110和存储器1120。主存储器1120部分地存储由处理器1110执行的指令和数据。主存储器1110可以在操作时存储可执行代码。图11的系统1100还包括大容量存储设备1130、便携式存储介质驱动器1140、输出设备1150、用户输入设备1160、图形显示器1170和外围设备1180。

图11中所示的组件被描绘为经由单个总线1190连接。然而,组件可以通过一个或多个数据传输装置连接。例如,处理器单元1110和主存储器1120可以经由本地微处理器总线连接,并且大容量存储设备1130、外围设备1180、便携式或远程存储设备1140和显示系统1170可以经由一个或多个输入/输出(I/O)总线连接。

可以用磁盘驱动器或光盘驱动器实现的大容量存储设备1130是用于存储供处理器单元1110使用的数据和指令的非易失性存储设备。大容量存储设备1130可以存储用于实现本发明的实施例的系统软件,以用于将该软件加载到主存储器1120中。

便携式存储设备1140与便携式非易失性存储介质(诸如光盘、数字视频盘、磁盘、闪存等)一起操作以向图11的计算机系统1100输入数据和代码以及从其输出数据和代码。用于实现本发明的实施例的系统软件可以被存储在这种便携式介质上,并且经由便携式存储设备1140输入到计算机系统1100。

输入设备1160提供用户界面的一部分。输入设备1160可以包括用于输入字母数字和其他信息的字母数字小键盘(诸如键盘)或者指示设备(诸如鼠标、轨迹球、触笔或光标方向键)。另外,如图11中所示的系统1100包括输出设备1150。合适的输出设备的示例包括扬声器、打印机、网络接口和显示器。

显示系统1170可以包括液晶显示器(LCD)、LED显示器、触摸显示器或其他合适的显示设备。显示系统1170接收文本和图形信息,并且处理该信息以输出到显示设备。显示系统可以通过触摸显示器接收输入并且传送所接收的输入以进行存储或进一步处理。

外围设备1180可以包括任何类型的计算机支持设备以向计算机系统添加附加功能。例如,外围设备1180可以包括调制解调器或路由器。

包含在图11的计算机系统1100中的组件可以包括个人计算机、手持式计算设备、平板计算机、电话、移动计算设备、工作站、服务器、小型计算机、大型计算机或任何其他计算设备。计算机还可以包括不同的总线配置、联网平台、多处理器平台等。可以使用各种操作系统,包括Unix、Linux、Windows、Apple OS或iOS、Android和其他合适的操作系统,包括移动版本。

当实现诸如智能电话或平板计算机等移动设备或者无线地通信的任何其他计算设备时,图11的计算机系统1100可以包括一个或多个天线、无线电和用于经由无线信号进行通信的其他电路装置,诸如例如,使用Wi-Fi、蜂窝或其他无线信号的通信。

尽管本专利文件包含很多细节,但这些细节不应当被解释为对任何发明或可以要求保护的内容的范围的限制,而是作为特定于特定发明的特定实施例的特征的描述。在本专利文件中在单独的实施例的上下文中描述的某些特征也可以在单个实施例中组合实现。相反,在单个实施例的上下文中描述的各种特征也可以在多个实施例中单独地或以任何合适的子组合实现。而且,尽管上面的特征可以描述为以某些组合起作用并且甚至最初如此要求保护,但是在一些情况下,可以从组合中排除来自所要求保护的组合的一个或多个特征,并且所要求保护的组合可以涉及子组合或子组合的变化。

类似地,尽管在附图中以特定顺序描绘了操作,但是这不应当被理解为要求这样的操作以所示的特定顺序或按顺序执行,或者执行所有示出的操作,以实现期望的结果。而且,在本专利文件中描述的实施例中的各种系统组件的分离不应当被理解为在所有实施例中都需要这种分离。

仅描述了少数实现和示例,并且可以基于本专利文件中描述和示出的内容来做出其他实现、增强和变化。

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