语法创造中的分段歧义的自动解析的制作方法

文档序号:6399485阅读:176来源:国知局
专利名称:语法创造中的分段歧义的自动解析的制作方法
背景技术
本发明涉及语法创造。更具体地说,本发明涉及自动语法创造系统中的分段歧义消除。
为了推动能够应用及服务的语言的发展,基于语义的加强理解系统当前处于研发状态下。这种系统被广泛地用在会话式的研究系统中。但是,在传统系统的执行中,对于传统的研发者的使用来说,它们并不是特别实用。
在很大程度上,这种执行已依赖于特定领域语法的人工研发。而这个任务不仅耗时、易出错而且还需要领域中的大量专门技术。
为了推进能够应用及服务的语言的发展,已经提出了基于实例的语法写作工具。该工具通称为“SGStudio”,其进一步被描述在Y.Wang和A.Acero所著的“GRAMMAR LEARNING FOR SPOKEN LANGUAGE UNDERSTANDING”(IEEE Workshop on Automatic Speech Recognition and Understanding、MadonnaD.Campiglio Italy、2001)和“EVALUATION OF SPOKEN LAGUAGEGRAMMAR LEARNING IN ATIS DOMAIN”(Proceeding of ICASSP,Orlando,FL2002)中。这个工具通过利用先前信息的许多不同的资源,极大地减轻了语法开发的负担。该工具还允许稍微具有语言知识的普通研发者为口语理解构造语义语法。该系统推进了具有少数数据的相对高质量语义语法的半自动生成。而且,该工具不但显著地减少了涉及发展语法的努力,而且遍及不同领域地改善了理解准确性。
但是,可以改善这个工具。当必须解决歧义时,该工具常常求助于使用者,以便归纳语法规则。这是一种干扰,并且可减慢语法开发的速度。
发明综述生成基于规则的语法。在训练数据中识别分段歧义。列举歧义的分段的重写规则,并且为每个重写规则产生概率。基于该概率解决歧义。在一个具体实施例中,通过应用期望值最大(EM)算法来进行。
附图摘要

图1为在其中可以使用本发明的一个典型环境的结构图。
图2A为根据本发明一个具体实施例的模型创造部件的一个具体实施例的结构图。
图2B说明实例图解。
图2C说明为实例图解产生的一实例组规则。
图2D说明已注释语句的实例。
图2E说明实例语法分析树。
图2F说明用于实例中的单词的可能前终端的表格。
图2G为与计数和概率关联的重写规则的表格。
图3A详细地示出语法写作组件的机构图。
图3B为说明图3B所示的语法创造部件的操作的流程图。
示例性具体实施例的详述本发明涉及语法创造工具。更具体地说,本发明涉及在语法创造期间分段歧义的自动消除。然而,在详述本发明之前,将描述在其中可以使用本发明的一个典型环境。
图1说明适当计算系统环境100的实例,在该环境中可以执行本发明。该计算系统环境100只是适当计算环境中的一个实例,因此其并不趋向于是对本发明的使用或功能的任何限制。不应将计算环境100解释为具有关于典型操作环境100所示部件的任何一个或组合的任何从属或要求。
本发明可与各种其它通用或专用计算环境或结构一起操作。公知的可适于与本发明一起使用的计算系统、环境和/或结构包括(但不限于)个人电脑、服务器计算机、手持式或膝上型电脑、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、微电脑、大型计算机、分布式计算环境,等等。分布式计算环境包括上述任何系统或装置。
能以计算机可执行指令的通用上下文关系的方式来描述本发明,诸如由计算机执行的编程模块。编程模块通常包括例行程序,程序、对象、部件、数据结构等,它们执行特定的任务或执行特定的抽象数据类型。也可以在分布式计算环境中实施本发明,在该环境中由通过通信网络链接的远程处理设备来执行任务。在分布式计算机环境中,编程模块可以位于包括存储器装置的本地和远程计算机存储介质中。
请参考图1,执行本发明的典型系统包括以计算机100的形式出现的通用计算设备110。计算机110的组件包括(但不限于)处理单元120、系统存储器130以及将各种系统组件(包括系统存储器)连接至处理单元120的系统总线121。系统总线121能以几种总线结构中的任何一种总线结构,包括存储器总线或存储器控制器、外围总线和使用任何一种总线体系结构的本地总线。举例而言(但不限于),这种体系结构包括工业标准结构(ISA)总线,微通道结构(MCA)总线、扩展工业标准结构(EISA)总线、视频电子标准协会(VESA)本地总线,以及外设部件互连(PCI)总线。该外设部件互连(PCI)总线也称为附加板总线。
计算机110通常包括各种计算机可读介质。计算机可读介质可为任何可用的介质,其可由计算机110访问并且包括易失性和非易失性、可移动和固定介质两者。举例而言(但不限于),计算机可读介质包括计算机存储介质和通信介质。计算机存储介质包括易失性和非易失性、可移动和固定介质两者。该等介质是为存储信息而以各种方法或技术实现的,该信息诸如计算机可读指令、数据结构、编程模块或其它数据。计算机存储介质包括(但不限于)RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字化视频光盘(DVD)或其它磁盘存储器,或者其它的可以用于存储所期望信息且可由计算机100访问的介质。通信介质一般具体化为有计算机可读指令,数据结构、程序模块或其它以调制数据信号形式出现的数据,诸如载体WAV或其它传输机制。通信介质包括任何信息发布介质。术语“调制数据信号”意指一种信号,该信号具有一个或多个特征集合或以将信息编码在信号中的方式来变化。举例而言(但不限于),通信介质包括有线媒体(诸如有线网络或直接的有线接头)和无线网络,诸如传音、FR、红外线和其它无线媒体。上述任意的组合也应包括在计算机可读介质中。
系统存储器130包括易失和/或非易失存储器形式的计算机可读介质,诸如只读存储器(ROM)131和随机存取存储器(RAM)132。包含有基本例行程序的基本输入/输出系统133(BIOS)诸如在启动期间帮助计算机110中的元件之间的信息传输,其一般存储在ROM 131中。RAM 132一般包括数据和/或程序模块,该等数据和/或程序模块可即时访问和/或随后不久由处理单元120操作。举例而言(但不限于),图1说明操作系统134、应用程序135、其它程序模块136和程序数据137。
计算机110还可以包括其它移动/固定、易失/非易失计算机介质。仅举例而言,图1说明了硬盘驱动器141、磁盘驱动器151和光盘驱动器155。其中硬盘驱动器141从移动、非易失磁介质读取数据或将数据写入;而磁盘驱动器151从移动、非易失磁盘152读取数据或将数据写入;光盘驱动器155从诸如CD-ROM或其它介质此类的移动、非易失光盘156读取数据或将数据写入。其它的移动/固定、易失/非易失计算机存储介质包括(但不限于)磁带、闪存卡、数字视频光盘、数字视频带、静态RAM、静态ROM等。硬盘驱动器141通常通过固定存储器接口连接于系统总线121,而光盘驱动器155通常通过移动存储器接口而连接于系统总线121,诸如通过接口150。
图1所示的和以上描述的该等驱动器以及与其关联的计算机存储介质存储用于计算机100的计算机可读指令、数据结构、程序模块和其它数据。例如,在图1中,被说明的硬盘驱动器141存储操作系统144、应用程序145、其它程序模块146和程序数据147。应注意这些组件可以相同也可以不同于操作系统134、应用程序135、其它程序模块136和程序数据137。在此给予操作系统144、应用程序145、其它程序模块146和程序数据147以不同编号,以便说明它们至少是不同的版本。
用户可以通过输入装置将命令和信息输入计算机110中,输入装置诸如为键盘162、麦克风163以及诸如鼠标、跟踪球或触摸板之类的指示装置。其它输入装置(未示出)包括游戏柄、游戏板、圆盘式卫星天线、扫描仪等。这些或其它输入装置通常通过用户输入接口连接于耦合系统总线的处理单元120,而且通过其它接口和总线结构也可以连接,其它接口或总线结构诸如为并口、游戏口或通用串行总线(USB)。显示器191或其它类型的显示装置同样经由接口连接于系统总线121,诸如经由视频接口190连接。除了显示器之外,计算机还可以包括其它外设输出装置,诸如扬声器197和打印机196、可以通过输出外设接口190连接。
计算机110可以在使用逻辑连接至一个或多个远程计算机(诸如远程计算机180)的网络环境中操作。该远程计算机180可以为个人电脑、手持式装置、服务器、路由器、网络PC、对等装置或其它公共网络节点,并且其包括一些或全部的关于计算机110所述的元件。图1所描述的本地连接包括区域网(LAN)171和广域网(WAN)173,而且还可以包括其它网络。这种网络环境在办公室是很平常的,如企业宽带计算机网络、企业内部网和因特网。
当在LAN网络环境中使用时,计算机110通过LAN171连接于网络接口或适配器170。当在WAN网络环境中使用时,计算机110一般包括调制解调器172或用于在WAN173上建立连接的其它方式,例如互联网。调制解调器172(可以是内置的或外置的)可以经由用户接口160或其它适当机制连接于系统总线121。在网络环境中,相对于计算机110或其中一部分所描述的程序模块可以存储在远程存储器装置中。举例而言(但不限于),图1说明远程应用程序185驻留在远程计算机180上。应理解示出的网络连接为范例性的,可以使用在计算机之间建立通信链接的其它方式。
应注意,本发明虽然可以在计算机系统上执行,诸如参考图1所描述的系统。但是,本发明仍可以在服务器、致力于信息处理的计算机或分布式系统上执行,在分布式系统中,在分布式计算系统的不同部分上执行本发明的不同部分。
图2A为根据本发明的一个具体实施例的模型创造系统200。模型创造系统200包括模型创造组件202和可选用户接口204。图2A还示出了模型创造组件202接收作为输入的大纲206、一组训练实例文本串和注释208、可选语法库209,并且基于规则的语法(诸如上下文无关文法或CFG)210。可选语法库209包括域非独立概念和域独立概念的定义。其中域非独立概念诸如为日期和时间,而域独立概念诸如为城市名、航线等,其可从应用数据库获取。下面将以较大的篇幅来详述系统200的操作。然而,简单地说,用户给模型创造组件202提供大纲206和训练实例文本串208。这可通过可选用户接口204或通过其它输入机制,或通过自动方式来进行。模型创造组件202接收输入并基于该等输入产生基于规则的语法210。基于规则的语法210的一个实例为上下文无关文法(或CFG),该文法允许计算机将输入映射到正文的语义表现。
大纲206例证性地为被模仿的域的语义说明。图2B示出了大纲的一个例证。图2B说明极大简化的大纲212,其可以由研发者输入系统200中。大纲212为表示来自于用户输入的各种文本串的含义的大纲,其示出飞离或到达不同城市的航班并且具有不同的起飞和飞抵时间。大纲212表明示出的航班命令(ShowFlight)包括作为slot的航班的语义类别。大纲221还以较大篇幅地说明航班的语义类别,其表明该航班具有4个时段,该4个时段分别相应于起飞时间、飞抵时间、离开的城市和到达的城市。
从大纲212中,大纲创造组件202可以产生一组规则,其在图2C中示出。规则一示出ShowFlight语句将通常具有命令部分ShowFlightCmd,其将由属性部分ShowFlightProperties跟随。
规则二表明ShowFlightProperties部分中可以具有一个或多个属性。例如,规则二表明ShowFlightProperties部分包括至少一个ShowFlightProperty,其跟随有可选ShowFlightProperties。这个ShowFlightProperties的递归定义简化了表达式并且允许其具有一个或多个属性。
规则三示出ShowFlightProperty部分包括ShowFlightPreFlight部分、Flight部分和ShowFlightPostFlight部分。这表明大纲中的slot Flight可以具有上文和下文两者。
第四个规则表明大纲中的对象航班不具有命令部分而只有属性部分(FlightProperties),这是由于当ShowFlight为命令时,航班为大纲中的对象。规则五示出将FlightProperties部分再次递归定义以包括至少一个由可选FlightProperties跟随的FlightProperty。
规则六-九相应于图2B所示大纲212中的四个slot。规则六将第一属性定义为离开城市slot,其在上文(FlightPreDepartureCity)之后下文(FlightPostDepartureCity)之前。规则七以相同方式定义到达的城市,并且规则八和规则九以相同的方式分别定义起飞时间和到达时间。
即使给出了由模型创造组件202自动地从大纲212中产生图2C所表明的所有规则的这样的事实,但是仍然不存在表明具体的单词如何实际上映射到具体的前终端(pre-terminals)(命令语义类,以及用于slot的上文和下文)。例如,不存在表明将短语“please show me the flights...”映射到ShowFlightCmd的规则。同样的,不存在表明那个单词将具体地映射(例如)FlightPreArrivalcity的上文等。所以研发者还要输入训练实例文本串和注释208,如此模型创造组件202也可以学习这些重写规则。
图2D说明实例文本串213“Flight from Seattle to Boston”和相应于文本串213的语义注释214的实例。语义注释214由研发者提供,并且其表明字符串213的语义意义。语义注释214例如示出输入文本串213相应于ShowFlight命令,该命令具有slot Flight,而slot Flight本身具有两个都是城市的slot。在Flight slot中的两个slot之间的区别只是slot的名称。一个称为“Arrival”城市而另一个称为“Departure”城市。语义注释214还将单词“Boston”映射到“Arrival”城市slot以及将单词“Seattle”映射到“Departure”城市slot。因此,基于注释214,模型创造组件202将知道将那个slot映射到单词“Seattle”和“Boston”。
从注释实例和图2C所示的模板语法规则中,模型创造组件可以生成基于规则的语法(或CFG)分析树,诸如图2E所示的分析树216。分析树216的第一级218(示出ShowFlight由跟随ShowFlightProperties的ShowFlightCmd构成的部分)根据图2C中的规则生成。
第二级220(表明ShowFlightProperties由ShowFlightProperty构成的部分)根据规则2构成,其中不使用可选ShowFlightProperties。
下一级222(表明ShowFlightProperty由跟随有Flight的ShowFlightPreFlight构成,而Flight跟随有ShowFlightPostFlight)根据图2C中的规则3生成。
下一级224(表明航班对象由FlightProperties部分构成)根据图2C中的规则4生成。
下一级226(该部分表明FlightProperties部分由跟随有FlightProperties部分的FlightProperty部分构成)根据图2C中的规则5生成。
下一级228(该级表明FlightProperties部分由跟随有城市slot的FlightPreDepartureCity部分构成,FlightPreDepartureCity部分跟随有FlightPreDepartureCity的下文)根据规则6生成,而且下一级230(该级示出FlightProperties由FlightPreArrivalCity的上文、城市slot和FlightPostArrivalCity下文构成)根据规则7构成。
最后,表示将单词“Seattle”映射到级228之下的城市slot以及将表示单词“Boston”映射到级230之下的城市slot的级根据语义注释214生成,其同样由用户输入。因此,模型创造组件202可以学习如何将输入语句中的单词“Seattle”和“Boston”映射进CFG分析树中以及映射进图2C中的规则中。应注意,城市规则还可以从代替注释数据的库语法(可以通过从指定域的数据库中获取数据来依次构建)中获取。
但是,在输入语句中仍然存在还没有映射到树的若干单词。这些单词包括“Flight”、“from”和“to”。由于单词“Flight”和“from”在单词“Seattle”之前,所以它们可以映射到分析树216中的各种前终端(preterminal),包括FlightCmd、ShowFlightPreFlight和FlightPreDepartureCity。同样,由于单词“to”位于输入文本串213中的单词“Seattle”和“Boston”之间,所以单词“to”可以映射到FlightPostDepartureCity或FlightPreArrivalCity。
由于已知单词“to”为介词,所以必须对紧随其后的单词进行修改。因此,可以确定单词“to”映射到分析树216中的FlightPreArrivalCity的前终端。
但是,仍然不知道单词“Flight”和“from”应居于分析树216中的什么位置上。同样,也不知道两个单词的具体分段。例如,在一个可能性中,可以将单词“Flight”映射到ShowFlightCmd而将单词“from”映射到ShowFlightPreFlight。在这种情况下,前终端FlightPreDepatureCity映射到空集。
根据另一个可能性,将单词“Flight”和“from”两个都映射到ShowFlightCmd而将其它前终端ShowFlightPreFlight和FlightPreDepatureCity映射到空集。
在另一可能性中,将“Flight”映射到ShowFlightCmd并且将“from”映射到FlightPreDepatureCity,而将剩余的前终端ShowFlightPreFlight映射到空集。
这表现出了分段歧义,其在历史上还没有解决附加信息的缺乏,该附加信息来自于研发者。在一些已有系统中,每个可能的分段将简单地显示给用户,并且允许选择这些分段中选择一个。
但是,这也导致许多问题。首先,与用户交互的这种类型既扰乱又耗时。同样,如果存在更多的可能前终端以及在输入文本串中存在更多未调整的单词,那么必须表示给用户的概率量将会显著地上升。如果不能忍受,那么难于有效地将所有这样的候选分段显示以供用户选择,用户将常常在分段上犯错或不一致地对类似的文本串进行分段。
根据本发明的一个具体实施例,将期望值最大(EM)算法应用于模型组件202中的分段歧义上,以便消除分段选择的歧义。当模型包含不可观察到的隐藏的变量时,EM算法一般为用于使用极大似然估计量来计算模型参数。
图3A示出以较大篇幅说明模型创造组202的结构图。图3A示出模型创造组件202例证性地包括模板语法生成器300、分段EM应用组件302和剪除组件304。模板语法生成器300接收大纲206和在语法库209中的任何规则并且生成模板语法。语法库209由大纲206中语义分类参考,而模板语法包括所有能够从大纲206和可选语法库209中学习或搜集的所有规则。然后,模板语法由EM分段EM部件将其作为输入与训练数据(文本串和它们的注释)一起获取。EM分段组件302将使用模板语法以在训练数据中找到分段歧义。然后部件302操作以消除任何分段歧义。基于这个歧义性,可使用剪除组件304从语法中剪除重写规则以提供基于规则的语法210。
为了进一步说明EM分段组件302的操作,因此图2F和2G提供了范例表。图2F示出包括一组实例的表格。该表格第一项示出单词“from”可能映射到前终端ShowFlightCmd或前终端FlightPreDepatureCity。实例可由组件302从实例语句“From Seattle to Boston”中获得实例。第二个实例表示单词“Flight from”可映射到前终端ShowFlightCmd和FlightPreDepatureCity。该实例可由组件302从类似于“From Seattle to Boston”的实例语句中获得。第三个实例说明单词“Flight to”可映射到前终端ShowFlightCmd和FlightPreArrivalCity,该单词可由组件302从类似于“From Seattle on Boston”的语句中获得。然而,这些实例的分段带有歧义。换句话说,还不清楚是否已将第一实例中的单词“from”映射到前终端ShowFlightCmd或映射到前终端FlightPreDepatureCity。同样地,不清楚如何将单词“Flight from”映射在前终端ShowFlightCmd和FlightPreDepatureCity之间。另外,当然,也不清楚如何将“Flight to”映射到可能的前终端ShowFlightCmd和FlightPreArrivalCity之间。
图2G为进一步说明EM算法应用组件203操作的表格。图3B为说明组件203操作的流程图并且其与图2F和2G一起来描述。
首先,组件302列举所有可能的分段。这在图2G的左列上,标记为可能的重写规则。在图2G的重写规则中,简写了一些构成前终端名称的单词。因此,举例而言,重写规则SFCmd→ε表示其中将ShowFlightCmd(简写为SFCmd)前终端映射到空集的分段。同样地,重写规则SFCmd→from表示其中将单词“from”映射到前终端ShowFlightCmd的分段。进一步地,FPDCity→ε表示其中将前终端FlightPreArrivalCity(简写为FPACity)映射到空集的分段。根据这些实例,图2G所示的重写规则部分中的其它符号为自我说明的。足以说列举了图2F所示实例的每个可能的分段。
根据图2的第一实例,一个分段表示单词“from”映射到ShowFlightCmd而另一个分段表示单词“from”映射到FlightPreDepatureCity。
图2F的第二实例支持同样交替的若干不同分段。例如,根据分段替换,单词“Flight from”都映射到前终端ShowFlightCmd并且前终端FlightPreDepatureCity映射到ε。在另一个分段替换中,单词“Flight from”都映射到前终端FlightPreDepatureCity并且前终端“ShowFlightCmd”映射到ε。在另一个替换中,单词“Filight”和“from”被分开,如此单词“Filight”映射到前终端ShowFlightCmd而单词“from”映射到前终端FlightPreDepatureCity。这些分段中的每个分段同样示出在图2G所列举的重写规则中。
第三个实例能以类似于第二实例的方式而被分段,在其中单词“Flight to”可以映射到前终端ShowFlightCmd或前终端FlightPreArrivalCity,而其它前终端映射到ε,或者可以在前终端ShowFlightCmd和FlightPreArrivalCity之间将单词“Flight to”分开。再次,这些分段中的每个分段都被表示在图2G所示的重写规则中。
由图3B的流程图中的块306表示列举所有可能的分段。
一旦列举了支持分段的重写规则,就给它们中的每一个分配概率。最初,给图2G所示的所有分段分配了相同的概率。这由图3B中的块308表示。
接着,组件302分配新的期望的计数给已列举的重写规则,这是根据图2F所示实例中这些计数可能出现的机会进行的。这由块310表示。例如,根据第一实例,存在两个可能的分段,其中之一将单词“from”映射到ShowFlightCmd并且将前终端FlightPreDepatureCity映射到ε,而另一个分段将ShowFlightCmd映射到ε并且将单词“from”映射到前终端FlightPreDepatureCity。第一个重写规则说明ShowFlightCmd前终端映射到ε(空集)。因此,实例1中的一半分段实例支持图2G的表格所示的第一个重写规则。因此,根据第一个实例,将给第一个重写规则(ShowFlightCmd→ε)分配二分之一的计数。
如上所述,第二个实例支持三个不同的分段,其中之一将单词“Flight from”分配到前终端ShowFlightCmd和将前终端FlightPreDepatureCity分配到ε,另一个将单词“Flight”映射到前终端ShowFlightCmd并且将单词“from”映射到前终端FlightPreDepatureCity,最后一个分段将前终端ShowFlightCmd映射到ε并且将单词“Flight from”都映射到前终端FlightPreDepatureCity。这三个分段中,一个支持第一个重写规则(SFCmd→ε)。因此,根据第二个实例,给第一个重写规则分配三分之一的计数。
在相同的方式中,第三个实例具有三个可能的分段,其中之一将前终端ShowFlightCmd映射到ε。因此,根据第三个实例,再给图2G所示的第一个重写规则分配三分之一的计数。
使用这类1/2分析,可以理解第二个重写规则(SFCmd→ε)只受第一个实例的支持。因此,虽然第一实例具有两个可能的分段,而且其中之一支持第二个重写规则,所以给第二个重写规则(SFCmd→from)分配二分之一的计数。
第三个重写规则(SFCmd→Flight)只受图2F所示第二和第三个实例中一个分段的支持。从而,由于这些实例中的每一个都具有三个可能的分段、所以从每一个实例中给第三个重写规则(SFCmd→Flight)分配三分之一的计数。
组件302以这种方式将计数分配给图2中所列举重写规则中的每一个重写规则,而且这些计数在图2G所示表格中的第二列中被说明。将计数全部转换,以使它们具有公分母,然后为每个前终端标准化该等计数,以便取得概率。换句话说,ShowFlightCmd的概率总量必须加至1。因此,每个重写规则的计数将与标准化因数相乘,以便获得与重写规则相关的概率。
例如,可以理解前终端ShowFlightCmd的计数的总数目为3。因此,第一重写规则(SFCmd→ε)的概率为7/18。同样地,第二重写规则(SFCmd→from)的概率为3/18等。组件302对每个重写规则和每个前终端的计数进行处理,以便获得这个概率。
同样可以理解,对于前终端FPDCity来说,在所有不同规则上的计数总和为2,因此标准化因数为1/2。对于最后的前终端FPDCity来说,只有一个计数,因此标准化因数为1。从而可以理解,组件302将与每个重写规则相关的概率重置为1,其能更准确地反映由实例支持的重写规则的出现率。对计数标准化的目的是获得由图3B中的块312所表示的新的概率。
组件302在这个处理(再估算计数和获得新的概率)上重复直到计数和概率收敛于一点(converge)。这由块314表示。例如,为了获得第一个重写规则的新计数C,组件302执行方程式1,其第一个找到观测给定的非结束符序列ShowFlightCmd和FDCity的单词“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
在这个数量之外,将空字符串调整到ShowFlightCmd以及将“from”调整到FPDCity的分段的比例将成为新的期望的计数C方程式2C‾(e|ShowFlightCmd)=P(e|ShowFlightCmd)*P(form|FPDCity)P(from|ShowFlightCmdFPDCity)]]>=718×51250216=3521650216=3550=710]]>同样地,第二重写规则(SFCmd→from)的新的C如下计算方程式3C‾(from|cmd)=P(from|ShowFlightCmd)*P(e|FPDCity)P(from|ShowFightCmdFDPCity)]]>=318×51250216=1521650216=310]]>对每个重写规则继续这个处理,以便从每个实例中收集计数C。然后,将新计数与标准化因数相乘获得新概率。如图2B所示,部件302在这个处理上重复进行。再次列举新计数和新概率直到概率收敛于一点。
一旦重复完毕,组件302将已计算出与每个列举重写规则相关的新计数和新概率。虽然其由于已将每个分段的概率分配给相应于不同分段(再训练期间获得的)的规则而十分有益,但是这可能不是最期望的最终结果。例如,一些分析器不能利用概率。同样,在一些分析组件中,大量的规则致使分析器变得低效。
因此,根据本发明的一个具体实施例,组件302将规则和关联的概率提供给剪除组件304,在这里将剪除规则。这由图3B中的块316和318表示。剪除组件304可以若干不同方式之一来剪除规则(如块320表示)。例如,剪除组件304可以简单地剪除出概率低于期望阈级的规则。然后,组件304将剩余的规则列入基于规则的语法210中。
根据另一个具体实施例,剪除组件304去除除了预定数量的具有高似然性的相应于每个实例的分段之外的所有分段,并且根据剩余的分段,只将重写规则列入语法中。例如,组件304可以去除所有相应于每个实例的分段,除了具有最高概率的分段。因此,例如1,假定将单词“from”映射到前终端FlightPreDepatureCity的分段具有比将单词“from”分配到前终端ShowFlightCmd的分段高的概率。在这个例子中,将去除第二个分段(将“from”映射到ShowFlightCmd)。在这种情况下,支持已选分段的两个重写规则增加到语法上。因此,重写规则“SFCmd→ε”和重写规则“SFCmd→from”都将加到语法上。
同样地,不受任何实例的最佳分段支持的规则可从图2G所示的列出的规则中去除。从而,由于“SFCmd→from”只受已去除的实例1的分段的支持,所以可以去除规则“SFCmd→from”。
现在将以更正式的数学术语的形式来描述以这种方式应用的EM算法。分段歧义解析可被形式化为查找单词序列w=w1、w2、...wn的m个分块π=α1、α2、...、αm,以将每个块调整至序列N=NT1、NT2、...NTm。每个块可包含有有0个或多个w中的单词。
如果我们使用方程式4建立π、N和w的联合概率的模型方程式4P(π,N,w)=Πi=1mP(NTi→αi)]]>然后给出的N和w,可以如下获得最可能的分段方程式5π‾=argmaxπP(π,N,w)=argmaxπ=α1,αmΠi=1mp(NTi→αi)]]>这种分割可以使用维特比搜索来找到。因此剩下的问题只是为每个前终端(或概念)NT和单词序列α估算模型参数P(NT→α)。如果训练数据为与每个前终端的单词序列配对的前终端列表,那么这可使用最大似然(EM)估算来完成。无论如何,经由创造工具从用户获得的训练实例例证性地为一对前终端语句和终端语句。该分割或分段为隐藏的变量并且对于该工具是未知的。
EM算法最初为模型设置参数PΦ,然后反复修改参数直至PΦ`,这样增加了观测D的似然性。
为了找到这种PΦ`,我们以(6)的形式定义了辅助函数Q方程式6
其为L(D|PΦ`)-L(D|PΦ)的下限,即两个模型参数化之间的训练数据的记录似然性差异。根据前终端的的所有可能的概率必须共计至1的限制,EM算法通过最大化Q将参数PΦ`重置,以便通过新参数化法来最大化地增加训练采样似然性。因此,对于每个规则NT→α,它的新概率可以通过解算下列方程式来获得方程式7 方程式8 因此,概率应被重置到预期的计数乘以标准化因数-1/λ方程式9 为了计算期望的计数,应注意方程式10
因此方程式11 使Eijk=(N⇒w1,...,wi-1,NTk,wj-1,...,wn)]]>为将前终端序列N重写到单词序列w的处理中的事件,规则NT→α用于N中的第k个前终端以便生成子序列α=wI、...、wj,并且使λst(p,q)为序列N中的位置为s到t的前终端代替终端单词wp、...、wq-1的概率。因此方程式12 因此,如果我们可以计算出λst(p,q),那么我们可以组合方程式(9)、(11)和(13)来获得期望的计数并重置模型参数。实际上λst(p,q)可使用根据方程式(14)的动态规划法计算,其中ε为空字符方程式14 应注意,PΦ(N,W)=λ1m(1,n+1)]]>可以用在等式中。
因此,本发明的一个方面将EM算法应用于分段歧义的消除上。这可以完全自动开始语法创造处理,因而减少了研发者干预的必要性。它还执行一致的歧义消除并且自动地执行歧义消除,即使存在大量的在模板语法生成之后未分配的前终端和单词。
尽管已参考特定的具体实施例描述了本发明,但是本领域熟练的技术人员将意识到在不脱离本发明的精神和范围的情况下可以做出形式和细节上的变化。
权利要求
1.一种用于自然语言处理的生成基于规则的语法的方法识别训练数据中的分段歧义,其中训练数据的分段是有歧义的;列举所有歧义分段的重写规则;以及通过基于由训练数据所支持的重写规则的发生来生成每个列举的重写规则的概率,从而自动解析分段歧义。
2.根据权利要求1的方法,其中自动解析分段歧义包括基于由训练数据支持的列举的重写规则的出现,估算每个所列举的重写规则的计数;基于已估算的计数,生成每个列举的重写规则的概率;基于已获得的每个重写规则的概率,重新估算已列举的重写规则的计数;以及继续获得概率和重新估算计数的步骤,直到获得已期望的收敛。
3.根据权利要求2的方法,还包括接收训练数据。
4.根据权利要求3的方法,其中接收训练数据包括接收大纲和一个或多个语义注释文本串。
5.根据权利要求4的方法,其中识别分段歧义包括从训练数据中生成模板语法,该模板语法包括重写规则。
6.根据权利要求5的方法,其中识别分段歧义包括从大纲、重写规则和注释文本串中生成分析树。
7.根据权利要求6的方法,其中每个重写规则将分析树的端结点映射到文本串部分,并且其中识别分段歧义包括识别文本串的歧义部分,所述文本串可被映射到一个以上的可能的分析树的端结点。
8.根据权利要求7的方法,其中列举所有歧义分段的重写规则包括列举将文本串的歧义部分映射到分析树的每个端结点的重写规则。
9.根据权利要求8的方法,其中生成每个列举的重写规则的概率包括标准化应用到相同端结点上的每个重写规则的计数。
10.根据权利要求2的方法,还包括在估算计数之前,将分段歧义实例的每个可能的分段的概率设置成相同值。
11.根据权利要求2的方法,其中自动解析分段歧义包括基于生成的概率,剪除列举的分段歧义。
12.根据权利要求11的方法,其中剪除包括确定为每个重写规则生成的概率是否满足阈值;以及基于该确定,剪除重写规则。
13.根据权利要求12的方法,其中剪除包括剪除不满足阈值的重写规则。
14.根据权利要求11的方法,其中剪除包括剪除已不受分段歧义的所有训练实例的最相似的分段支持的重写规则。
15.一种计算机执行的语法创造系统,用于创造基于规则的语法,包括模板语法生成器,配置其以接收训练数据并生成模板语法,该模板语法包括相应于训练数据中的分段歧义的歧义重写规则;消除歧义组件,耦合于模板语法生成器,接收歧义重写规则并且配置其以生成歧义重写规则的概率;以及剪除组件,耦合于消除歧义组件,配置其以基于所生成的概率来剪除歧义重写规则。
16.根据权利要求15的语法创造系统,其中每个歧义重写规则都相应于一组歧义分段中的一个可能的分段。
17.根据权利要求16的语法创造系统,其中消除歧义组件包括估算最大化(EM)算法应用组件,配置其以应用EM算法生成与每个可能的分段相关的概率。
全文摘要
生成基于规则的语法。在训练数据中识别分段歧义。列举歧义分段的重写规则并且为其每一个生成概率。基于该概率来解析歧义。在一个具体实施例中,通过应用期望最大(EM)算法来进行。
文档编号G06F17/28GK1542650SQ20041003522
公开日2004年11月3日 申请日期2004年4月5日 优先权日2003年4月3日
发明者王野翊, A·埃西罗, 髀 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1