在自然语言理解系统中用于位置的基于规则的语法和用于前终端的统计模型的制作方法

文档序号:2821629阅读:193来源:国知局
专利名称:在自然语言理解系统中用于位置的基于规则的语法和用于前终端的统计模型的制作方法
技术领域
本发明涉及语法创作。更具体地,本发明涉及使用基于规则的语法和统计模型的NLU系统的使用与创作。
背景技术
为了促进支持语音的应用和服务的发展,目前正在开发基于语义的健壮的理解系统。在会话研究系统中广泛地使用这样的系统。但是,它们对于实现会话系统的常规开发者的使用不是特别实际。大范围而言,这样的实现有赖于专用领域语法的手工开发。这个任务耗时、易错,并且需要大量领域内专家。
为了加快支持语音的应用和服务的发展,引入了基于实例的语法创作工具。该工具被称为SGStudio,并在2001年意大利Madonna D.Campiglio IEEE自动语音识别和理解研讨会上Y.Wang和A.Acero的GRAMMAR LEARNING FORSPOKEN LANGUAGE UNDERSTANDING(口语理解的语法学习)以及2002年Orlando(奥兰多),FL的ICASSP学报中Y.Wang和A.Acero的EVALUATION OFSPOKEN LANGUAGE GRAMMAR LEARNING IN ATIS DOMAIN(自动终端信息业务领域中口语语法学习的评估)中进一步讨论。该工具通过利用许多不同源的在先信息(prior information)来大大简化语法开发。它还允许没什么语言学知识的普通开发者,建立用于口语理解的语义语法。该系统用少量的数据促进相对高质量的语义语法的半自动生成。此外,该工具不仅显著减少了涉及开发语法的工作量,而且提高了跨不同领域的理解准确性。
但是,NLU系统中纯基于规则的语法仍缺少健壮性并表现出脆弱性。
概述NLU系统包括大纲中的用于位置的基于规则的语法和用于前终端的统计模型。还提供了训练系统。


图1是能使用本发明的一个示例性环境的方框图。
图2A是按照本发明一个实施例的模型-创作组件的一个实施例的方框图。
图2B示出一实例大纲。
图2C示出为实例大纲生成的实例规则组。
图2D示出标注的语句的例子。
图2E示出一实例解析树。
图2F示出用于例子中单词的可能的前终端表。
图2G是与计数和概率相关联的重写规则表。
图3A是一方框图,更详细地示出语法创作组件。
图3B是一流程图,示出在图3A中所示的语法创作组件的操作。
图4示出了按照本发明另一实施例的模型-创作组件。
图5示出列举的分段的示例。
图6更详细地示出按照本发明一个实施例的统计模型。
图7是简化的大纲的例子。
图8是由在图7中的大纲生成的一组规则的例子。
图9是标注的语句的例子。
图10示出生成的规则。
图11示出复合模型的状态图。
图12示出描述训练技术的伪代码。
图13是一方框图,示出使用按照本发明生成的模型的运行时系统。
图14示出译码器格栅的例子。
详细说明本发明涉及自然语言理解(NLU)系统。更具体地说,本发明处理包括基于规则的语法和统计模型的NLU系统。而且,提供训练系统。不过,在更详细地讨论本发明之前,将讨论能使用本发明的一个示例性环境。
图1示出适合的计算系统环境100,在其上可实现本发明。计算环境100只是适合环境的一个例子,并且不是想要提出关于本发明的用途或功能范围的任何限制。不应该将计算环境100解释为对在示例性操作环境100中例示的组件的任何一个或组合有任何的依赖性或要求。
本发明可与众多的其它通用或专用计算系统环境或配置一起运行。适合于使用本发明的众所周知的计算系统、环境和/或配置的例子包括,但不限于,个人计算机、服务器计算机、手持或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、小型机、大型计算机、包括任何上述系统或设备的分布式计算环境等等。
可在由计算机可执行指令,诸如由计算机执行的程序模块的一般环境中描述本发明。通常,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。本发明也可在分布式计算环境中实施,在所述分布式计算环境中由通过通信网络连接的远程处理设备执行任务。在分布式计算环境中,程序模块通常位于本地和远程两者包括存储器设备在内的计算机存储介质中。
参考图1,用于实现本发明的示例性系统包括计算机110形式的通用计算设备。计算机110的组件包括,但不限于,处理单元120,系统存储器130,以及将包括系统存储器在内的各种系统组件连接至处理单元120的系统总线121。系统总线121可能是任何几种类型总线结构的任一种,包括存储器总线或存储控制器,外设总线,使用任何各种各样总线结构的局部总线。作为例子,但不限于,这样的结构包括工业标准结构(ISA)总线,微通道结构(MCA),增强ISA(EISA)总线,视频电子标准协会(VESA)局部总线,以及外设部件互连(PCI)总线,也被称为夹层(Mezzanine)总线。
计算机110一般包括各种各样的计算机可读介质。计算机可读介质可以是能由计算机110访问的任何可用介质,并且包括易失性介质和非易失性介质,可移动和不可移动的介质。作为例子,但不限于,计算机可读介质可包括计算机存储介质和通信介质。计算机存储介质包括以任何方法或技术实现的易失性和非易失性介质,可移动和不可移动的介质,用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息。计算机存储介质包括,但不限于,RAM,ROM,EEPROM,闪存或者其它存储技术,CD-ROM,数据通用盘(DVD)或其它光盘存储器,磁带盒,磁带,磁盘存储器或者其它磁存储设备,或者能用于存储想要的信息以及能由计算机110访问的任何其它介质。通信介质一般包括在诸如载波或者其它传输机制调制的数据信号中的计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。术语″调制的数据信号″指的是以在信号中编码信息的方式设置或改变信号的一个或多个特征的信号。作为例子,不是限制,通信介质包括有线的介质,诸如有线网络或者直接线的连接,以及无线介质,诸如声音、RF、红外线和其它无线介质。任何上述各项的组合也应该包括在计算机可读介质的范围内。
系统存储器130包括易失性/或非易失性存储器形式的计算机存储介质,诸如只读存储器(ROM)131和随机存取存储器(RAM)132。基本输入/输出系统133(BIOS),包含(诸如在启动时)帮助在计算机110内的部件之间传送信息的基本例程,通常存储在ROM 131中。RAM 132一般包括数据和/或程序模块,可由处理单元120立即访问和/或当即操作。作为例子,但不限于,图1例示操作系统134,应用程序135,其它程序模块136和程序数据137。
计算机110还可包括其它可移动的/不可移动的、易失性的/非易失性的计算机存储介质。只作为例子,图1例示了读写不可移动的、非易失性的磁介质的硬盘驱动器141,读写可移动的、非易失性磁盘152的磁盘驱动器151,以及读写可移动的、非易失性光盘156,诸如CD ROM或者其它光介质的光盘驱动器155。能在示例性操作环境中使用的其它可移动的/不可移动的、易失性的/非易失性的计算机存储介质包括,但不限于,磁带盒、闪存卡、数字通用盘、数字视频带、固态RAM、固态ROM等等。硬盘驱动器141一般通过不可移动的存储器接口,诸如接口140连接至系统总线121,而磁盘驱动器151和光盘驱动器155一般通过可移动的存储器接口诸如接口150连接至系统总线121。
上面讨论的并且在图1中所示的驱动器及其相关的计算机存储介质,为计算机110提供计算机可读指令、数据结构、程序模块和其它数据的存储。在图1中,例如,硬盘驱动器141被例示为存储操作系统144、应用程序145、其它程序模块146以及程序数据147。注意,这些组件能够与操作系统134、应用程序135、其它程序模块136和程序数据137或者相同或者不同。在这里为操作系统144,应用程序145,其它程序模块146和程序数据147给出不同的序号用以说明,至少它们是不同的拷贝。
用户可通过输入设备,诸如键盘162、话筒163和诸如鼠标、轨迹球或者触摸板这样的定位设备161,将命令和信息输入到计算机110中。其它输入设备(未示出)可包括操纵杆、游戏板、卫星天线、扫描仪等等。这些和其它输入设备常常通过连接到系统总线的用户输入接口160连接到处理单元120,但可通过其它接口和总线结构连接,诸如并行口、游戏口或者通用串行总线(USB)。监视器191或者其它类型的显示设备也可通过接口,诸如视频接口190连接到系统总线121。除监视器外,计算机还可包括其它输出设备,诸如扬声器197和打印机196,它们可通过输出外设接口190连接。
计算机110可在使用逻辑连接至一个或多个远程计算机,诸如远程计算机180的网络化环境中操作。远程计算机180可能是个人计算机、服务器、路由器、网络PC、对等设备或者其它普通网络节点,并且一般包括许多或者所有上面相对于计算机110所述的部件,尽管在图1中只示出了存储器设备181。在图1中所示的逻辑连接包括局域网(LAN)171和广域网(WAN)173,但还可包括其它网络。这样网络环境在办公室、企业级计算机网络、内联网和因特网中是很普通的。
当在LAN网络环境中使用时,计算机110通过网络接口或适配器170连接至LAN 171。当在WAN网络环境中使用时,计算机110一般包括调制解调器172或者用于在WAN 173,诸如因特网上建立通信的其它装置。可能是内置或外置的调制解调器172,可通过用户输入接口160或者其它适当的机制连接至系统总线121。在网络化环境中,相对于计算机110所述的程序模块或者其部分,可存储在远程存储器设备中。作为例子,不是限制,图1例示的远程应用程序185驻留在存储器设备181上。将意识到,所示的网络连接是示例性的,并且可使用在计算机之间建立通信连接的其它方法。
应该注意,能在诸如参考图1所述这样的计算机系统上实现本发明。不过,能在服务器、专用于消息处理的计算机或者分布式系统上完成本发明,其中在分布式计算系统的不同部分中完成本发明的不同部分。
图2A是按照本发明一个实施例的模型创作系统的方框图。模型创作系统200包括模型创作组件(model authoring component)202和可选的用户界面204。图2A还示出模型创作组件202接收大纲206、一组训练实例文本串(training example text strings)208、可选的语法库209作为输入,并输出基于规则的语法(诸如上下文无关的语法(context free grammar)或CFG)210。可选的语法库209包括与领域无关的概念的定义,诸如日期和时间,以及与领域有关的概念,诸如城市名,航线等,能从应用数据库中获得它们。
下面更详细地描述系统200的详细操作。简要地,然而,用户为模型创作组件202提供大纲206和训练实例文本串208。这或者通过可选的用户界面204,或者通过某些其它用户输入机制,或者通过自动化的装置来完成。模型创作组件202接收输入并且根据输入产生基于规则的语法210。基于规则的语法的一个例子是上下文无关的语法(或CFG),它允许计算机将输入映射到文本的语义表示。
大纲206例示性地是模型化的领域的语义描述。在图2B中示出大纲的一个示例。图2B例示一个非常简化的、能由开发者输入到系统200的大纲212。大纲212是表示各种文本串的意义的大纲,这些文本串来自用户的输入,以示出飞离和飞抵不同城市并且具有不同出发和到达时间。大纲212表示,显示航班命令(ShowFlight)包括用于Flight(航班)的语义类作为一个位置(slot)。大纲212还更详细地例示对航班的语义类,表示它具有相应于起飞时间、到达时间、起飞城市和到达城市的四个位置。
从大纲212,模型创作组件202能产生在图2C中例示的一组规则。规则一示出,ShowFlight语句将始终具有一个命令部分ShowFlightCmd(显示航班命令),在其后跟随一个属性部分ShowFlightProperties(显示航班属性)。
规则二表示,ShowFlihtProperties部分能在其中具有一个或多个属性。例如,规则二表示,ShowFlightProperties部分包括至少一个ShowFlightProperty(显示航班属性),在其后能跟随一个可选的ShowFlightProperties部分。ShowFlightProperties的这个递归定义简化其表达式,并且允许它具有一个或多个属性。
规则三示出,ShowFlightProperty部分包括一个ShowFlightPreFlight(显示航班前航班)部分,Flight(航班)部分,以及ShowFlightPostFlight(显示航班后航班)部分。这表示在大纲中的位置Flight能具有前文(preamble)和后文(postamble)两者。
第四条规则表示,大纲中的对象Flight不具有命令部分,而只具有属性部分(FlightProperties),因为Flight是大纲中的一个对象,而ShowFlight是一个命令。规则五示出,再次递归地定义FlightProperties部分,以包括至少一个FlightProperty,在其后跟随一个可选的FlightProperties。
规则六至九相应于在图2B中示出的大纲212中的四个位置。规则六定义第一个属性为具有一个起飞城市位置,在它之前是前文(FlightPreDepartureCity(航班前起飞城市)),在它之后是后文(FlightPostDepartureCity(航班后起飞城市))。规则七以同样的方法定义到达城市,以及规则八和九分别以相似的方式定义起飞时间和到达时间。
甚至给出这个事实在图2C中标识的所有规则,能由模型创作组件202从大纲212自动地产生,还不存在表示实际上将什么特定的词语映射到特定的前终端(preterminal)(用于命令语义类的命令,以及用于位置的前文和后文)的重写规则。例如,不存在表示将“please show me the flights(请显示我这些航班)...”映射到ShowFlightCmd的规则。同样,不存在表示将哪个词语映射到,例如FlightPreArrivalCity(航班前到达城市)前文等的重写规则。因此,开发者还输入训练实例文本串和注记(annotation)208,使得模型创作组件202也能学习这些重写规则。
图2D示出示例文本串213“Flight from Seattle to Boston(航班从西雅图到波士顿)”连同相应于文本串213的语义注记214的一个例子。语义注记214是由开发者提供的,并且表示串213的语义意义。例如,语义注记214示出,输入文本串213相应于具有一个插槽的Flight ShowFlight命令,Flight本身具有两个位置,两者都是城市。在Flight位置中两个位置之间的不同只是由位置的名称形成的。一个被称为“到达(Arrival)”城市,以及另一个被称为“起飞(Departure)”城市。语义注记214还将词语“Boston(波士顿)”映射到“到达”城市位置,以及将“Seattle(西雅图)”映射到“起飞”城市位置。因此,基于注记214,模型创作组件202将知道将哪个位置映射到“Seattle”和“Boston”。
从在图2C中所示的标注例子和模板语法规则,模型创作组件202能产生基于规则的语法(或CFG)解析树,诸如在图2E中例示的解析树216。解析树216的第一层218(该部分示出,ShowFlight是由ShowFlightCmd及随后的ShowFlightProperties构成的)是由图2C中的规则1形成的。
第二层220(该部分表示,ShowFlightProperties是由ShowFlightProperty构成的)是由规则2产生的,其中没有使用可选的ShowFlightProperties部分。
下一层222(该部分表示,ShowFlightProperty是由ShowFlightPreFlight及随后的Flight及随后的ShowFlightPostFlight构成的)是由在图2C中的规则3产生的。
下一层224(表示Flight对象是由FlightProperties部分构成的)是由图2C中的规则4产生的。
下一层226(该部分表示,FlightProperties部分是由FlightProperty部分及随后的FlightProperties部分构成的)是由图2C中的规则5产生的。
下一层228(该层表示,FlightProperty部分是由FlightPreDepartureCity部分及随后的City(城市)位置及随后的FlightPostDepartureCity后文构成的)是由规则6产生的,并且下一层230(该层示出,FlightProperties是由FlightPreArrivalCity前文、City位置和FlightPostArrivalCity后文构成的)是由规则7产生的。
最后,表示词语“Seattle”被映射到在层228下的城市(City)位置的和词语“Boston”被映射到层230下的城市(City)位置的层,是由语义注记214产生的,它也是由用户输入的。因而,模型创作组件202能知道如何从输入语句中的词语“Seattle”和“Boston”映射到CFG解析树和在图2C中产生的规则。应该注意,城市规则也能从库语法(它转而能通过从领域专用的数据库取数据来构造)而不是标注的数据来获得。
不过,在输入语句中还存在许多尚未被映射到树的词语。那些词语包括“Flight(航班)”、“from(从)”和“to(到)”。由于词语“Flight”和“from”在词语“Seattle”之前,它们能将映射到解析树216中各种各样的前终端,包括FlightCmd、ShowFlightPreFlight和FlightPreDepartureCity。同样,由于在输入文本串213中,词语“to”驻留在词语“Seattle”和“Boston”之间,所以能将词语“to”或者映射到FlightPostDepartureCity,或者映射到FlightPreArrivalCity。
由于已知词语“to”是前置词,它必须修饰在它之后出现的内容。因此,能确定词语“to”映射到解析树216中的FlightPreArrivalCity前终端。
不过,仍不知道词语“Flight”和“from”应该驻留在解析树216中的哪里。而且,用于两个词语的特定分段是不知道的。例如,在一个可选择方案中,能将词语“Flight”映射到ShowFlightCmd,而将词语“from”映射到ShowFlightPreFlight。在那种情况下,将前终端FlightPreDepartureCity映射到一个空集中。
按照另一个可选择的方案,将词语“Flight”和“from”两者都映射到ShowFlightCmd,而将前终端ShowFlightPreFlight和FlightPreDepartureCity两者都映射到空集。
在又一个可选择方案中,将“Flight”映射到ShowFlightCmd并将“from”映射到FlightPreDepartureCity,而将剩余的前终端ShowFlightPreFlight映射到空集。
这表示过去在缺少来自开发者的附加信息时还没有解决的分段不明确性。在有些以前的系统中,简单地向用户显示每个可能的分段,并且允许用户选择那些分段之一。
不过,这已经导致许多问题。首先,与用户交互的这种类型是打扰的和耗时的。而且,当存在多个可能的前终端时,并且在输入文本串中有多个不匹配的词语时,必须向用户提供的可能性数量显著地上升。如果不是不可能,则有效地显示所有这样的候选分段让用户选择是非常困难。另外,甚至当充分地显示这些分段用于由用户选择时,用户常常在分段中产生错误或者不一致地分段相似的文本串。
按照一个实施例,期望最大化(expectation maximization)(EM)算法应用于模型组件202中的分段不确定性,以便消除分段选择的歧义。EM算法,一般是一个算法,用于,当模型包含不可观测的隐藏变量时,用最大可能性估计器(maximum likelihood estimator)估计模型参数。
图3A示出一方框图,很详细地例示模型创作组件202。图3A示出,模型创作组件202例示性地包括模板语法生成器300,分段EM应用组件302和剪裁组件304。模板语法生成器300接收大纲206和在由大纲206中的语义类引用可选的语法库209中的任何规则并且产生一模板语法,所述模板语法包括能从大纲206和可选的语法库209知道或收集的所有规则。然后由EM分段组件采用模板语法与训练例子(文本串和其注记)一起作为输入。EM分段组件302使用模板语法在训练例子中找出分段不确定性。组件302接着操作以消除任何分段不确定性的歧义。基于那个消除歧义,能使用剪裁组件304从语法中剪裁重写规则以提供基于规则的语法210。
为了进一步例示EM分段组件302的操作,图2F和2G提供示例性表。图2F示出包括一组例子的表。第一个例子示出,词语“从”有可能映射到前终端ShowFlightCmd或者映射到前终端FlightPreDepartureCity。这个例子可由组件302从象“from Seattle to Boston(从西雅图至波士顿)”的示例语句获得。第二例子表示,能将词语“Flight from(航班从)”映射到前终端ShowFlightCmd和FlightPreDepartureCity。这个例子可由组件302从象“Flight from Seattleto Boston(航班从西雅图至波士顿)”的示例语句获得。第三个例子例示将词语“Flight to(航班到)”映射到前终端ShowFlightCmd和FlightPreArrivalCity,它能由组件302同样地从象“Flight to Boston onTuesday(航班到波士顿于周二)”的语句获得。不过,这些例子的分段是不明确的。换句话说,还不知道在第一个例子中词语“from(从)”是否要被映射到前终端ShowFlightCmd或到前终端FlightPreDepartureCity。同样,不知道词语“Flight from(航班从)”如何在前终端ShowFlightCmd和FlightPreDepartureCity之间被映射。另外,当然,不知道词语“Flight to(航班到)”如何在可能的前终端ShowFlightCmd和FlightPreArrivalCity之间被映射。
图2G是一个表,进一步例示EM算法应用组件203的操作。图3B是流程图,例示组件203的操作,并且将连同图2F和2G来描述。
首先,组件302列举所有可能的分段。这是在标记为可能重写规则的图2的左边列中示出。在图2G中示出的重写规则中,有些构成前终端名称的词语是简略的。因此,作为例子,重写规则SFCmd→ε表示将ShowFlightCmd(简略为SFCmd)前终端映射到空集的分段。同样,重写规则SFCmd→from代表将词语“from”映射到前终端ShowFlightCmd的分段。此外,FPDCity→ε表示将前终端FlightPreDepartureCity(简略为FPDCity)映射到空集的分段,以及FPACity→ε代表将前终端FlightPreArrivalCity(简略为FPACity)映射到空集的分段。从这些例子,在图2G中所示的表的重写规则部分中的其它标注是自解释的。有能力说,对于在图2F中所示的例子,列举了每个可能的分段。
从图2F中的第一个例子,一个分段表示将词语“from”映射到ShowFlightCmd,以及另一个分段表示将词语“from”映射到FlightPreDepartureCity。
在图2F中的第二个例子也支持多个不同分段的可替换方案。例如,按照一个分段可替换方案,将词语“Flight from”都映射到前终端ShowFlightCmd,以及将前终端FlightPreDepartureCity映射到ε。在另一个分段可替换方案中,将词语“Flight from”都映射到前终端FlightPreDepartureCity,以及将前终端“ShowFlightCmd”映射到ε。在又另一个可替换方案中,将词语“Flight”和“from”分开,使得将词语“Flight”映射到前终端ShowFlightCmd,以及将“from”映射到前终端FlightPreDepartureCity。这些分段的每一个也在图2G中列举的重写规则中示出。
能以与第二个例子相似的方法分段第三个例子,其中能将词语“Flight to”映射到前终端ShowFlightCmd,或者映射到前终端FlightPreArrivalCity,同时将其它前终端映射到ε,或者能在前终端ShowFlightCmd与FlightPreArrivalCity之间将词语“Flight to”分开。再一次,在图2G中所示的重写规则中表示这些分段的每一个。
在图3B的流程图中,由方框306表示所有可能分段的列举。
一旦列举支持分段的重写规则,给它们每一个分配一个概率。开始时,给图2G中例示的所有分段分配相同的概率。这由图3B中方框308表示。
接着,基于在图2F中所示那些计数的可能出现,组件302将新的预期计数(expected count)分配给列举的重写规则。这由方框310表示。例如,从第一个例子,有两个可能的分段,一个将词语“from”映射到ShowFlightCmd并将前终端FlightPreDepartureCity映射到ε,以及另一个分段将ShowFlightCmd映射到ε并将词语“from”映射到前终端FlightPreDepartureCity。第一个重写规则说ShowFlightCmd前终端映射到ε(空集)。因此,在例子1中半数的分段支持在图2G的表中所示的第一重写规则。因而,从第一个例子,给第一个重写规则(ShowFlightCmd→ε)分配二分之一的计数。
如上所述,第二个例子支持三个不同的分段,其中之一将两个词语“Flightfrom”分配给前终端ShowFlightCmd并将前终端FlightPreDepartureCity分配给ε,另外一个分段将词语“Flight”映射到前终端ShowFlightCmd并将词语“from”映射到前终端FlightPreDepartureCity,最后一个分段将前终端ShowFlightCmd映射到ε并将两个词语“Flight from”映射到前终端FlightPreDepartureCity。这三个分段中,一个支持第一个重写规则(SFCmd→ε)。因此,从第二个例子,给第一个重写规则分配三分之一的计数。
以同样的方法,第三个例子具有三个可能的分段,其中之一将前终端ShowFlightCmd映射到ε。因此,从第三个例子,再为图2G中所示的第一个重写规则分配三分之一的计数。
使用这种类型的分析能看到,第二个重写规则(SFCmd→from)只由第一个例子支持。因此,由于存在两个可能的分段用于第一个例子,并且它们之一支持第二个重写规则,所以为第二个重写规则(SFCmd→from)分配二分之一的计数。
第三个重写规则(SFCmd→Flight)是由来自在图2F中所示的第二和第三个例子的每一个的分段之一支持的。因此,由于那些例子的每一个具有三个可能的分段,所以从每个例子为第三个重写规则(SFCmd→Flight)分配给三分之一的计数。
组件302以这个方法将计数分配给在图2G中列举的重写规则的每一个,并且在图2G中所示的表的第二列中例示那些计数。全部转换这些计数,使得它们具有共同的分母,以及接着为每个前终端规格化它们以取得概率。换句话说,对ShowFlightCmd终端的总概率集必须加成一。因此,对每个重写规则的计数乘以一个规格化系数,以便获得与那个重写规则相关联的概率。
例如,能看到用于前终端ShowFlightCmd的计数的总数是3。因此,第一个重写规则(SFCmd→ε)的概率是7/18。同样,用于第二个重写规则(SFCmd→from)的概率是3/18等。组件302处理对每个重写规则和每个前终端的计数,以便获得这个概率。
因而能看到,对于前终端FPDCity,在所有不同规则上的计数的总数是2,因此规格化系数是1/2。对于最终前终端FPACity,只有一个计数(3*1/3=1),并且因此规格化系数是一。因而能看到,组件302复位与每个重写规则相关联的概率到一,它更准确地反映由例子支持的重写规则的出现。规格化该计数以获得新的概率,是由图3B中的方框312表示的。
组件302迭代这个过程(重新估算计数和获得新的概率),直到计数和概率收敛。这由方框314表示。例如,为了获得对第一个重写规则的新计数C,组件302实现如下的方程1,它首先找到观测到给出非终端序列ShowFlightCmd和FPDCity的词语“from”的总可能性方程1P(from|ShowFlightCmd FPDCity)=P(ε|ShowFlightCmd)*P(from|FPDCity)+P(from|ShowFlightCmd)*P(ε|FPDCity)=[(7/18)×(5/12)]+[(3/18)×(5/12)]=50/216在这个数量之外,用于分段的比例变成新的预期计数C,所述分段将空串与ShowFlightCmd匹配并将“from”与FPDCity匹配方程2C‾(ϵ|cmd)=P(ϵ|cmd)*P(from|FPDCity)P(from|cmd FPDCity)]]>=718×51250216=3521650216=3550=710]]>同样,按如下计算用于第二个重写规则(SFCmd→from)的新计数C
方程3C‾(from|cmd)=P(from|cmd)*P(ϵ|FPDCity)P(from|cmd FDPCity)=318×51250216=1521650216=310]]>为每个重写规则继续这个过程,以从每个例子收集计数C。然后,将新的计数乘以规格化系数以获得新的概率。如在图3B中所示,组件302迭代这个过程,重新估算新的计数和新的概率,直到概率收敛为止。
一旦完成迭代,组件302将计算与每个列举的重写规则相关联的新的计数和新的概率。尽管在其本身中和关于其本身,这是非常有帮助的,因为它已经给相应于在训练期间获得的不同分段的规则,分配了对于每个分段的概率,它可能不是所希望的最终结果。例如,有些解析器不能利用概率。而且,在有些解析组件中,大量的规则致使解析器效率较低。
因而,按照一个例示性实施例,组件302提供规则和相关联的概率至剪裁组件304,在其中能剪裁规则。这由图3B中方框316和318表示。剪裁组件304能以许多不同方法之一剪裁规则(如由方框320表示的)。例如,剪裁组件304能简单地剪裁出具有低于所要求的阈值级的概率的规则。组件304接着将剩余的规则引入基于规则的语法210。
按照另一个例示性实施例,剪裁组件304排除除具有相应于每个例子的高可能性的分段的预定数量之外的全部,并且只按照剩余的分段将重写规则引入语法。例如,组件304可排除所有相应于每个例子的分段,除具有最高概率的一个之外。因而,例如1,假设将词语“from”映射到前终端FlightPreDepartureCity的分段具有比将词语“from”分配给前终端ShowFlightCmd的分段更高的概率。在那样情况中,第二个分段(将“from”映射到ShowFlightCmd的分段)被排除。在那种情况下,将支持所选择的分段的两个重写规则添加到语法中。因此,将重写规则“SFCmd→ε”和重写规则“FPDCity→from”都添加到语法中。
同样,不再由任何例子的最佳分段支持的规则,能从在图2G中所列举的规则中删除。因而,能删除规则“SFCmd→from”,因为它只由对已经被排除的例子1的分段支持。
现在以更正式的数学术语来描述以这个方法的EM算法的应用。能将分段不确定性公式化为这个问题为词语序列w=w1,w2,...,wn找出m个块划分(block partition)π=α1,α2,...,αm,使得每个块与序列N=NT1,NT2,...,NTm中的前终端匹配。块可包含0一个或多个来自w的词语。
如果用下式模型化π、N和w的联合概率方程4P(π,N,w)=Πi=1mP(NT1→αi)]]>那么给定N和w,最有可能的分段能按下式获得方程5 这样一个划分能用维特比(Viterbi)搜索找到。因而余下的唯一问题是为每个前终端(或概念)NT和词语序列α估算模型参数P(NT→α)。这能用最大似然(ML)估算来完成,只要训练数据是与对每个前终端的词语序列配对的前终端的列表。然而,通过创作工具从用户获得的训练例子例示性地是成对的前终端序列和终端序列。划分或分段是隐式的变量并且对于工具是未知的。
EM算法开始时为模型设置参数P,并且接着迭代地修改参数至P’,使得观测D的可能性增加。
为找出这样的P’,在(6)中定义辅助函数Q方程6Q(Pφ′|Pφ)=ΣN,wc(N,w)ΣπPφ(π|N,w)logPφ(π,N,w)Pφ(π,N,w)]]>这是L(D|P’)-L(D|P)的下限,在两个模型参数化之间的训练数据的对数-可能性的差。EM算法通过最大化Q渴求地复位参数P’,以最大化由新的参数化训练取样可能性的增加,服从用于一个前终端的所有可能重写规则的概率必须总和为1的约束。因此,对于每个规则NTα,其新的概率能通过解下面的方程来获得方程7∂(Q(Pφ′|Pφ)+λ(ΣaPφ′(NT→α))-1))∂Pφ′(NT→α)=0]]>因为Pφ′(π,N,w)=ΠNT,αPφ′(NT→α)c(NT→απ,N,w),]]>
方程8∂Q(Pφ′|Pφ)∂Pφ′(NT→α)=]]>ΣN,wc(N,w)ΣπPφ(N,w)c(NT→α;π,N,w)Pφ′(NT→α)=-λ.]]>因此,概率应该被复位到为预期计数乘以规格化系数-1/λ方程9Pφ′(NT→α)=]]>-1/λΣN,wc(N,w)ΣsPφ(π|N,w)c(NT→α;π,N,w)]]>要计算预期计数,注意方程10∂Pφ(N,w)∂Pφ(NT→α)=∂ΣπPφ(π,N,w)∂Pφ(NT→α)]]>=Σπc(NT→α;π,n,w)ΠNT,αPφ(NT→α)c(NT→α;π,N,w)Pφ(NT→α)]]>=ΣπPφ(π,N,w)c(NT→α;π,N,w)Pφ(NT→α)]]>=Pφ(N,w)ΣπPφ(π|N,w)c(NT→α;π,N,w)Pφ(NT→α)]]>因此方程11ΣπPφ(π|N,w)c(NT→α;π,N,w)]]>=Pφ(NT→α)Pφ(N,w)∂Pφ(N,w)∂Pφ(NT→α)]]>设Eijαk=(N⇒w1,...,wn)]]>是这个事件在将前终端序列N重写到词语序列w的过程中,使用规则NT→α用于N中第k个前终端,以产生子序列α=w1,w2,...,wj,并且设λst(p,q)是在序列N中从位置s至t的前终端覆盖终端词语wp,...,wq=1的概率。那么方程12Pφ(N,w)=ΣijEijk=]]>Σijλ1k-1(1,i)λk+1m(j+1,n+1)Pφ(NT→wi,...,wj)]]>方程13∂Pφ(N,w)∂Pφ(NTk→α)=Σij:α=wi,...,wjλ1k-1(1,i)λk+1m(j+1,n+1)]]>因此,如果能计算λst(p,q),那么能结合方程(9)、(11)和(13)以获得预期计数并复位模型参数。事实上,按照(14)能用动态规划计算λst(p,q),其中ε是空串方程14λst(p,q)=Σprqλst-1(p,r)λ1t(r,q);]]> 如果p<q;如果p=q注意,能在方程(11)中使用 图4例示按照本发明的一个不同方面的模型创作组件350的另一个实施例。基于规则的语法210仍能比所要求的较不健壮且更脆弱。例如,假设在产生下列规则的训练期间,要模型化下列前终端FlightPreArrivalCity→to(航班前到达城市→到)ShowFlightCmd→Show me the flight(显示航班命令→向我显示这个航班)进一步假设,在运行时,输入的语句是“Show flight to Boston(示出航班到波士顿)”。将不理解输入语句,因为没有规则说“Show flight(显示航班)”是ShowFlightCmd。
CFG为高分辨率理解(resolution understanding)运行良好。高分辨率理解表示将语句分解成大量位置的语法。位置的数量越大,由语法展示的分辨率理解越高。CFG在高分辨率情况下普遍适用良好。
然而,许多应用要求低分辨率理解,其中没有大量的位置要填充。一个这样的应用是命令和控制。例如,在一个命令和控制应用中,有些必须要识别的命令包括“ChangePassword(修改密码)”,“ChangeBackground(修改背景)”和“ChangeLoginPicture(修改登录图片)”。在这些实例中,没有位置要填充,并且要识别整个语句作为命令。在训练期间,这可适当地导致一个规则诸如ChangeLoginPictureCmd→Please change my login icon(请修改我的登录图标)。
因为“ChangeLoginPicture”是一个命令,所以对于规则没有属性部分。因此,语法学习程序简单地“记住”它获得的规则中的完整语句。为了识别和激活一个用户发出的命令,命令必须匹配在训练数据中的完整语句。根本不存在一般性。
描述本发明的一个实施例,代替用模板语法中的规则模型化前终端(诸如命令,前文和后文),使用统计模型(诸如n元语法)来模型化前终端。在一个实施例中,使用为所列举的、相应于在模板语法中的前终端的分段产生的文本,作为用于n元语法(或其它统计模型)的训练数据。因此,在上面的例子中,相应于为前终端列举的分段的文本串,与其在EM算法的预期步骤中收集的预期计数一起,被用于训练用于前终端的n元语法。因而,使用文本“Show me theflight(向我显示这个航班)”作为训练数据,以训练用于模型化ShowFlightCmd前终端的n元语法。因此,在其中具有“Show flight(显示航班)”的语句将被识别为ShowFlightCmd的概率,能按如下计算公式15Pr(<s>showflight</s>|ShowFlightCmd)=Pr(show|<s>;ShowFlightCmd)*Pr(flight|show;ShowFlightCmd)*Pr(</s>|flight;ShowFlightCmd)尽管规则将不能识别“show flight”为ShowFlightCmd,但是在方程15中的上述n元语法概率将不是零。在方程15中的第一个系数和第三个系数是非零的,因为它们相应于实际上存在于训练数据(即,[<s>show和[flight</s>])中的二元语法。第二个系数不相应于在训练数据中揭露的二元语法,但因为滤波技术象补偿(下面描述),它也具有非零的概率并且能被如下表示公式16Pr(flight|show;ShowFlightCmd)=backoff_weight*Pr(flight|ShowFlightCmd)
能以经验为主设置补偿权重(backoff weight),或否则,在希望时,且一元语法概率Pr(flight|ShowFlightCmd)是非零的,因为“flight”在训练数据中是一个词语。
由于Pr(show flight</s>|ShowFlightcmd)>0,解析器将认为输入语句为ShowFlight的候选。输入语句的最终解释将取决于与其它解释候选的比较。
图4这样示出模型创作组件350的另一个实施例,模型创作组件350创作一个复合模型351,它包括语法部210(如CFG),后者又包括用于模型化位置的规则和用于识别前终端(诸如命令,前文和后文)的统计模型部分326(诸如n元语法)。因而,在运行期间,用统计模型部分326评估输入语句,以识别前终端,并且用基于规则的语法部分210填充位置。
组件350部分地使用上述EM算法技术训练复合模型351。例如,假设图5按照不同取样的分段示出所有为ShowFlightCmd列举的规则。
对于上面参考图2-3B讨论的模型,在EM算法的E-步骤期间,为在图5中所示的每个列举的规则收集预期计数。在M-步骤期间,规格化计数。不过,对于复合模型351,代替在算法的M-步骤期间规格化计数,使用在列举的规则的右手侧的文本串和相关联的、相应于那些规则的预期计数,作为训练数据以训练和滤波n元语法用于ShowFlightCmd前终端。
换句话说,在训练n元语法时,不必为一个词语序列的每次出现增加全部计数。取代地,为词语序列的每次出现,增加相应于用于与训练语句(由在图3A中例示的EM应用组件302产生的)相关联的规则的预期计数的分数数据。
与参考图2-3B为分段消除不确定性所描述的实施例的另一个不同,涉及EM算法的E-步骤。代替将概率与每个列举的规则相关联,规则的概率是规则中所有n元语法的乘积。
例如,在上面讨论的基于规则的语法中,规则ShowFlightCmd→Show me the flight具有与其相关联的原子概率(atomic probability)。不过,在复合模型351中,用于规则的概率能如下计算方程17Pr(ShowFlightCmd→show me the flight)=Pr(show|<s>;ShowFlightCmd)*Pr(me|show;ShowFlightCmd)*
Pr(the|me;ShowFlightCmd)*Pr(flight|the;ShowFlightCmd)*Pr(</s>|flight;ShowFlightCmd)。
而且,按照本发明的一个实施例,训练用于前终端的统计模型,包括应用一个滤波算法。例如,用于训练用于前终端的统计模型的训练数据可相对地稀疏,因为它只包括为与给定前终端相关联的分段列举的文本串。这将留下相对大数量的未被统计模型覆盖的语言表达,并且因此将致使统计模型相对脆弱。因而,使用低级n元语法并用均匀分布滤波模型概率。换句话说,如果统计模型包括二元语法,用为模型化的词语提供概率的一元语法来滤波它,而不管上下文。另外,用将相同的概率分配给词汇表中的每个词语的均匀分布滤波统计模型。因此,如果词语在词汇表中,它将不由统计模型用零概率来模型化。使用删除的插入以找出对滤波操作中的每个模型的权重,并且线性地内插不同阶次的模型。
组件350也能按照本发明的不同实施例训练附加的统计模型组件。这在图6所示的方框图中更详细地例示。例如,在那个方框图中,统计模型部分326被示为不仅包括用于前终端340的统计模型组件,还包括多个其它统计模型。例如,统计模型326在一个实施例中,能包括组件342和344,它们包括模型化以前的任务概率的统计模型,以及用于位置转移(transition)的统计模型。
例如,如果运行时输入的语句是“Show flights to Boston arriving onTuesday(显示周二到达波士顿的航班),11:00a.m.”术语“arriving on(到达于)”将被分析为表示“Tuesday(周二)”相应于到达日期。不过,在“11:00a.m.”之间没有词语,表示它或者是起飞时间,或者是到达时间。“arrivaltime(到达时间)”位置跟随在“arrival date(到达日期)”位置的概率将有可能比“departure time(起飞时间)”跟随在“arrival date(起飞日期)”位置的概率高。如果模型化这样的位置转移,则位置转移模型将更喜欢将“11:00a.m.”匹配于“arrival time(到达时间)”位置。也将注意到,训练用以模型化位置转移的统计模型(诸如n元语法模型),与训练用以模型化位置的以前概率的统计模型(诸如n元语法模型)相同,除了n的阶次不同。对于位置的以前概率,训练一元语法模型,并且用以模型化两个位置之间的位置转移,训练二元模型等。
此外,在训练数据时有些命令比其它的更频繁地出现。因此,在模型342中模型化命令的以前概率。
现在将参考另一个例子更详细地描述本发明。图7示出在大纲中的语义类的一个示例性简化的例子,它定义用于约会安排命令NewAppt的语义。
图8例示能为语义类NewAppt自动产生的模板规则,其中在括号内的符号是可选的。图9例示标注的语句“New meeting with Peter at 5:00(新会面与彼得在5:00)”的一个实施例。图10例示两个规则,一旦如上述讨论完成分段消除不确定性,就能添加这两个规则,。
不过,如讨论的,纯粹基于规则的语法能缺少健壮性并展示脆弱性。因此,本发明的一个方面用n元语法代替CFG规则来模型化模板语法中的每个命令,前文和后文,并且模型化位置转移。位置n元语法约束缺少前文和后文的位置的解释。最后得到的模型是统计模型(或HMM)和CFG的合成。HMM模型化模板规则和n元语法前终端,以及CFG模型化库语法。
在图11中示出这类模型的一个例子。术语“Att”是用于“Attendee(出席者)”的缩略,而“St”是用于“StartTime(开始时间)”的缩略。发射概率(emissionprobability)b是前终端-相关的n元语法(在图中它们被示为一元语法,但高阶发射分布将导致高阶HMM),并且转移概率(transition probability)a是位置转移二元语法。来自位置节点的发射是库CFG的非终端。按照CFG模型PCFG从它们产生词语。
在图11中所示的模型中,输入语句s的意义能通过找出维特比语义类c和状态序列σ来获得,它们满足方程18(c,s)=argmax(c,s)P(c,s|s)=argmax(c,s)P(c,s,s)]]>=argmax(c,s)P(c)′P(s,s|c)]]>新模型克服CFG模型的限制。对于低分辨率理解(任务分类),将无属性的前终端引入模板语法。因此,使用所有训练数据训练和滤波用于命令前终端的n元语法。模型按比例缩小由方程19表示的n元分类器。
方程19 =argmaxcP(c)ΠiP(wi|,wi-1,wi-2,...,w1;cCmd)]]>n元语法模型不要求精确的规则匹配。代替进行有关规则可应用性的二元判定,它比较从状态(前终端)序列产生的观测到的词语序列的概率,以找出最有可能的解释。因此,模型本身是健壮的,并且不需要一个健壮的解析器。
现在参考在图7-11中所示的例子更详细地描述训练。为了训练模型,EM算法自动地分段词语序列并且将每个分段α与在相应对的前终端序列中相应的前终端NT匹配。EM算法建立模型P(NT→α),它分配一个概率用于从NT产生词语串a,并且用初始均匀分布将它参数化。然后如上所述它迭代地精确化参数化。在每次迭代中,它按照在前次迭代中的模型的参数化计算对规则NT→α的期望计数(E步骤),并且接着通过规格化预期计数重新估算概率P(NT→α)(M步骤)。为了训练用n元语法模型化前终端的新模型,在M-步骤中使用在E-步骤中收集的预期计数,训练和滤波n元语法;并且由EM算法使用n元语法,收集用于该分段的预期计数。这导致在图12中例示的训练算法。
在一个例示性实施例中,在图12的最后一行中例示的阈值被设置为0.01。当然,也能使用其它阈值。
也值得注意本发明的其它可选方面。可选的语法库209(在图2A,4和13中所示)能适应于以统计方式训练数据208。例如,假设语法库209包括一个相对大的城市列表,它包含大和小、国际和国内两者的城市。不过,进一步假设要为其训练模型的特定应用将只引用国内城市,并且还假设大的国内城市诸如纽约和洛杉矶(Los Angles)比较小的城市更有可能被引用。组件202或350从标注的训练数据208,学习与能包括语法209的概率的与上下文无关的语法(PCFG)相关联的概率。例如,可学习到对规则Cityname→New York(城市名称→纽约)的概率比对规则Cityname→Tokyo(城市名称→东京)的概率大。这能以与学习上述其它概率相同的方法来完成。
图13例示使用用于位置的基于规则的语法和用于前终端的统计模型部分两者的运行时系统。系统接收输入,并且使用语法部分和n元语法部分以及输出一个输出402。
参考图14更详细地描述译码。图14例示动态规划格栅结构(dynamicprogramming trellis structure),它代表一个在使用输入“new meeting withPeter at five(新会议与彼得在五)”时的动态规划译码器。
动态规划译码器找出由上面的方程18表示的维特比路径。在接收输入时,译码器首先使用自底而上的图形解析器以找出覆盖某些输入范围的库语法非终端。在本例中,它将“Peter(彼得)”识别为<Person>(<人>)并且将“five(五)”识别为<time>(<时间>)或<num>(<数字>)。译码器接着通过从在第一列处的语义类节点开始的格栅搜索(本例只示出语义类NewAppt)。在每个节点,它进行转移至同一列中的其它节点(切换到一个不同的非终端)或者至同一行的下一节点(通过非终端用掉一个输入词语)。搜索继续从左向右,直到它到达最右边的列。当它进行转移时,通过将一个适当的对数概率加到开始节点的分数来获得一个分数。接着将分数与目的节点的分数比较,并且如果新的分数更高则代替它。在格栅下面是由图形解析器识别的非终端。粗线路径410表示维比特解释。上面的细线路径识别正确的任务,但不是位置的。下面的细线路径(它其象维比特路径的一部分)识别出席者但非开始时间位置。它将“at five(在五)”处理成出席者的后文。在下面列出用于在图14中所示的最先九个转移的每一个的概率,用于维特比路径410。
1.log P(NewAppt) //类优先2.log b(New|<s>;NewApptCmd) //词语二元语法3.log b(meeting|new;NewApptCmd) //词语二元语法4.log b(</s>|meeting;NewApptCmd)+//词语二元语法log a(At tendee|<s>;NewAppt) //位置二元语法5.log b(with|<s>;PreAttendee)//词语二元语法6.log b(</s>|with;PreAttendee) //词语二元语法7.log Pcfg(Peter|<Person>)//PCFG8.09.log b(</s>|<s>;PostAttendee)+ //词语二元语法log a(StartTime|Attendee;NewAppt) //位置二元语法能使用任何想要的剪裁机制。例如,一个剪裁机制规定,在格栅的每一列,如果节点的分数比小于同一列中最大分数的阈值(诸如5.0)小,则不对该节点进行转移。换句话说,如果它比通向同一列中一个节点的另一个几乎小10 5倍时,不扩展该路径。译码器比剪裁后健壮的解析器运行得要快一个数量级。
因而能看到,本发明的各种实施例不仅包括用于前终端的统计模型,但还能包括用以填充位置的基于规则的语法部分。本发明还能包括任务的先前概率的模型,以及用于位置转移的统计模型。最后,本发明的一个实施例包括使用来自在产生规则时使用EM算法的E-步骤的预期计数,训练统计模型。
尽管已经参考特定的实施例描述了本发明,但是在本领域中熟练的技术人员将认识到可在形式和细节上作出修改,而不脱离本发明的精神和范围。
权利要求
1.一自然语言理解(NLU)系统,用于将自然语言输入映射到大纲,包括一基于规则的语法组件,被配置为将自然语言输入的部分映射到从大纲导出的位置;一统计模型组件,被配置为将自然语言输入的部分映射到从大纲导出的前终端;以及一译码器,连接到基于规则的语法组件和统计模型组件。
2.如权利要求1所述的NLU系统,其特征在于,所述统计模型组件包括一统计模型,相应于从大纲导出的多个不同前终端的每一个。
3.如权利要求1所述的NLU系统,其特征在于,所述统计模型组件包括一统计位置转移模型,模型化在位置之间的转移。
4.如权利要求1所述的NLU系统,其特征在于,所述大纲是任务的表示,且其中,所述统计模型组件包括一统计任务模型,模型化任务的先前概率。
5.如权利要求1所述的NLU系统,其特征在于,所述译码器被配置为,接收自然语言输入以及通过访问基于规则的语法组件和统计模型组件,将自然语言输入映射到大纲。
6.如权利要求5所述的NLU系统,其特征在于,所述基于规则的语法组件包括一图形解析器,且其中,所述译码器被配置为,访问图形解析器以识别一个或多个非终端,所述非终端覆盖一个或多个自然语言输入的范围。
7.如权利要求6所述的NLU系统,其特征在于,所述译码器被配置为,基于在自然语言输入中的一个或多个非终端和词语,使用统计模型组件执行动态规划译码。
8.一创作组件,被配置为,在自然语言理解(NLU)系统中,产生用于将自然语言输入映射到从大纲导出的位置和前终端的组件,包括一模型训练器,被配置为,基于训练数据来训练基于语法的规则,以及训练用于将自然语言输入映射到从大纲导出的前终端的统计模型。
9.如权利要求8所述的创作组件,其特征在于,所述模型训练器被配置为,训练相应于多个不同前终端的每一个的统计模型。
10.如权利要求8所述的创作组件,其特征在于,所述模型训练器被配置为,训练模型化在位置之间的转移的统计位置转移模型。
11.如权利要求8所述的创作组件,其特征在于,所述大纲是任务的表示,且其中,所述模型训练器被配置为,训练模型化任务的先前概率的统计任务模型。
12.如权利要求8所述的创作组件,其特征在于,所述模型训练器被配置为,列举将位置和前终端与训练文本相关联的分段。
13.如权利要求12所述的创作组件,其特征在于,所述模型训练器被配置为,使用与前终端相关联的文本作为用于统计模型的训练数据来训练统计模型。
14.如权利要求13所述的创作组件,其特征在于,所述模型训练器被配置为,使用与每个前终端相关联的文本作为用于针对那个前终端的统计模型的训练数据,训练用于从大纲导出的每个前终端的统计模型。
15.如权利要求14所述的创作组件,其特征在于,所述模型训练器被配置为,将预期计数分配给每个列举的分段。
16.如权利要求15所述的创作组件,其特征在于,所述模型训练器被配置为选择一前终端,并使用被分配给相应于所选择的前终端的分段的预期计数,训练用于所选择的前终端的统计模型。
17.如权利要求15所述的创作组件,其特征在于,所述模型训练器被配置为,将预期计数分配给每个基于期望最大化(EM)算法的应用产生的分段。
18.如权利要求8所述的创作组件,并进一步包括一可由所述模型训练器访问的概率的库语法。
19.如权利要求18所述的创作组件,其特征在于,所述训练数据是在语义上标注的训练数据,且其中,所述模型训练器被配置为,基于在语义上标注的训练数据,调整在概率的库语法中的概率。
20.一训练自然语言理解(NLU)模型的方法,包括产生多个训练数据的分段,用于多个位置和多个前终端;以及训练用于相应于那些分段的至少之一的前终端的统计模型。
21.如权利要求20所述的方法,其特征在于,所述产生多个分段的步骤包括将位置和前终端与训练数据的部分相关联。
22.如权利要求21所述的方法,其特征在于,所述训练统计模型的步骤包括产生用于多个前终端的每一个的统计模型。
23.如权利要求22所述的方法,所述产生用于多个前终端的每一个的统计模型的步骤包括选择一个前终端;以及使用与所选择的前终端相关联的训练数据的部分作为用于统计模型的训练数据,产生用于所选择的前终端的统计模型。
24.如权利要求20所述的方法并进一步包括接收训练数据作为大纲以及在语义上标注的训练文本。
25.如权利要求24所述的方法,其特征在于,所述产生多个分段的步骤包括基于由训练数据支持的分段的出现,将一个计数分配给每个分段。
26.如权利要求22所述的方法,其特征在于,所述将一个计数分配给每个分段的步骤包括在分段的产生期间,由期望最大化(EM)算法的应用将一个预期计数分配给每个分段。
27.如权利要求20所述的方法,其特征在于,所述训练统计模型的步骤包括训练模型化在位置之间的转移的统计位置转移模型。
28.如权利要求20所述的方法,其特征在于,所述NLU系统是由一包括任务的大纲表示的,且其中,所述训练统计模型的步骤包括训练模型化任务的先前概率的统计任务模型。
29.如权利要求20所述的方法,其特征在于,所述训练数据包括在语义上标注的训练数据,以及还包括访问概率的库语法;以及基于在语义上标注的训练数据,调整概率的库语法中的概率。
全文摘要
NLU系统包括大纲中的用于位置的基于规则的语法和用于前终端的统计模型。还提供了训练系统。
文档编号G10L15/00GK1542736SQ20041004359
公开日2004年11月3日 申请日期2004年5月8日 优先权日2003年5月1日
发明者王野翊, A·埃西罗, 髀 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1