首页 理论教育 统计机器翻译

统计机器翻译

时间:2022-02-11 理论教育 版权反馈
【摘要】:在过去的10年中,注意力转到了基于统计的机器翻译系统上。但是“统计机器翻译”表示的是针对整个翻译问题的一种方法,它建立在寻找语句的最可能翻译的基础上,利用了从双语语料库中收集的数据。这些已经被证明对于统计机器翻译而言都是无价的数据来源。翻译模型的最后一部分是改变词序使其处于正确位置。

23.4.2 统计机器翻译

在20世纪60年代早期,人们怀有巨大的希望:计算机将能够把一种自然语言翻译成另一种,正如图灵的项目能够把经过编码的德语消息“翻译”成可理解的德语。直到1966年,人们才认识到通顺的翻译需要对消息含义的理解,而破译密码则不需要。

在过去的10年中,注意力转到了基于统计的机器翻译系统上。当然,图23.5中的每个步骤都可以从统计数据的应用以及从组成良好的分析或转换的清晰概率模型中受益。但是“统计机器翻译”表示的是针对整个翻译问题的一种方法,它建立在寻找语句的最可能翻译的基础上,利用了从双语语料库中收集的数据。作为一个双语语料库的例子,Hansard[19]是一种议会辩论记录。加拿大、香港以及其它一些国家都制作双语的Hansard,欧盟用11种语言出版它的官方文档,联合国出版的更是多语言文档。这些已经被证明对于统计机器翻译而言都是无价的数据来源。

我们通过下面对贝叶斯公式的运用,来表达把一个英语语句E翻译成比如说法语[20]语句F的问题:

argmaxFP(F|E)=argmaxFP(E|F)P(F)/P(E)

=argmaxFP(E|F)P(F)

这条规则的含义是,我们应该考虑所有可能的法语语句F并挑选一个能使乘积P(E|F) P(F)最大的。因为对于每个F,因子P(E)都是相同的,所以可以忽略。因子P(F)是法语的语言模型,它的含义是一个给定的语句出现在法语中的可能性有多大。P(E|F)是翻译模型,它的含义是给定一个法语语句,某个英语语句作为其翻译结果的可能性。

聪明的读者可能会奇怪,我们从用P(E|F)定义P(F|E)的方式中得到了什么收获?在贝叶斯公式的另一个应用中,由于我们需要采用一个因果模型,因此会将其反转过来。例如,我们用因果模型P(Symptoms|Disease)来计算P(Disease|Symptoms)。然而,在翻译中,这两个方向没有哪个比另外一个更具有因果性。在这种情况下应用贝叶斯公式的原因是,我们相信能够学到一个比翻译模型P(E|F)更准确(也比直接估计P(F|E)更准确)的语言模型P(F)。本质上,我们已经将问题分为两部分:首先,我们应用翻译模型P(F|E)找到那些提及来自英语语句的概念的候选法语语句,但是它们不一定是通顺的法语;然后我们用语言模型P(F)(对该模型我们已经有了好得多的概率估计)挑选最好的候选。

语言模型P(F)可以是任意一个赋予语句概率的模型。利用一个超大规模的语料库,我们可以通过统计每个语句在语料库中出现的次数直接估计P(F)。例如,我们在万维网上收集了1亿条法语语句,如果“Clique ici”这个语句出现了50 000次,那么P(Clique ici)等于0.0005。但是即使有1亿个例句,很多语句计数仍为0[21]。因此,我们将采用熟悉的二元语言模型,其中由词语f1… fn组成的法语语句的概率是:


我们需要知道类似P(Eiffel|tour) = 0.02一类的二元概率。这只捕捉到非常局部的句法概念,其中一个词语只与其前面的那个词语有关。不过对于粗糙翻译而言这往往已经足够了[22]

翻译模型P(E|F)更难得到。首先,我们没有现成的(英语, 法语)语句对的集合用于训练;其次,这个模型更复杂,因为它需要考虑语句的叉积而不仅仅是单个语句。我们将从一个极其简单的翻译模型开始,将其发展成为一个近似于“IBM Model 3”(Brown等人,1993)的系统,它可能看起来仍然极其简单,但是已经被证明大约有一半时间能够生成可接受的翻译结果。

这个极其简单的模型是“要翻译一个语句,按照从左至右的顺序单独和独立地翻译每个词语”。这是一个一元词语选择模型。可以很容易地计算翻译的概率:


在少数情况下这个模型能工作得很好。例如,考虑

P(the dog|le chien)=P(the|le)×P(dog|chien)

在任何概率值的合理集合中,“the dog”应该是“le chien”的最大似然翻译。然而,在大多数情况下,这个模型是失败的。其中一个问题是词语顺序。在法语中,“dog”是“chien”,“brown”是“brun”,但是“brown dog”对应于“chien brun”。另一个问题是词语选择并不是一一映射。英语单词“home”常被翻译成“à la maison”,是一个一到三映射(从另外一个方向看则是三到一)。尽管存在这些问题, IBM Model 3坚持采用基本的一元模型,但是添加了一些复杂因素进行修正。

为了解决词语不能一对一地翻译的问题,在模型中引入了词语繁殖度(fertility)的概念。n繁殖度词语(1个词语对应于翻译后的n个词语——译者注)会有n个拷贝,并对每个拷贝单独进行翻译。模型还包含针对每个法语词语的P(Fertility=n|word)的参数。为了将“à la maison”翻译成“home”,模型应该为“à”和“la”选择0繁殖度,为“maison”选择1繁殖度,然后利用一元翻译模型将“maison”翻译成“home”。这看来足够合理:“à”和“la”是没什么含义的词语,可以适当地不翻译。但是另一个方向的翻译则比较可疑。分配给“home”这个词的繁殖度为3,我们得到“home home home”。第一个“home”会被翻译成“à”,第二个是“la”,第三个是“maison”。根据这个翻译模型,那么“à la maison”和“maison la à”的概率完全相同(这正是可疑的地方)。语言模型就必须判定哪个是更好的。看来,将“home”直接翻译成“a la maison”比通过“home home home”的间接翻译更有意义,但是这需要更多的参数,而且这些参数很难从语料中得到。

翻译模型的最后一部分是改变词序使其处于正确位置。这是通过偏移模型实现的,它把一个词语从其初始位置移到最终位置。例如,将“chien brun”翻译成“brown dog”,“brown”的偏移是+1(向右移动了一个位置),“dog”的偏移为 −1。你可以想像偏移应该取决于与词语本身:像“brown”这样的形容词应该有正偏移,因为法语倾向于将形容词放在名词后。但是IBM Model 3判定依靠词语本身进行偏移会需要大量的参数,因此偏移独立于词语,而仅仅取决于两种语言中词语在语句内的位置以及语句的长度。也就是说,模型需要估计参数

P(Offset=o|Position = p, EngLen = m, FrLen = n)。

因此,为了判断“brown dog”中“brown”的偏移,我们考虑P(Offset|1,2,2),比如说得到偏移是+1的概率是0.3,是0的概率是0.7。偏移模型看起来甚至更可疑,仿佛是由某个更熟悉在冰箱周围移动有磁性的词语而不是实际说出自然语言的人摆弄出来的。不久我们将看到这样设计它并不是因为它是一个好的语言模型,而是因为它合理地利用了可用数据。无论如何,它生动地提醒了我们一个普通的翻译系统可以被一个好的法语模型挽救。下面的例子显示了语句翻译中的所有步骤:

源法语:     Le chien  brun   n’ est pas allé à  la  maison

繁殖模型:    1  1    1    1  1  0  1  0  0  1

转换法语:    Le chien  brun   n’ est   allé     maison

词语选择模型:  The dog   brown  not did   go     home

偏移模型:    0 +1   −1   +1 −1   0      0

目标英语:    The brown  dog   did not   go     home

现在,我们知道了如何计算任意(法语, 英语)语句对的概率P(F|E)。但是我们真正想做的是,给定一个英语语句,找到使这个概率最大的法语语句。我们不能只是枚举出所有的语句。法语中有 105个单词,则有105n条长度为n的语句,每条语句有多种排列方式。即使我们对每个词语只考虑前10个频度最高的词到词的翻译,且只考虑0或 ±1的偏移,我们仍然会得到大约2n/210n条语句,这意味着我们能枚举出n = 5时的所有语句,而n = 10时则不能。因此,我们需要搜索最佳的解。A*搜索的一个版本已经被证明是有效的;参见Germann等人(2001)。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈