具体实施方式
应该注意就在机器翻译***的上下文下描述的本发明而言,本发明也可以应用于其它产生单词或需要语言模型的***。例如,***可以包含语音识别、光符号识别(OCR)、语法检查等等。在详细描述本发明之前,将描述本发明可以应用的示例性计算环境的实施例。
图1说明了可以实现本发明的适当的计算***环境100的一个例子。该计算***100仅仅是一个适当的计算环境的例子,并非意味着对本发明的使用范围或功能的任何限制。该计算环境100也不应当被解释为对在示例操作环境100中例示的任何一个元件或它们的组合有任何依赖性或要求。
本发明可以在许多其它通用或者专用计算***环境或者配置中操作。可以适于实现本发明的众所周知的计算***、环境和/或配置的例示包含但不限于:个人计算机、服务器计算机、手提或膝上型设备、多处理器***、基于微处理器的***、机顶盒、可编程消费电子产品、网络计算机、微型计算机、大型计算机、电话***以及包括以上任一***或类似设备的分布式计算环境。
本发明可以在计算机可执行指令的通用上下文中描述,诸如由计算机执行的程序模块。通常,程序模块包含执行特定任务或者实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。本发明被设计成在分布式计算环境中实现,其中任务由通过一个通信网络连接的远程处理设备执行。在分布式计算环境中,程序模块位于包含存储器设备的本地和远程计算机存储介质中。
参见图1,用于实现本发明的例示***包含一个以计算机形式的通用计算设备110。计算机110的组件包含但不限于:处理单元120、***存储器130、和连接包括***存储器在内的各个***组件到处理单元的***总线121。***总线121可以是几种类型的总线结构中的任何一种,其中这几种类型的总线结构包含:使用各种总线体系结构中任何一种的存储器总线或存储器控制器、***总线和本地总线。通过举例而非限制,这样的体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强的ISA(EISA)总线、视频电子标准协会(VESA)本地总线和也被称为附加板(Mezzanine)总线的外设组件互连(PCI)总线。
计算机110一般包含多种计算机可读介质。计算机可读介质能够是能由计算机110访问的任何可用介质,而且包含易失/非易失性介质、以及移动/不可移动介质。举例来说,而不是限制,计算机可读介质可以包含计算机存储介质和通信介质。计算机存储介质包含以任一方法或技术实现的用于信息存储的易失/非易失性介质、移动/不可移动介质,所述信息诸如计算机可读指令、数据结构、程序模块或其它数据。计算机存储介质包含但不限于:RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光学存储器、磁带盒、磁带、磁带存储器或者其它磁存储设备、或者任何其它能够用来存储所需信息并且能够由计算机110访问的介质。通信介质一般具体化为计算机可读指令、数据结构、程序模块、或者一已调制数据信号,诸如载波或其它传输机制中的其它数据,并且包括任何信息传递介质。数据“已调制的数据信号”是指以编码该信号中信息的方式来设置或改变其一个或多个特性的信号。举例而言而非限制,通信介质包含有线介质、诸如有线网络或直接有线连接,以及其它无线介质、诸如声学、射频、红外或其它无线介质。以上任何一个组合也应当被包括在计算机可读介质的范围之内。
***存储器130包括以易失性和/或非易失性存储器,诸如只读存储器(ROM)131和随机存取存储器(RAM)132形式的计算机存储介质。基本输入/输出***(BIOS)133一般被保存在ROM 131中,其中该基本输入/输出***(BIOS)133包含有助于例如在启动过程中在计算机110内部的元件之间传输信息的基本例程。RAM 132一般包含可由处理单元120立即访问和/或当前由处理单元进行操作的数据和/或程序模块。举例而言而非限制,图1说明了操作***134、应用程序135、其它程序模块136和程序数据137。
计算机110还可以包括可移动/不可移动的和易失性/非易失性的计算机存储介质。仅仅举例来说,图1说明了一个从不可移动、非易失性磁介质中读取或写入到其中的硬盘驱动器114、从一个可移动、非易失性磁盘152中读取或写入到其中的磁盘驱动器151和一个从一个可移动、非易失性光盘156,诸如CD-ROM或者其它光介质中读取或者写入到其中的光盘驱动器155。在该示例操作环境中使用的其它可移动/不可移动、易失性/非易失性的计算机存储介质包括但不限于:磁带盒、闪存卡、DVD、数字视频磁带、固态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,它们可以通过输出***设备接口195连接。
计算机110可以在使用与一个或多个远程计算机的逻辑连接的网络环境中进行操作,所述的远程计算机诸如远程计算机180。远程计算机180可以是个人计算机、手提设备、服务器、路由器、网络计算机、对等设备或者其它公用网络节点,而且一般包括许多或者所有上述与计算机110相关的单元。在图1中描述的逻辑连接不仅包括局域网(LAN)171和广域网(WAN)173,而且还包括其它网络。这种网络环境常见于办公室、企业范围的计算机网络、企业内部局域网和Internet。
当在LAN网络环境中使用时,计算机110经由网络接口或适配器170连接到LAN 171。当在WAN网络环境中使用时,计算机110一般包括调制解调器172或者其它用于经由WAN 173建立通信的装置,诸如Internet。可以内置或外置的调制解调器172可经由用户输入接口160或者其它适当的机制连接到***总线121。在网络环境中,所描述的与计算机110相关的程序模块或其部分可以存储在远程存储设备。举例而言,而非限制,图1说明了驻留在远程计算机180上的远程应用程序185。应当理解,所显示的网络连接是示例性的,也可以使用在计算机之间建立通信链路的其它装置。
图2是移动设备200的框图,它是示例性的计算环境。移动设备200包含微处理器202、存储器204、输入/输出(I/O)组件206和用于与远程计算机或其它移动设备通信的通信接口208。在一个实施例中,上述的组件被耦合以通过适当的总线210彼此通信。
存储器204被实现为非易失性电子存储器,诸如带有电池后备模块(未示出)的随机存取存储器(RAM),使得当移动设备200的总电源被关闭时,存储在存储器204中的信息不会丢失。存储器204的一部分较佳地被分配为用于程序执行的可寻址存储器,而存储器204的另一部分较佳地被用于存储,诸如模拟磁盘驱动器上的存储。
存储器204包含操作***212,应用程序214以及对象存储216。在操作过程中,操作***212最好由处理器202从存储器204执行。在一个优选实施例中,操作***212是商业上来自微软公司的Windows CE标志操作***。操作***212最好被设计用于移动设备并实现可经由一组开放式的应用程序编程接口和方法被应用程序214利用的数据库特征。对象存储216中的对象由应用程序214和操作***212维持,至少部分响应对开放式应用程序接口和方法的呼叫。
通信接口208表示多个设备和允许移动设备200发送和接收信息的技术。所述设备包含,仅仅举几个例子,有线和无线调制解调器、卫星接收机和广播调谐器。移动设备200也可以直接连接到计算机上以与此交换数据。在这种情况中,通信接口208可以是红外线收发机或串行或并行通信连接,它们都能够发送流动信息。
输入/输出组件206包含多种输入设备,诸如触敏屏幕、按键、滚筒和麦克风以及多种输出设备,包括音频发生器、振荡设备和显示器。上面列出的设备是作为例子,并非所有都要出现在移动设备200上。此外,在本发明的范围内其它输入/输出设备可以连接到移动设备200或可以发现移动设备200带有其它的输入/输出设备。
逻辑形式
在更详细地讨论本发明之前,对逻辑形式的简要讨论会是有帮助的。在于1999年10月12日发表题为METHOD AND SYSTEM FOR COMPUTINGSEMANTIC LOGICAL FORMS FROM SYNTAX TREES的Heidorn等人的美国专利第5,966,686号中可以发现对逻辑形式以及生成它们的***和方法的全面和详细的讨论。然而,简要地,逻辑形式通过对输入文本执行形态分析而生成,以产生随着语法关系而扩充的常规短语结构分析。句法分析经由进一步的处理以获取逻辑形式,所述逻辑形式是描述在文本输入中实义词之间标识的依赖关系的数据结构。
总体而言,逻辑形式是表示单个输入的经连接的逻辑关系,诸如一句子或它的部分。所述逻辑形式最小是由一个逻辑关系和描绘结构关系(即,句法和/或语义关系),尤其是一输入字符串中重要单词之间的主目(argument)和/或附加关系组成。
逻辑形式可以归一化某些句法变化(例如,主动/被动)并解决句内指代和长距离依赖关系。例如,图3和图4说明了对给出的主动和被动语句的逻辑形式或依赖关系图300和400,作为背景部分的例子以帮助理解逻辑形式的元素。然而,如本发明的技术人员理解的,当存储在计算机可读媒质上时,逻辑形式可能不象显示出一张图那样易于理解。图3和4说明了表面字符串和语法模型,如背景部分中表述的,不能捕捉的重要一般性。
考虑以下的句子以理解为什么依赖关系图可能会比基于字符串的n-元模型或语法树提供更好的语言模型:
1.John hit the ball.
2.The balls were hit by Lucy.
基于表面字符串的3-元模型会生成以下计算:
<P><P>The 1
<P><P>John 1 <P>The balls 1
<P>John hit 1 the balls were 1
John hit the 1 balls were hit 1
hit the ball 1 were hit by 1
the ball<POST>1 hit by Lucy 1
by Lucy<POST>1
注意这些三元的每一个只发生一次,即使在两种情况中事件(the hitting of aball)是相同的。
如果我们看看语法树,我们得到有微小差别的图。特别地,对于上述的语句,会产生以下的语法树:
John hit the ball.
Decl 1
|___NP1___NOUN1 ″John″
|___VERB1 ″hit″
|___NP2___DETP1___ADJ1* ″the″
| |___NOUN2 ″ball″
|___CHAR1 ″.″
The balls were hit by Lucy.
Decl 1
|____NP1____DETP1____ADJ1* ″The″
| |____NOUN1 ″balls″
|____AUX1___VERB1 ″were″
|____VERB2* ″hit″
|____PP1____PP2____PREP1* ″by″
| |____NOUN2* ″Lucy″
|____CHAR1 ″.″
请注意在这里有一次将the hitting of the ball分成两个单独的段(对于主动态是一组规则,对于被动态是另一组规则),因此***不能得到有用的一般性。
图3和4说明了逻辑形式300和400。LF300和400包含父节点302和402,子节点304、308、404和408以及语义关系节点306、307、406和407。语义关系节点306和406将子节点304、308、404和408连接到父节点302和402,并解释父节点和子节点之间的语义关系。
父节点302和402包含单词形式或主题。例如,父节点302和402中的主题是单词“hit”。子节点304、308、404和408也包含单词形式或主题。语义关系节点306和406说明了子节点304和404是深层主语,而语义关系节点307和407指出子节点308和408是父节点302和402的深层对象。此外,LF300和400也包含置于每个节点中每个主题上的二元特征(或“比特”)。例如,所述的二元特征被置于LF300和400的每个主题上,并且在附加说明中加以说明。二元特征描述主题的句法特性。例如,在节点302中的单词形成包含将单词“hit”描述为过去时和命题的比特。
与字符串和语法树形成对比的是,逻辑形式300和400在相同的图结构中同时包含主动态结构和被动态结构。LF结构可以被图解成生成树,使得没有节点具有两个父节点。逻辑形式300和400是相应语句(或语句片断)的分层逻辑表示。每个节点取决于它的所有的祖先。为了构建(目标)语言模型,基于每个子节点只取决于其父节点(或取决于n-1个祖先,对于一个n-元LF模型)的近似法,构建本地结构模型。
在一个示例性实施例中,从句法分析构建逻辑形式的特定编码在机器翻译***操作的各种源和目标语言之间共享。该共享体系结构大大地简化了从不同的语言排列逻辑形式分段的任务,因为两种语言中表面上明显不同的结构经常崩溃成相似或相同的逻辑形式表示。
机器翻译
图5是依照本发明的一个实施例的机器翻译***500的示例性体系结构的框图。***500包含分析组件504和506、统计单词关联学习组件508、逻辑形式排列组件510、词汇知识库(LKB)构造组件512、双语字典514、关联列表520和传递映射数据库518。在翻译运行时间期间,***500利用分析组件522、搜索组件524、解码组件554、传递组件526和生成组件528。
在一个说明性实施例中,双语资料库被用于训练该***。所述双语资料库(或“bitext”)包含排列后的翻译语句(例如,源或目标语言的语句,诸如英语,1-对-1对应于它们在另一种源或目标语言中的人类建立的翻译,诸如西班牙语)。在训练期间,语句作为源语句530(要翻译的语句)从排列的双语资料库提供到***500中作为目标语句532(源语句的翻译)。分析组件504和506分析来自经排列的双语资料库的源语句和目标语句以生成源逻辑形式534和目标逻辑形式536。
在分析的过程中,语句中的单词被转换成归一化的单词形式或主题,并且可以提供给统计单词关联指示组件508。单个单词和多个单词关联被反复地假设并且由学习组件508评分,直至获取了每个的可靠组。统计单词关联学习组件508输出学习单词翻译对538。
单词对被加到关联列表520上,所述关联列表520作为更新的双语词典。
单词对538以及源逻辑形式534和目标逻辑形式536被提供给逻辑形式排列组件510。简要地,组件510首先在源和目标逻辑形式530和536中分别建立试验性对应。这是使用来自双语字典(例如,双语词典)514的翻译对完成的,所述的双语字典514可以用来自统计单词关联学习组件508的单词对538来扩充。在建立起可能的对应后,排列组件510依照字典和结构考虑排列逻辑形式节点并创建单词和/或逻辑形式传递映射542。
基本上,排列组件510使用双语字典信息514和单词对538画出逻辑形式之间的联系。基于在源和目标逻辑形式534和536中发现的频率可选择地过滤所述传递映射并将其提供给字典知识库构建组件512。
虽然过滤是可选择的,在一个例子中,如果至少两次没有在训练数据中看到传递映射,它将不被用于构建传递映射数据库518,虽然也可以使用任何其它期望的频率作为过滤器。也应该注意除了频率的出现之外,也可以使用其它过滤技术。例如可以基于它们是否是从对源语句的完整分析形成的和基于用于创建传递映射的逻辑形式是否被完整地排列来过滤传递映射。
组件512建立传递映射数据库518,所述传递映射数据库518包含基本上将一种语言中的单词和/或逻辑形式连接到第二种语言中的单词和/或逻辑形式的传递映射。随着这样建立的传递映射数据库518,现在***500被配置用于运行时间翻译。
在翻译运行时间期间内,要翻译的源文本550被提供给分析组件522。分析组件522接收源文本550并基于源文本输入建立源逻辑形式552。
源逻辑形式552被提供给搜索组件524。搜索组件524试图搜索传递映射数据库518以获取覆盖全部或部分源逻辑形式552的传递映射。对于源逻辑形式552中的一个或多个节点,会发现多个映射。
在发现一组可能的传递映射和一组可能的传递映射组合后,解码组件554使用多个模型对传递映射的每个组合评分。在一个实施例中,用线性内插分数为个体的传递映射和传递映射的组合评分,这会在下面做更详细的解释。在分数生成后,解码组件554挑选出并存储传递映射的最佳组合。
传递组件526从解码组件554接受到候选映射的最佳组合,并建立目标逻辑形式556,所述目标逻辑形式556会形成目标翻译的基础。这是通过将所选择的传递映射的节点相组合来完成的。
在搜索组件524没有发现可应用的传递映射的情况下,源逻辑形式552的节点和它们的关系被简单地复制到目标逻辑形式556。仍然可以在传递映射数据库518中为这些节点找到默认的单个单词翻译,并将它们***到目标逻辑形式556中。然而,如果一个也没有发现,那么可以示例性地从排列过程中使用的关联列表520获取翻译。
生成组件528是示例性地基于规则、独立于应用程序的生成组件,它从目标逻辑形式556映射成目标文本(或目标字符串)558。生成组件528可以选择地利用机器学术方法进行语句实现。生成组件528示例性地可能没有关于输入逻辑形式的源语言的信息,并且专门使用由传递组件526传递给它的信息工作。生成组件528也示例性地结合单语(例如,对于目标语言)字典使用该信息,以产生目标文本558。因此一个一般的生成组件528对每种语言是足够的。
逻辑形式的统计机器翻译
对于以下讨论,本领域的技术人员应该认识到依赖关系图、逻辑形式、语义结构、语义关系和语义表示都与输入逻辑形式相关,并且将输入逻辑形式描述为在运行时间期间内提供。此外,本领域的技术人员应该认识到传递映射或映射指的是那些在训练期间形成的映射。
以下等式,公式2的回忆,是本发明一个实施例的高层视图:
公式3
其中T′被限制为目标语言中的逻辑形式,P(S|T′)是给定目标语言逻辑形式T′,源逻辑形式S的概率,P(T′)是目标语言逻辑形式T′的概率,也写作PμT(T′),其中μT是目标语言模型。上述等式等于:
公式4
本发明的一个实施例通过结合几个知识源来近似P(S|T′):通道模型或翻译模型PμC(S,T′)、生产模型PμF(S,T′)、映射尺寸信息源ScoreμS(S,T′)和二元特征匹配(或“归类”)信息源ScoreμB(S,T′)。结合这些知识源,P(S|T′)近似为:
公式5
因此,
公式6
每个分数的相对作用或log-概率是由因子(λT,λC,λF,λS,和λB)加权的,所得的线性内插近似为:
公式7
在实践中,该实施例不是突然为整个源逻辑形式和目标语言逻辑形式评分的。而是,搜索(在上面的等式中由“argmax”表示)建立目标语言逻辑形式,一次映射一个翻译。这样做,它为每个映射评分。传递映射m的总的线性内插分数表示为:
公式8
如同完全近似和上面所示,每个信息源分数或概率由一因子加权。使用Powell的算法来训练这些因子(λT,λC,λF,λS,和λB)或权值,以使得***输出的BLEU分数最大。Powell算法是本领域公知的。Powell的题为“An EfficientMethod of Finding the Minimum of a Function of Several Variables withoutCalculating Derivates.”(计算机期刊,7:155-162)的文章描述了这个算法的例子。BLEU分数也是本领域公知的,并且在Papineni,Roukos,Ward,and Zhu的题为“Bleu:a method for automatic evaluation of machine translation.”2001.IBM技术报告RC22176(W0109-022),IBM研究部门,Thomas J.Watson研发中心的文章中描述。
模型
在一个实施例中,目标语言模型是n-元模型,所述n-元模型在给定一序列n-1个前面节点和关系的情况下,提供目标依赖关系图中节点的概率。图6说明了一个示例性目标依赖关系图600,它可以在传递映射数据库518的目标方处找到。在图6中,节点A、B、C和D包含单词形式。节点B、C和D是子节点,而节点A是父节点或根节点。节点R1和R2是语义关系节点。
使用该n-元模型,给定目标语言模型,整个目标依赖关系图τ600的概率等于这些节点的每一个的n-元概率的乘积。因此,给定目标语言模型,目标依赖关系图600的概率表示为如下公式:
公式9
其中i是逻辑形式τ中所有节点的索引。对于每个节点ci,依照目标语言模型的分数是给定其n-1个最近的祖先,ci-1到ci-(n-1),ci的概率。举例而言,依照这种三元模型的目标逻辑形式600的概率将是:
公式10
在这个三元模型中,语义关系(R1,R2)被当作一类实体,这样使得目标模型被简化以不需要主题和语义关系的独立模型。通过删除很少发生的n-元和平稳使用内插绝对折扣来精减目标模型。所述内插绝对折扣是本领域公知的,并且在Ney,Essen和Kneser题为“On structuring probabilistic dependences instochastic language modeling.”1994.(计算机语音和语言,8:1-38)的文章中描述。
通道模型预测给定目标逻辑形式源逻辑形式的概率P(S|T)。在一个实施例中,我们为给定源逻辑形式S和目标逻辑形式T作为一组从S到T的传输映射定义传输映射替代M(表示为M:S→T)。给定目标逻辑形式T源逻辑形式S的概率被估计为:
公式11
其中i包括(潜在地)所有传递映射替代Mi:S→T,并且
公式12
定义了依照通道模型μc映射m的概率。表达式count(ms,mT)是映射m的源方的结构被映射到映射一组训练数据中m的目标方的结构的次数,count(mT)是映射m的目标方的结构被发现作为该培训数据中任一映射的目标方的次数。
换而言之,依照传递映射m的通道模型μc,概率被估计为:将传递映射的源方与传递映射的目标方相遇次数count(mS,mT)(在逻辑形式bitext中)除以那个传递映射的目标方被遇到的次数count(mT)。
通道模型也使用重叠传递模型。因此在公式12中计算出的概率是非归一化的概率。这个非归一化的概率可以被归一化使得通道模型并不偏向某些比其它映射具有更多重叠的映射。
图7说明了输入LF700,而图8说明了在传递映射数据库518中发现的传递映射800。传递映射800包含映射802、803、804、806和808。为了易于说明,在本应用的图示中只示出了传递映射中主题的节点,没有示出语义关系的节点。应该注意传递映射包含用于语义关系的额外节点。然而,由于在本发明中以与主题节点相同的方式处理这些节点,以下的图示和讨论限于只讨论主题节点。
可以用多种不同的方式组合映射800以包含源LF700的所有节点。举例而言,映射802可以与映射808组合,映射803可以与映射806组合,映射804、806和808可以组合到一起。这些组合的每一个是不重叠的,因为源LF700中的每个节点只是由单个传递映射覆盖。然而,另一个将映射800组合以包含所有的源LF700的方式是将映射802与映射803相组合。这形成了重叠映射,因为源节点A被映射802和映射803同时覆盖。
为了防止通道模型偏向重叠映射,通道模型被归一化。给定通道模型μc,映射m的归一化概率PμC N(m)PN计算为:
公式13
其中“new”是在输入图中先前未被覆盖的成分或节点的数目,“total”是传递映射的源方成分的总数目,PμC(m)是依照通道模型非规范的传输映射的概率,如先前所定义的。因此,公式13说明了依照通道模型归一化的传递映射的概率等于具有所示指数的依照通道模型非归一化的传递映射的概率。
如上所述,在一些情况下,输入LF中的节点在训练数据中找不到,因为它不能被分析,它只是不出现,或由于它的频率低于预定的阀值(通常为一)而被过滤到传输映射数据库518之外。在这些情况下,***默认节点,所述默认节点是使用字典中的单个单词翻译形成的。可以使用在双语文本上训练的IBM模型1来确定这个默认映射的概率。因为这个概率是从与其它通道概率不同的方式获取的,默认映射概率在和其它通道概率组合之前由权值(λL)调整。此外,如果不能确定默认映射的概率,就使用(λA)的默认值。权值λL和λA,如同在翻译***中使用的其余权值,是使用Powell算法来训练的,使得对于一组训练语句BLEU分数最大化。应该注意,在为传递映射计算最终分数时,这些参数是和与通道模型相关联的权值(λC)分开的,如公式8所示。
通道模型和目标语言模型的不同地操作。特别是,通道模型在翻译中提倡准确,而目标语言模型提倡目标语言中的流利,而不考虑源语言。
目标语言模型受到倾向性之苦,在于它宁愿要较小的图而不愿要较大的图。结果是,目标语言模型倾向于在目标结构中删除节点的映射,而非在源和目标结构中保持相同数目节点或在目标结构中增加节点的映射。例如,图9和图10说明了训练数据库518包含传递映射900和1000。传递映射900说明了在目标方比源方少一个节点。传递映射1000说明了在映射的源方和目标方具有相同数目的节点。目标语言模型对映射900的评分将比映射1000高,因为由映射900产生的目标LF片段的产品要比来自映射1000的片断具有较低的概率。
生产模型通过基于节点在训练数据映射中被删除的次数提供分数,有助于克服这个问题。如果很少有节点在训练数据中被删除,那么生产模型将为没有删除的映射提供更高的分数。
通过查看训练数据并为传递映射的源方的每个节点计算在传递映射的目标方中多少时间由一个相应的节点来计算生产模式。为了防止分析数据问题,对于主题的计算由词类归类到一起,而对于语义关系的计算(其数目大约等于词类的数目)分开维持。
对于每个词类或语义关系标签x,生产表的条目表示为:
公式14
换而言之,通过计算在目标结构和源结构中都遇到x的次数和在源结构中遇到成分x的次数的比例来得出成分x的生产表条目。因此,依照生产模型μF传递映射m的概率计算为:
公式15
其中
换而言之,如果目标的节点对应于源的节点,那么f(c)是生产表条目F[x]。否则,f(c)是1-F[x]。
下一个信息源是映射尺寸分数,它考虑传递映射的源方节点的数目。该信息源指派一分数,计算为:
公式16
实际上,尺寸分数偏向较大的映射,这是基于假设具有较多上下文信息的映射很可能比具有较少上下文信息的映射要好。参见图9和10,传递映射900会收到评分2,因为它在源方有两个节点。传递映射1000也将收到分数2,因为它在源方有两个节点。
二元特征(或比特)信息源考虑在输入依赖关系图和传递映射的源方之间匹配的二元特征(比特)的数目。二元特征源提供等级分数为在源依赖关系图中匹配传递映射的源方比特的输入比特的和。图11说明了输入LF1100,而图12说明了存储在传递映射数据库518中的传递映射1200。输入LF1100中的节点A规定节点A的主题有一被动比特和一单数比特。传递映射1200的源方的节点A规定节点A的主题有一单数比特。因此对传递映射1200的等级分数为一,因为输入LF1100的节点A和映射1200的源方的节点A都具有一匹配单数比特。
图13是说明由图5的解码组件554实现的解码算法的流程图1300。解码组件554依照本发明的一个实施例选择和评分传递映射组。解码组件554采用带有暂存的自上而下搜索以从搜索组件524找到的传递映射组中找出最有可能的映射组合。图14说明了依照本发明的示例性的源LF1400。图15-21说明了由搜索组件524找到的与源LF1400相关的传递映射组。
图5的解码组件554通过选择源LF1400的顶部的节点开始,如块1302中所示。在图14中,顶部节点是节点A。在选择节点A之后,解码组件554转到块1304并确定是否以前识别出这个上下文中该节点的最佳映射。在这个例子中,没有为节点A的映射评分。
接着,该过程在步骤1306继续,其中由搜索组件524从发现的映射组中选择出覆盖所选节点的源方的传递映射。例如,解码组件554选择图15的传递映射1500。
在块1308处,解码组件554确定源LF1400中是否有不被所选映射覆盖和直接从所选映射扩展出的任何节点。在上述例子中,映射1500只覆盖节点A和B。同样地,子节点C不被所选择的映射覆盖而是直接从节点A扩展,所述节点A被所选择的映射覆盖。在步骤1308,如果有不被覆盖的子节点,过程继续到块1310。
在块1310处,解码组件554选择子节点C并将其传回块1304。在块1304处,解码组件554确定在所选择的上下文中是否已经为所选择的节点识别出最佳的映射。特别是对于3-元目标模型,“所选择的上下文”包含节点C的n-1个目标方祖先(在这种情况下,<PRE_ROOT,PRE_ROOT,A’>)。对于节点C,还没有识别出最佳的映射,因此过程继续到步骤1306,其中解码组件554从一组覆盖子节点C的传递映射中选择出一传递映射。例如,解码组件554会选择图16所示的传递映射1600。步骤1306之后,解码组件554转到块1308并决定是否有从被映射覆盖的节点扩展出的任何非被覆盖的子节点。在上述例子中,节点E和F是从被映射1600覆盖的节点扩展出的非被覆盖的子节点。基于非被覆盖的子节点的发现,解码组件554转到块1310。
在块1310处,解码组件554选择未被覆盖的子节点之一,例如节点E,并回到块1304。在块1304处,解码组件554确定在当前活动的目标上下文中(在这种情况下,<PRE_ROOT,A’,C’>)还没有为节点E确定最佳映射。过程接着继续到块1306,其中解码组件554从覆盖节点E的传递映射组中选择一传递映射。例如,解码组件554选择图17所示的传递映射1700。接着,解码组件554转到块1308,并决定该传递映射是否留有任何未被覆盖的子节点。
依照源LF1400,节点E没有子节点。因此,解码组件554继续到块1312以为所选择的传递映射计算分数。这个分数是使用公式8计算的,如上所述,通过结合所有上述的模型。注意采取图13的自上而下的方法的一个原因是保证节点的上下文(在评分的映射中)是已知的,这样使得目标模型(需要该上下文)可以被用于计算目标模型分数。
在为映射评分之后,解码组件转到块1314,并确定是否还有覆盖所选节点的传递映射。在这个例子中,图18为所选节点E示出了另一个传递映射1800。如果有另一个传递映射,解码组件554回到块1306并选择该另外的传递映射。例如,映射1800将被选择。在这个例子中,映射1800没有未被覆盖的子节点。因此,解码组件554通过块1308到块1312,解码组件554在块1312中使用公式3计算传递映射1800的分数。
接着,解码组件554转到块1314以确定对所选择的节点是否有更多的传递映射。在这个例子中,图19示出了覆盖节点E的传递映射1900。解码组件再次回到块1306。在这个例子中,传递映射1900没有任何未被覆盖的子节点。因此,解码组件554使用公式3为传递映射1900计算分数。计算出分数以后,解码组件转到块1314。
如果在步骤1314处解码组件554确定没有更多的映射,过程在步骤1316处继续,其中它从覆盖所选择节点的传递映射中比较和选择分数最高的传递映射。在上述例子中,比较了映射1700、1800和1900的分数,并选择了最高分数的映射。在这个例子中,最高分数的传递映射假定为传递映射1700。解码组件554为最高分数的映射存储映射头部的节点、最高分数映射的上下文(在源LF中,映射扩展自的节点)、最高分数的映射的分数和每个个体模式概率或信息源分数。因此,所选择映射的目标模型概率、通道模型概率、生产模型概率、尺寸分数和等级分数都被存储。虽然为每个模型存储了每个概率或分数,本领域的技术人员应该认识到公式8中所确定的分数是对存储最重要的分数。
在存储了所选映射的分数后,解码模块554转到块1318,其中它确定在所选节点之上是否存在更多层。在上述例子中,节点C在节点E之上。如果有另一层节点在当前所选的节点之上,解码组件554回到块1320处为那个节点考虑的最后一个映射。在上述的例子中,这涉及回到图16的映射1600。
在块1322处,解码组件554确定这个映射是否有其它未被探测出的任何其它未被覆盖的子节点。如果有其它未被覆盖的子节点要探测,解码组件554在块1310处继续,其中解码组件554选择该未被覆盖的子节点。在上述例子中,这会涉及选择子节点F。解码组件554接着转到块1304以确定给定这个节点的上下文,是否为它识别出了最佳的映射。如果还没有确定最佳映射,解码组件554在步骤1306处选择覆盖所选子节点的传递映射(例如,图20的映射2000)。在这个例子中,传递映射2000先前没有被评分。在块1308处,解码组件554确定节点F没有未被覆盖的子节点。因此,解码组件554转到块1312,并使用公式3为节点F计算出分数。
解码组件554转到块1314,以确定节点F是否有更多的传递映射。在这个例子中,没有其它的传递映射覆盖节点F。因此,解码组件554为映射2000存储分数,并为映射2000存储每个单独的模型概率或信息源分数、传递映射2000在其中被评估的目标方上下文的n-a节点、对应于传递映射2000的头节点的输入节点和传递映射2000的总分。
在这个例子中,在节点F上存在源LF1400的更多层次。因此,解码组件554转到块1320,并回到为节点C考虑的最后一个映射。在块1322处,解码组件554确定为节点C所选的映射没有更多的未被覆盖子节点。因此解码组件554转到块1312并为传递映射1600计算总分。
如果所选择的映射有未被覆盖子节点,通过将未被覆盖子节点的最高分数的映射的分数与所选映射的分数相结合来确定该映射的分数。例如,映射1700和2000的分数将和映射1600的分数相结合,以此为源LF中节点C以下的整个映射提供总分。
在一个实施例中,映射分数的每个组件分别结合。因此,映射1600的总的目标模型概率为:
公式17
其中PμT(m1700)是映射1700的目标模型概率,PμT(m2000)是映射2000的目标模型概率,而logPμT(m1600)是映射1600的目标模型概率。
相似地,映射1600的总的通道模型概率为:
公式18
映射1600的总的生产模型概率为:
公式19
映射1600的总的映射尺寸分数是子映射尺寸分数和映射1600单独的映射尺寸分数的平均数:
公式20
与总的映射尺寸分数相同,映射1600的总等级分数是子等级分数和映射1600单独的等级分数的平均数,描述为:
公式21
一旦为每个组件确定了总分,使用上述的公式8为所选的映射将这些总分结合到单个分数。
解码组件554接着转到块1314并决定对节点C是否存在更多的传递映射。在这个例子中,对节点C不存在其它传递映射,因此解码组件554选择传递映射1600作为具有最高分数的映射,并存储映射1600的总分、映射1600的上下文(节点A)、映射1600的头节点(节点C)以及映射1600的个体总组件分数。
在块1318处,解码组件554决定在源LF1400中是否在节点C上存在更多的层。在这个例子中,节点A在节点C之上。因此,解码组件554回到映射中的上一层,如块1320中所示。在上述例子中,这涉及回到图15的映射1500。在块1322处,解码组件554确定所选择的映射是否有任何其它需要探测的未被覆盖的子节点。在这个例子中,没有其它未被覆盖的子节点,因此解码组件554转到块1312,并为传递映射1500计算总分。与映射1600相同,传递映射1500的总分通过将映射1600的分数和映射1500的分数结合而形成。
解码组件554接着转到块1314,并确定对节点A是否存在更多的传递映射。在这个例子中,传递映射2100也覆盖节点A。结果是,过程回到步骤1306以选择传递映射2100。
在步骤1308处,过程确定映射2100有一个未被覆盖的子节点。特别地,节点E和F没有被映射2100覆盖。在步骤1310处,选择了节点E并且过程回到步骤1304以确定给定我们先前对映射2100的选择,在当前上下文中是否已经为节点E选择了最佳映射,在这种情况下应为<PRE_ROOT,A’,C’>。这样一个最好的映射被选择(映射1700)。接着在步骤1320选择这个最佳映射和它的分数,并且过程回到映射2100。
过程接着确定是否有更多的未被覆盖的子节点要考虑。对于映射2100,没有考虑子节点F,并且在步骤1310处选择子节点F。在步骤1304处,确定在节点D的上下文中是否已经为节点F确定了最佳的映射(映射2000)。接着在步骤1320处,选择这个最佳的映射,并且过程回到映射2100。
当回到步骤1322时,没有更多未被覆盖的子节点要考虑,并且使用为映射1700和2000存储的分数和映射2100的个体映射分数为映射2100计算分数。如上所述,映射分数的个体组件是分开结合的。
在步骤1314处,不存在其它的传递映射,因此解码组件554转到块1316,并基于传递映射1500和2100这两个映射结构的总分,在由传递映射1500开头的传递映射结构和由传递映射2100开头的传递映射结构之间选择。解码组件554为最高分数的传递映射结构存储总分并转到块1318。在块1318处,解码组件确定在节点A上是否存在更多的层。在这个例子中,节点A是源LF1400中的最高节点,因此解码组件554结束解码并回到为节点A所确定的最高分数的传递映射结构。
基于图15-21所示的存储的最高分数的传递映射,传递组件526可以建立目标LF。例如,如果传递映射1500、1600、1700和1900被选为最高分数传递映射,并且因此具有目标翻译的最高概率,它们被组合以形成目标LF。
诸如统计模型和其它评分技术等信息源被用在本发明中,以此为语义结构确定最佳翻译。通过使用贪心搜索算法(在一个实施例中)相对于一组传递映射,输入语义结构被用于生成输出语义结构。然而,贪心搜索算法不会测试传递映射的所有可能组合,而仅仅是选择第一组完全覆盖输入语义结构的传递映射。统计模型被用于预测给定输入字符串,最可能的输出字符串。然而,在基于字符串***中使用的统计模型假设可以通过相邻或几乎相邻的元素预测一元素。因此,本发明使用统计模型来为语义结构预测最佳翻译。
虽然目标语言模型,如应用于本发明的语义结构,可以用在建立输出单词串,如同应用到语义结构的目标语言模型可以用在其它语言程序中。例如,其它***包含语音识别、光学符号识别、手写识别、信息提取和语法检查。
虽然参照特定实施例描述了本发明,本发明的技术人员会认识到可以在形式或细节上作出不背离本发明精神和范围的改变。