用于在对话系统中从用户话语产生自然语言短语的系统和方法

文档序号:6594979阅读:331来源:国知局
专利名称:用于在对话系统中从用户话语产生自然语言短语的系统和方法
技术领域
本发明的实施例总体上涉及对话系统,更具体地涉及在对话系统中产生用于系统响应的短语。
背景技术
对话系统是计算机系统,其被设计来在输入信道和输出信道上使用连贯的结构和文本、语音、图形或其他交流模式来与人交谈。使用语音的对话系统被称为口语对话系统, 并且一般表示最自然类型的人机界面。随着越来越依赖于电子设备,口语对话系统越来越多地被实现在许多不同的机器中。响应产生是在开发传统对话系统中的重要组成。最终用户经常基于他们从系统听到的响应的质量来判定对话系统的质量。这涉及格莱斯合作原则,格莱斯合作原则描述了人们如何彼此交互,并且假定交谈贡献在适当的时间根据需要来作出,并且用于推进交谈的目的。系统质量的一个方面是避免模糊或所答非所问(non-responsive)的表达,优选的是使用用户熟悉的短语。系统开发者和研究者已经越来越关注响应产生问题,响应产生问题不仅涉及响应产生内容,而且涉及内容呈现。响应产生系统使用训练模型来产生对用户输入的适当响应。这样的训练模型的质量依赖于训练数据的语料库。已知的训练系统一般使用从一个或多个真人收集的数据。通常,这些系统未使用来自实际用户本身的数据。因此,这样的训练数据不一定适合于实际用户,并且可能不产生用户总是甚至最熟悉的响应。在本领域中当前已知的一种混合手段使用具有规则适配的基于案例的推理。它使用注解的语料库作为其知识源,并将语法规则用于新语句的构造。在该语料库中,每一个语句与被称为kmGraph的语义表示和被称为ReaTree的实现树(realization tree)相关联。kmGraph描述了与它相关联的语句中的实体之间的语义关系。ReaTree对应于相关联的语句的句法词汇表示,该句法词汇表示用作语句实现的基础。文本产生要经过3个阶段获取,在该阶段中,在内容规划者给出kmGraph的情况下,从注解的语料库获取具有类似kmGraph的语句;适配,在该阶段中,一个或多个适配操作符被应用到对应的ReaTree, 以对当前输入的^mGraph进行必要调整;以及线性化,在该阶段中,适配后的ReaTree被发送到线性化模块,以产生满足所有的语法协议要求的语句。另外,在产生语句后调用学习阶段,在该阶段中,kmGraph、其对应的适配后的ReaTree和所产生的语句被首先存储在临时案例储存库中,然后在被包含到主语料库内以供重新使用之前被手动验证。这种手段不直接地处理从用户侧对语句的使用来进行系统响应。此外,在获取步骤期间,仅主题通过使用替代、删除和插入而被调整来用于计算相似度。不在语音行为方面进行任何操作。因此,在用户的kmGraph和系统响应的kmGraph之间的相似度通常很低。其他手段可以提供在用户和系统响应之间提高的对齐,但是这样的系统(诸如使用词袋或二元词袋手段来计算在系统响应候选和其对应的用户话语之间的距离的那些系统)通过基于规则的产生系统和手写规则来超额地产生系统响应候选。这样的系统不从用户话语直接地或自动地识别提供更好的对齐和更自然的措辞的承载约束的短语。其他已知系统使用压缩森林(packed forest)来提供用于产生的统计手段,以结构化地表示许多实例。在这样的系统中,统计语言模型用于在给定语义输入的情况下对替代品分级。然而,这些手段不处理对齐问题。总之,所有目前的手段(包括试图对用户数据直接建模的那些手段)未充分地解决在用户话语和系统响应之间的不一致的问题。因此,所需要的是一种对话系统响应产生器,其有效地使用实际用户输入,以便产生对于用户最有意义的响应。


在附图的图中通过示例而不是限制地方式说明了本发明的实施例,在附图中,相似的附图标记指示类似的元件,并且其中图1是根据一个实施例的、包含使用用户输入的响应产生系统的口语对话系统的框图。图2是在一个实施例下的、使用用户输入的口语对话系统的响应产生器的框图。图3是图示在一个实施例下的、用于使用实际用户输入来在对话系统中产生响应的整体方法的流程图。图4是图示在一个实施例下的、在短语模型的构造或训练中的主要功能步骤的流程图。图5是图示在一个实施例下的、在语句产生处理的主要功能步骤的流程图。
具体实施例方式描述了使用基于语料库的手段来基于给定数量的语义约束-值对而产生响应的对话系统的实施例。除了来自诸如WOZ数据收集的来源的任何可用数据之外,系统还充分利用来自用户输入的数据来与模板产生器组合地产生对话系统响应。系统主要使用包含约束值的表达,以便基于在实际对话系统中执行的更频繁的任务来实现效率,但是也可以以类似的方式来考虑对话的具有修辞或篇章(discourse)方面的表达,即,使用这样的信息来标记数据,并且执行训练处理。这种系统的益处包括较高质量的用户对齐的响应、较宽的覆盖范围、较快的响应时间和较短的开发周期。在下面的描述中,引入了许多具体细节,以透彻理解并且使得能够描述对话系统响应产生系统和方法的实施例。然而,本领域内的技术人员将认识到,可以在没有所述具体细节的一个或多个或具有其他部件、系统等的情况下实践这些实施例。在其他实例中,未示出或未详细描述公知的结构或操作,以免模糊所公开的实施例的方面。在通常的人机对话系统中,来自用户的话语和来自系统的响应经常彼此不同。然而,通常,可以共享来自用户和系统的某些短语,特别是表达专用对话系统的约束的短语。 实施例涉及对话系统响应产生器,其从用户话语提取短语和短语模式,基于该提取来产生新的模式,构造响应表达,并且基于一个或多个评估度量来选择最佳的表达候选。在一个或多个实施例下的对话系统响应产生器可以被包含到对口语对话系统的开发中,该口语对话系统支持各种功能和应用,以在执行诸如驾驶或操作机器的其他认知要求或主要任务的同时允许用户与设备交互并接收服务。这样的对话系统可以将商业可获得的或专用的部件用于语言应用。图1是根据一个实施例的、包含使用用户输入的响应产生系统的口语对话系统的框图。为了本描述的目的,在处理设备上执行的任何处理也可以被称为模块或部件,并且可以是在相应的设备计算机上本地执行的单独程序,或者它们可以是在一个或多个设备上运行的分布式客户应用的部分。系统100的核心部件包括口语理解(SLU)模块104,其具有用于不良输入的多个理解策略;信息状态更新或其他种类的对话管理器(DM) 106,其处理多个对话线程和混合主导;知识管理器(KM) 110,其控制对于基于本体的领域知识的访问;以及内容优化器112,其连接对话管理器和知识管理器,用于解决来自用户的请求的含糊性、调节要向用户呈现的信息量以及向用户提供建议。在一个实施例中,口语用户输入101产生由语音识别单元102接收的声波。语音识别单元102可以包括用于提供诸如动态语法和基于分类的η元语法的功能的部件。在用户输入101是基于文本而不是基于声音的情况下,绕过语音识别单元102,并且直接地向口语理解单元104提供模仿的用户输入。响应产生器108提供系统100的输出。响应产生器108基于用户输入来产生音频和/或文本输出。这样的输出可以是对于查询的回答、对于澄清或其他信息的请求、用户输入的重复或任何其他适当的响应。响应产生器在产生响应时使用领域信息。因此,向用户说出相同内容的不同措辞经常产生很不同的结果。在一个实施例中,对话管理器系统100包括子系统,该子系统实现基于实际用户输入的训练方法,以便帮助响应产生器108为用户产生正确的响应。这样的响应使用用户本身已经使用过并因此是用户熟悉的措辞。对话系统的响应产生器实现了两个主要功能阶段训练阶段,在该阶段中,构造使用实际用户输入的短语模型以供响应产生器使用;以及响应产生阶段,在该阶段中,对话系统输出被产生并输出到用户。对话系统因此基于实际用户话语来构造短语模型。图2是在一个实施例下的、使用用户输入的口语对话系统的响应产生器的框图。如图2中所示,短语模型204在训练阶段期间根据实际用户输入202来构造,并且在响应产生阶段期间被响应产生器208用来产生响应210。在一个实施例中,对于训练阶段,口语理解单元从用户接收口语输入202。该输入可以是产生对话系统可识别的声音信号的任何形式的言语交流。在一个实施例中,训练阶段产生语义级的短语模型。对于该实施例,图1的系统 100使用语义帧的序列来作为比较的基础。通常,帧是命名的一组结构化间隙(Slot),其中,间隙表示相关的信息段,并且是领域相关的选择。帧可以用于描述来自用户的语义含义(诸如语音行为、动作)和/或语义约束。其也可以被系统用作内部表示,以在诸如SLU 104、DM 106和KM 110的不同的系统模块之间进行传送。在某些情况下,每一个间隙具有相关联的上下文无关语法,该上下文无关语法指定了与该间隙相匹配的词串模式。通常, 间隙结构由间隙名称(slotjame)和对应的值或作为其值的另一个帧(sl0t_ValUe)构成。 例如,用户输入可以是向系统请求定位饭馆的请求,诸如〃 I would like lunch in Palo Alto."。该请求具有多个约束,诸如时间、动作和位置。该话语的间隙结构可以如下位置PaloAlto时间午餐时间动作找到饭馆语音行为请求/命令
在一个实施例中,通过使用从各个可能来源收集的用户话语来得出用于产生系统响应的短语模型204,该各个可能来源诸如是用户与系统的先前交互或W0Z(0Z向导) (Wizard of Oz)实验以及由其他数据集提供的任何信息。WOZ实验是实验评估机制,其对操作明显全功能系统的用户进行观察,并且通过模仿功能效果的隐藏向导来补充丢失的服务。通过下述方式来完成短语模型构造任务从用户话语提取短语和短语模式,基于所提取内容来产生新的模式,以及基于不同的评估度量来选择最佳候选。该问题与其中需要确定标识实体的属性的产生指称表达不同。在图2的系统中,诸如在图1中所示的对话系统的先前级已经决定了需要言语表达的属性,并且在系统产生回合中需要针对这些属性的短语的正确词汇化。所述方法从用户输入选择系统意欲的通常表达,并且还通过使用来自现有类似表达和限定规则的部分来构造针对未预见情况的新响应。短语级默认规则覆盖还没有观察到针对约束集的短语的情况,而语句级默认规则将用于正确的响应的短语结合在一起。所述方法适用于多个人机对话系统,在这些人机对话系统中,来自用户的话语和来自系统的响应通常不同,但是来自用户和系统回合的一些短语可以被共享。这对于基于帧或基于规划的领域相关对话系统而言尤其真实。例如,如果有人要求具有特定特征/属性的实体,则系统在随后的回合中需要表达具有相同或不同属性的实体。图3是图示在一个实施例下的、用于使用实际用户输入来在对话系统中产生响应的整体方法的流程图。这种方法依赖于以下事实针对给定约束的良好表达可假定为大多数时候已经存在于与用户的先前交谈中或收集的数据中。该数据用于避免产生不良的表达,并且减轻由数据稀疏引起的问题。对于在图3中所示的方法,系统使用来自用户本身的当前或过去话语来形成对于用户查询或对于系统的输入的适当响应。在框302中,从该用户输入提取和一般化表达。该输入可以在离线模式或在线模式下获得,如在框304中所确定的。对于离线模式,收集来自限定的当前或过去交谈的任何集合的所有用户话语,框306 ; 而对于在线模式,仅收集来自当前交谈的用户话语,框308。在离线模式和在线模式二者中, 使用约束标识符来确定在每一个用户话语中表达了哪些约束,框310。所提取的短语用于形成如何将约束词汇化的用户示例池,框312。当约束被替换为其语义分类名称时,所提取的短语可以被一般化为短语模式。例如,通过用CuisineType来替换〃 Chinese",原始短语〃 some Chinese food"可以被一般化为短语模式〃 some CuisineType food"。系统构造响应数据库,该响应数据库包括原始短语节点、一般短语模式和节点操作的结果。如在框314中所示,在给定一组约束和值对的情况下,系统然后从所提取和一般化的模式构造约束表达。在交谈期间,当一组填充的约束被发送到响应产生器时,它将从数据库选择最佳地匹配给定约束的一个或多个短语。因此,如在框316中所示,系统从一组候选模式选择最佳表达以从响应产生器输出。在给定一组约束和值对的情况下从所提取和一般化的模式构造约束表达的任务通常依赖于存在多少可能的候选模式,并且依赖于某些限定的选择准则和后退(back-off)策略。当在原始语料库中已经观察到约束和值的组合 (可能具有在特定阈值之上的计数)时,产生模块可以使用该模式。当先前已经观察到约束模式但是具有不同值时,将执行一般化步骤。在该情况下,系统试图找到与输入尽可能重叠的模式,并且可以放松约束,直到找到这样的重叠。当先前没有观察到约束组合时,系统试图使用通过构造现有或已产生的模式而创建的模式。该构造可以使用具有一个或多个约束的任何现有实例。它也可以分解这些模式以从原始表达创建较小的单元。当较小单元可用时,给定的约束值对被分簇为子集。可以从所收集的数据学习分簇操作,例如,在分簇处理期间考虑语句中仅包含给定约束的组块(chunk)。可以通过诸如以概率作为效用函数的动态搜索算法的搜索算法来实现将给定的一组约束值对最优地分簇或分段为子集。可以根据语言模型来对所提出的模式进行分级,以保证与用户话语的校准或系统输出的可变性。图3的一般性方法包括两个主要处理要素训练阶段和响应产生阶段。图4是图示在短语模型204的构造或训练中的功能步骤的流程图400。在框402中,系统执行约束识别处理,其中,它从具有约束的用户话语202识别短语表达。一般化框404通过分解处理来一般化在框402中识别的示例。系统然后创建默认值,框406,其中系统针对每一个语义间隙或间隙子集创建一个或多个默认短语表达。约束标识符的呈现是合理的假设,因为系统应当仅产生它在内部理解的信息。在大多数可工作的对话系统中,口语理解模块将提供该功能。约束标识符的准确度通常很高, 这允许我们使用其输出来提取包含约束的短语。可以在启动系统之前(离线模式)或在交谈正在发生的同时(在线模式),构造或训练短语模型204。前一种情况可以作为默认模型,而后一种情况可以用于现场适配。这两种训练在图2中被图示为离线模式205和在线模式203。在离线模式205中,收集可用于训练的所有用户话语。然后可以使用两种不同的手段来进一步处理这些话语。第一种是基于分析树的手段,第二种是基于分块的手段。在基于分析树的手段中,来自用户的所有话语在结构上被注解为分析树。可以识别最低级短语节点,该最低级短语节点包含用户约束或对于系统响应可能有用的短语。自动文本分块手段旨在确定在给定语句中的非重叠短语结构(组块)。组块是将几个连续词分组在一起的句法结构(例如,短语)。存在两个一般性短语分块任务,包括文本分块(浅层分析), 其找到在文本中执行句法结构的部分分析的组块;以及名词短语分块,其识别非递归名词短语的初始部分。用户约束的示例是在示例话语‘‘I want to have some Chinese food tonight “(我今晚要吃一些中国餐)中的词〃 Chinese ‘‘和‘‘tonight ‘‘,其中,〃 Chinese"(中国)指示烹饪类型,并且〃 tonight"(今晚)指示时间。包含烹饪约束的最低短语节点是名词短语"some Chinese food",并且包含时间约束的最低短语节点是词"tonight"。短语节点可以包含一个或多个约束。对于包含多个约束的短语节点,使用一般性指南来决定应当提取哪些节点。这样的指南的示例可以包括声明约束短语节点必须在同一非S短语节点下的规则和其他类似的规则。在一些情况下,使用关系从句来表达约束,例如〃 a restaurant that serves Chinese food",并且因此将提取该节点。 在口语理解单元使用注解的分析树来训练深层分析模型的情况下,在此将相同的注解的分析树用于在约束识别阶段中的短语提取。在基于分块的手段中,可以将浅层分析器用于口语理解。在该情况下,用户话语被 POS (词性)标注器标注、被分块或甚至使用深层结构分析器进行分析。将分块器结果与通过约束标识符找到的约束进行组合,可以提取包含用户约束的短语节点。对于在决定内容后在对话系统中产生响应,不必完全地分析用户话语。这是因为用户表达中与系统响应相关的约束主要位于用户话语中的短语或较为简单的从句中。可以以相当直接的方式来对这样的话语建模° 例如,在用户话语"I want a nearby restaurant that serves Chinese food"(我需要提供中国餐的近处的饭馆)中的短语〃 a nearby restaurant"(近处的饭馆)是具有距离约束的简单短语。对于分析树和分块这两种方法,提取的短语形成词汇化的约束的实例池。在一个实施例中,这些实例然后被收集和存储在数据库中以由图4的剩余处理框使用。在图4的一般化框404中,实例被进一步一般化为短语模式或模板。通过将约束替换为它们的语义分类名称来实现这一点。例如,通过将在原始短语"some Chinese food" 中的〃 Chinese"替换为CuisineType来产生一般化的短语模式"some CuisineType food"。在实例池中的表达也可以通过一些节点操作来分解和重新组合以产生新的模式/ 短语组合。该组合可以由基于规则的手段来指导。被称为分解的另一种形式的一般化也可以被使用。通常,分解仅适用于当在单个语句中有多个约束时。例如,“I want to go to an expensive Chinese restaurant in Palo Alto"具有三个约束。这些约束是 priceLevel = 〃 expensive"、CuisineType ="Chinese"和cityName = 〃 Palo Alto"。从该语句,可以获得几种不同的表达,诸如〃 an expensive restaurant “ , “ a Chinese restaurant “ , " a restaurant in Palo Alto",〃 a Chinese restaurant in Palo Alto"等。在池中的短语或节点实例也可以通过某些节点操作基于它们的词性、句法类别或概率建模而重新构造以产生新的模式 /短语组合。可以通过X-bar理论、元规则或类似的方法来指导该组合。不总是下述情况通过收集的数据或通过任何基于规则的手段来覆盖每种语义约束或约束子集。未被一般化404处理或约束识别402处理覆盖的任何约束通过在图4的默认值创建框406中创建的默认值来处理。在该框中,在下述情况下对于每一个语义约束设计默认表达如果它们还没有存在于数据库中。通常,因为语义约束的有限数量,这种努力相对很小。根据系统约束和资源(例如,存储器和处理时间),该阶段可以被扩展到多约束组合的情况。上面的描述覆盖通过离线过程205来产生针对所有语义约束的短语模型的处理。 以这种方式,系统可以构造响应数据库,该数据库包括原始短语节点、一般短语模式是和节点操作的结果。在交谈期间,当一组填充的约束被从对话管理器发送到响应产生器时,它将从数据库中选择匹配给定约束的一个或多个短语。在在线模式203中,在用户和对话系统之间的交谈期间产生短语模型。系统维持交谈的历史(包括来自先前回合的经处理的言语),并且在当前回合中使用从用户言语所理解的内容。如果在口语理解模块中使用深层分析手段,则可以恢复完全分析。在该情况下,可以使用在离线过程中描述的类似过程来提取约束短语。在此对于在线模式的主要差别是系统可能必须依赖于约束短语的信任分数,以查看它们是否可用。计算完全分析树的所有层级的信任分数一般是可能的。在对话系统中使用浅层理解手段的情况下,诸如在基于分块的手段中,系统将所提取的短语用于短语产生。在该情况下,还需要针对更可靠的短语使用信任分数。在用户和系统之间的正常交谈交互期间,在当前回合中的响应通常以来自用户的最近言语为目标。因此,在响应中涉及的约束应当主要在最近的回合或先前的回合中被覆盖。在对于某些约束不可获得表达的情况下,系统可以使用在离线模式期间建立的响应。在离线模式中的最简单的情况是默认表达。通过下面的示例对话来说明这一点用户1 want a five star restaurant that serves Chinese food.系统:I did not find any five star restaurants that serve Chinese food, but I found 20 four star restaurants that serve Chinese food.在该示例中,可以通过使用用户输入来构造第一短语("any five star restaurants that serves Chinese food"),可以通过在RatingLevel 约束上的一般化来产生第二表达(〃 four star restaurants that serve Chinese food")。一旦使用离线205处理或在线203处理产生了适当的短语模型,则选择适当的一个或多个短语。在通常的交谈期间,对于给定的一组约束,可能存在多个短语候选。在该情况下,使用选择准则和后退策略来选择对于给定的一组约束的最佳短语。选择最佳短语的一种方法是使用基于示例的手段。在这种方法中,当一组约束和值在数据库或模型中具有匹配(可能具有超过特定阈值的计数)时,响应产生器可以使用相关联的短语来构造响应语句。当给定的约束集已在以前被观察到但是具有不同的值时,可以使用一般化的模式。系统被配置来找到与输入最重叠的模式。例如,如果两个给定的约束是CuisineType =Indian 和RatingLevel :5star,并且还未曾在语料库中观察到过该组合,则系统将试图通过使用一般模式来放松每一个约束,所述一般模式诸如a CuisineType restaurant with five star rating 或 an Indian restaurant with RatingLevel rating 等。此夕卜,也将使用放松所有约束的一般模式,诸如 CuisineType restaurant with RatingLevel rating 禾口 a RatingLevel restaurant that serves CuisineType food等。在最后一禾中f青况下,当约束集之前还没有本身或在较大的表达中被观察到时,系统试图使用通过组合现有模式而创建的模式。可以根据语言模型来对所提出的模式进行分级,以保证与用户言语的一致或系统输出的可变性。训练语料库和外部来源可以用于得到该语言模型。在某些实例中,不同约束的词汇化可能依赖于特定约束和该约束的值。例如,使用介词短语来实现位置约束,例如,用〃 a restaurant in Lincoln"取代〃 a Lincoln restaurant “,即使后者对于大多数约束而言为良好模式。类似地,根据约束的值,经常优选不同的模式。例如,如果CuisineType是"Barbeque",则系统应当选择与针对 CuisineType是〃 Chinese"的实现不同的实现。在该情况下,响应"a restaurant that serves Chinese food" : 良子白勺口向!^,{ 口向IS" a restaurant that serves Barbeque food"不是很流利的形式。一旦已经选择了适当的一个或多个短语,则响应产生器使用所选择的短语来构造响应语句。通常,当通过对话管理器给出一组约束、动作和语音行为时,表面产生器需要生产一个或多个语句来传达所意欲的消息。如果需要不止一个语句,则使用一个额外步骤来基于观察到的数据将一组约束划分为期望的子集。在一个实施例中,该处理被分为两个阶段训练阶段和应用阶段。在训练阶段期间,在简单情况下,通过下述三元组来索引每一个语句其语音行为、动作和约束集。当语句是具有不止一个语音行为或主动作的并列语句时,其通过多个三元组来索引。该语句进一步被划分为具有实例化的变量的从句。这将扩展响应产生的覆盖范围。
类似于短语模型构造,执行一般化步骤来获得作为后退模型的语句模板。这将使能下述可能性在语句模板中的不同单元可能来自不同的来源(短语或语句)。在下述情况下手动创建针对所有具有语音行为、动作和单个约束集的三元组的语句如果从用户侧或WOZ侧还没有在训练数据中观察到这些语句。同样,这些语句通过三元组来索引。在训练阶段后,使用应用阶段来完成语句产生。图5是图示在一个实施例下的、在语句产生处理中的主要功能步骤的流程图。在框502中,如果给定的三元组还没有在数据中被观察到(在模型中被索引),则在该三元组中的约束集被划分为更小的子集,每一个子集在该模型中。用于最佳划分的准则包括最小数量的子集、对这些子集的优选排序以与现有模型相匹配。在划分步骤502后,返回三元组的序列。框504是产生步骤,其中,对于在语句中从第一个到最后一个的每一个三元组,系统基于训练模型来产生对应的语句。所述产生步骤之后是冗余减小步骤506。在该步骤中,系统对所产生的语句从第一个到最后一个进行处理,并且如果在当前语句中使用的名词短语也用在之前语句中,并且它们指代同一实体,则当前的名词短语被具有相同数、人称和性别的代词替换,通常,在一个语句中可以替换不超过一个具有相同数、人称和性别的名词短语,以避免任何可能的混淆。因为同一原因,不期望在语句中或在言语中具有超过两个代词。如果共享同一语音行为和动作的两个连续语句中仅一个变量不同,则这两个语句也可以被减少为单个语句。如上所述的实施例主要使用包含约束的表达,以便基于在实际对话系统中执行的更频繁的任务来实现效率。然而,也可以考虑其他表达方案。例如,如上所述,也可以通过响应产生器系统来处理对话的具有修辞或篇章方面的表达。在该情况下,短语的一个或多个特定成分可以用适当的信息来标识和标记,该适当的信息关于它是什么类型的成分或方面(诸如修辞或篇章)。这些成分然后以与(如图4中所示的)约束-值处理类似的方法进行训练处理,使得可以形成默认值。以这种方式,用户提供的语音方面可以用于向由对话系统提供的响应通知可以在响应产生器模块中使用这些方面。使用用户输入的响应产生器表示了系统化的方式,用于从用户言语提取短语和短语模式,以及一般化这些模式以在产生对话系统响应时构造语句。这样的系统一般提供了更自然和对齐的响应,这减轻了施加给用户的总的认知负担,特别是当他们在执行诸如驾驶的主要任务时。这种手段也可以节省在开发和设计系统响应时的大量精力,因为不要求另外的数据注解或规则开发。本文描述的实施例包括一种用于响应于在当前交谈会话中的用户输入而在对话系统中产生响应的方法,包括从在所述用户和所述对话系统之间的一个或多个交谈会话或其他离线来源收集原始用户短语数据;从所述用户输入提取一个或多个约束,其中每一个约束包括约束-值对;将所提取的约束一般化为短语模式,以产生一般短语模式;构造由所述原始短语数据和所述一般短语模式构成的响应数据库;根据所述用户输入向响应产生器部件发送一组填充的约束;以及从所述响应数据库选择与所述一组填充的约束最佳匹配的至少一个短语。一个实施例的所述一个或多个交谈会话包括当前会话,所述当前会话包括所述用户输入。一个实施例的所述方法包括使用基于分块的手段来提取由所述用户使用的在约束规范中的短语。一个实施例的所述方法包括使用从所述响应数据库获取的值来更新所提取的短语。一个实施例的所述一个或多个交谈会话包括至少一个先前会话,所述至少一个先前会话不包括所述当前会话的用户输入。一个实施例的所述方法包括使用基于分析树的手段或基于分块的手段之一来提取由所述用户使用的在约束规范中的短语,并且形成如何词汇化在所述用户输入中的约束的示例池。一个实施例的所述方法包括通过将约束替换为对应的语义分类名称,将所述约束一般化为短语模式。一个实施例的所述基于分析树的手段在结构上将所有用户言语注解为分析树。一个实施例的所述基于分块的手段使用词性标注器来标注所有用户言语,并且通过浅层分析器或深层结构分析器之一来进行分析。—个实施例的所述方法包括确定所述填充的约束的约束和值对是否存在于所述响应数据库中。一个实施例的所述方法包括如果所述填充的约束的约束和值对存在于所述响应数据库中,则配置所述响应产生器以使用在所述响应数据库中的对应短语。一个实施例的所述方法包括确定所述填充的约束的约束和值对是否存在于所述响应数据库中。一个实施例的所述方法包括如果约束的值在所述数据库的填充约束和所述用户输入中的约束的值之间有不同,则配置所述响应产生器以使用所述响应数据库中与所述填充的约束的所述用户输入的约束和值对重叠度尽可能高的对应短语。—个实施例的所述方法包括确定所述填充的约束的约束和值对是否存在于所述响应数据库中。一个实施例的所述方法包括如果所述填充的约束的约束和值对不存在于所述响应数据库中,则根据现有或已产生的模式创建约束模式。一个实施例的所述用户输入包括交谈会话中的单个回合,所述交谈会话由所述用户和所述对话系统之间的多个对话回合构成。本文所描述的实施例包括一种用于响应于在用户和对话系统之间的当前交谈会话的一个或多个回合期间的用户输入而在所述对话系统中产生短语的方法,包括从在所述用户和所述对话系统之间的一个或多个交谈会话收集用户数据语料库;基于所述用户数据语料库来构造短语模型,其中,所述短语模型包括由约束-值对构成的约束集;响应于在所述用户输入内的约束而从所述用户数据语料库中选择最佳约束集;以及产生包含所述最佳约束集的语句以从响应产生器输出。在一个实施例中的构造短语模型包括从具有约束的用户言语中识别短语表达。 在一个实施例中的构造短语模型包括通过分解处理来一般化所识别的约束。在一个实施例中的构造短语模型包括创建针对每一个约束集的一个或多个默认短语表达。在一个实施例中的选择最佳约束集包括确定所述填充的约束的约束和值对是否存在于响应数据库中。在一个实施例中的选择最佳约束集包括如果所述填充的约束的约束和值对存在于所述响应数据库中,则配置所述响应产生器以使用在所述响应数据库中的对应短语。在一个实施例中的选择最佳约束集包括如果约束的值在所述数据库的填充约束和所述用户输入中的约束的值之间有不同,则配置所述响应产生器以使用在所述响应数据库中与所述填充的约束的所述用户输入的约束和值对重叠度尽可能高的对应短语。在一个实施例中的选择最佳约束集包括如果所述填充的约束的约束和值对不存在于所述响应数据库中,则根据现有或已产生的模式创建约束模式。一个实施例的所述用户输入包括一个或多个语句,每一个语句由三元组构成,所述三元组包括语音行为、动作和约束集,并且其中,产生语句以从响应产生器输出还包括 将所述用户输入的每一个语句索引为对应的三元组;如果所述三元组不存在于所述语料库中,则将所述三元组的约束集划分为多个较小的子集;根据所述划分步骤产生三元组的序列;基于限定的训练模型来产生针对所述三元组的序列中的每一个三元组的对应语句;以及减小在所产生的对应语句中的冗余。一个实施例的减小冗余包括确定在当前语句中使用的名词短语是否也用在先前语句中并且指代相同实体。一个实施例的减小冗余包括如果所述名词短语在所述先前语句中被使用,则将当前的所述名词短语替换为具有相同数、人称和性别的代词。—个实施例的来自一个或多个交谈会话的所述用户数据语料库包括当前会话,所述当前会话包括所述用户输入。—个实施例的所述方法包括使用基于分块的手段来提取由所述用户使用的在约束规范中的短语。一个实施例的所述方法包括使用从所述响应数据库获取的值来更新所提取的短语。一个实施例的来自一个或多个交谈会话的所述用户数据语料库包括至少一个先前会话,所述至少一个先前会话不包括所述当前会话的用户输入。—个实施例的所述方法包括使用基于分析树的手段或基于分块的手段之一来提取由所述用户使用的在约束规范中的短语,并且形成如何词汇化在所述用户输入中的约束的示例池。一个实施例的所述方法包括通过将约束替换为对应的语义分类名称,将所述约束一般化为短语模式。一个实施例的所述基于分析树的手段在结构上将所有用户言语注解为分析树。一个实施例的所述基于分块的手段使用词性标注器来标注所有用户言语,并且通过浅层分析器或深层结构分析器之一来进行分析。本文所描述的响应产生处理的方面可以被实现为被编程到各种电路中的任何一种中的功能,所述电路包括可编程逻辑器件(“PLD”),诸如现场可编程门阵列(“FPGA”)、 可编程阵列逻辑(“PAL”)设备、电可编程逻辑与存储器设备和基于标准单元(standard cell-based)的设备以及专用集成电路。用于实现各方面的一些其他可能包括具有存储器(诸如EEPR0M)的微控制器、嵌入式微处理器、固件、软件等。此外,该内容服务方法的方面可以被体现在具有基于软件的电路仿真的微处理器、分立的逻辑(依序的或组合的)、定制设备、模糊(神经)逻辑、量子设备和上述设备类型的任何一些的混合中。可以以各种部件类型来提供基础设备技术,例如,金属氧化物半导体场效应晶体管(“M0SFET”)技术(如互补金属氧化物半导体(“CMOS”))、双极技术(如射极耦合逻辑(“ECL”))、聚合物技术 (例如,硅共轭聚合物和金属共轭聚合物金属结构)、混合的模拟与数字技术等。也应当注意,本文公开的各种功能可以使用硬件、固件的任何数量的组合来描述, 和/或可以根据它们的行为、寄存器传送、逻辑部件和/或其他特性被描述为在各种机器可读或计算机可读介质中体现的数据和/或指令。其中可以体现这样的格式化数据和/或指令的计算机可读介质包括但是不限于各种形式的非易失性存储介质(例如,光、磁或半导体存储介质),和可以用于通过无线、光或有线信号传送介质或其任何组合来传送这样的格式化数据和/或指令的载波。通过载波传送这样的格式化数据和/或指令的示例包括但是不限于经由一个或多个数据传送协议(例如,HTTP、FTP和SMTP等)在因特网和/或其他计算机网络上进行的传送(上传、下载、电子邮件等)。除非上下文清楚地要求,否则在整个说明书和权利要求中,词“包括”、“包含”等应当以包含的含义来解释,而非以排他或穷尽的含义来解释;即,在“包括但是不限于”的意义上来解释。使用单数或复数的词也分别包括复数或单数。另外,词“在此”、“以下”、“上面”、 “下面”和类似含义的词指的是本申请整体,而不是指本申请的任何特定部分。当关于两个或更多项目的列表使用词“或”时,该词覆盖该词的所有以下解释列表中的任何一个项目、 列表中的全部项目和列表中的项目的任何组合。上文对所说明的响应产生处理的实施例的描述不意欲是穷尽性的或将这些实施例限制到所公开的精确形式或指令。虽然为了说明的目的而在此描述了在计算设备中的处理示例的特定实施例,但是本领域内的技术人员将认识到,在所公开的方法和结构的范围内能够进行各种等同修改。上文所描述的各个实施例的元件和操作可以被组合以提供另外的实施例。可以根据上面的详细描述来对于响应产生处理进行这些和其他改变。一般而言,在所附权利要求中,所使用的术语不应当被解释为将所公开的方法限于在说明书和权利要求中公开的特定实施例,而是应当被解释为包括在权利要求下进行的所有操作或处理。因此,所公开的结构和方法不受本公开的限制,相反,所阐述的方法的范围由权利要求来整体确定。虽然以特定权利要求形式给出了所公开的系统和方法的某些方面,但是发明人设想了任何数量的权利要求形式中的方法的各个方面。例如,虽然仅一个方面可以被阐述为体现在机器可读介质中,但是其他方面同样可以被体现在机器可读介质中。因此,发明人保留在提交本申请后增加另外的权利要求的权利,以为其他方面寻求这样的另外的权利要求形式。
权利要求
1.一种用于响应于在当前交谈会话中的用户输入而在对话系统中产生响应的方法,包括从在所述用户和所述对话系统之间的一个或多个交谈会话或其他离线来源收集原始用户短语数据;从所述用户输入提取一个或多个约束,其中每一个约束包括约束-值对; 将所提取的约束一般化为短语模式,以产生一般短语模式; 构造由所述原始短语数据和所述一般短语模式构成的响应数据库; 根据所述用户输入向响应产生器部件发送一组填充的约束;以及从所述响应数据库选择与所述一组填充的约束最佳匹配的至少一个短语。
2.如权利要求1所述的方法,其中,所述一个或多个交谈会话包括当前会话,所述当前会话包括所述用户输入。
3.如权利要求2所述的方法,包括使用基于分块的手段来提取由所述用户使用的在约束规范中的短语;以及使用从所述响应数据库获取的值来更新所提取的短语。
4.如权利要求1所述的方法,其中,所述一个或多个交谈会话包括至少一个先前会话, 所述至少一个先前会话不包括所述当前会话的用户输入。
5.如权利要求4所述的方法,包括使用基于分析树的手段或基于分块的手段之一来提取由所述用户使用的在约束规范中的短语,并且形成如何词汇化在所述用户输入中的约束的示例池;以及通过将约束替换为对应的语义分类名称,将所述约束一般化为短语模式。
6.如权利要求5所述的方法,其中,所述基于分析树的手段在结构上将所有用户言语注解为分析树。
7.如权利要求5所述的方法,其中,所述基于分块的手段使用词性标注器来标注所有用户言语,并且通过浅层分析器或深层结构分析器之一来进行分析。
8.如权利要求1所述的方法,包括确定所述填充的约束的约束和值对是否存在于所述响应数据库中;以及如果所述填充的约束的约束和值对存在于所述响应数据库中,则配置所述响应产生器以使用在所述响应数据库中的对应短语。
9.如权利要求1所述的方法,包括确定所述填充的约束的约束和值对是否存在于所述响应数据库中;以及如果约束的值在所述数据库的填充约束和所述用户输入中的约束的值之间有不同,则配置所述响应产生器以使用所述响应数据库中与所述填充的约束的所述用户输入的约束和值对重叠度尽可能高的对应短语。
10.如权利要求1所述的方法,包括确定所述填充的约束的约束和值对是否存在于所述响应数据库中;以及如果所述填充的约束的约束和值对不存在于所述响应数据库中,则根据现有或已产生的模式创建约束模式。
11.如权利要求1所述的方法,其中,所述用户输入包括交谈会话中的单个回合,所述交谈会话由所述用户和所述对话系统之间的多个对话回合构成。
12.一种用于响应于在用户和对话系统之间的当前交谈会话的一个或多个回合期间的用户输入而在所述对话系统中产生短语的方法,包括从在所述用户和所述对话系统之间的一个或多个交谈会话收集用户数据语料库; 基于所述用户数据语料库来构造短语模型,其中,所述短语模型包括由约束-值对构成的约束集;响应于在所述用户输入内的约束而从所述用户数据语料库中选择最佳约束集;以及产生包含所述最佳约束集的语句以从响应产生器输出。
13.如权利要求12所述的方法,其中,构造短语模型的步骤包括 从具有约束的用户言语中识别短语表达;通过分解处理来一般化所识别的约束;以及创建针对每一个约束集的一个或多个默认短语表达。
14.如权利要求12所述的方法,其中,选择最佳约束集的步骤包括 确定填充的约束的约束和值对是否存在于响应数据库中;如果所述填充的约束的约束和值对存在于所述响应数据库中,则配置所述响应产生器以使用在所述响应数据库中的对应短语;如果约束的值在所述数据库的填充约束和所述用户输入中的约束的值之间有不同,则配置所述响应产生器以使用在所述响应数据库中与所述填充的约束的所述用户输入的约束和值对重叠度尽可能高的对应短语;以及如果所述填充的约束的约束和值对不存在于所述响应数据库中,则根据现有或已产生的模式创建约束模式。
15.如权利要求12所述的方法,其中,所述用户输入包括一个或多个语句,每一个语句由三元组构成,所述三元组包括语音行为、动作和约束集,并且其中,产生语句以从响应产生器输出包括将所述用户输入的每一个语句索引为对应的三元组;如果所述三元组不存在于所述语料库中,则将所述三元组的约束集划分为多个较小的子集;根据所述划分步骤产生三元组的序列;基于限定的训练模型来产生针对所述三元组的序列中的每一个三元组的对应语句;以及减小在所产生的对应语句中的冗余。
16.如权利要求15所述的方法,其中,减小冗余包括确定在当前语句中使用的名词短语是否也用在先前语句中并且指代相同实体;以及如果所述名词短语在所述先前语句中被使用,则将当前的所述名词短语替换为具有相同数、人称和性别的代词。
17.如权利要求12所述的方法,其中,来自一个或多个交谈会话的所述用户数据语料库包括当前会话,所述当前会话包括所述用户输入。
18.如权利要求1所述的方法,包括使用基于分块的手段来提取由所述用户使用的在约束规范中的短语;以及使用从所述响应数据库获取的值来更新所提取的短语。
19.如权利要求12所述的方法,其中,来自一个或多个交谈会话的所述用户数据语料库包括至少一个先前会话,所述至少一个先前会话不包括所述当前会话的用户输入。
20.如权利要求19所述的方法,包括使用基于分析树的手段或基于分块的手段之一来提取由所述用户使用的在约束规范中的短语,并且形成如何词汇化在所述用户输入中的约束的示例池;以及通过将约束替换为对应的语义分类名称,将所述约束一般化为短语模式。
21.如权利要求20所述的方法,其中,所述基于分析树的手段在结构上将所有用户言语注解为分析树。
22.如权利要求20所述的方法,其中,所述基于分块的手段使用词性标注器来标注所有用户言语,并且通过浅层分析器或深层结构分析器之一来进行分析。
全文摘要
描述了使用基于语料库的手段来基于给定数量的语义约束-值对而产生响应的对话系统的实施例。该系统充分利用来自用户输入的数据来与模板产生器组合地产生对话系统响应。该系统主要使用约束值,以便基于在实际对话系统中执行的更频繁的任务来实现效率,但是也可以以类似的方式包括对话的修辞或篇章方面,即,使用这样的信息来标记数据,并且执行训练处理。这种系统的益处包括较高质量的用户对齐的响应、较宽的覆盖范围、较快的响应时间和较短的开发周期。
文档编号G06F17/27GK102165518SQ200980137642
公开日2011年8月24日 申请日期2009年7月10日 优先权日2008年8月27日
发明者J·曹, J·胡, L·斯托亚, Z·冯, 翁富良 申请人:罗伯特·博世有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1