📜  人工智能中语言的统计机器翻译

📅  最后修改于: 2022-05-13 01:58:09.066000             🧑  作者: Mango

人工智能中语言的统计机器翻译

考虑到翻译可能有多么困难,最有效的机器翻译系统是通过使用从大量文本语料库中获取的统计数据训练概率模型来创建的,这一点也就不足为奇了。这种方法不需要复杂的国际语思想本体、手工制作的源语言和目标语言语法,或手工标记的树库。它只需要示例翻译形式的数据,可以从中学习翻译模型。我们确定字符串f^{*}    最大化

f^{*}=\underset{f}{\operatorname{argmax}} P(f \mid e)=\operatorname{argmax} P(e \mid f) P(f)

将短语从英语 (e) 转换为法语 (f)

法语的目标语言模型是P(f)    ,这表明特定句子在法语中的可能性有多大。翻译模型, P(e \mid f)    , 表示英语句子被翻译成特定法语句子的可能性。相似地, P(f \mid e)    是一个英法翻译模型。
我们是否应该继续努力P(f \mid e)    直接,还是我们应该使用贝叶斯规则并处理 P(e|f)P(f)?在医学等诊断应用中,更容易在因果方向上对域进行建模: P(\text { symptoms } \mid \text { disease })    而不是P(\text { disease } \mid \text { symptoms })    .然而,这两种方法都同样易于翻译。研究人员在统计机器翻译的早期工作中使用了贝叶斯规则,部分原因是他们有一个不错的语言模型, P(f)    ,并想利用它,部分原因是他们来自语音识别的背景,这是一个诊断问题。在本章中,我们将沿用他们的路径,尽管我们应该指出,最近在统计机器翻译方面的工作经常优化P(f \mid e)    直接,采用更复杂的模型,该模型包含许多语言模型的属性。

语言模型, P(f)    ,可能涉及上图右侧的任何级别,但正如我们之前所见,最简单和最常用的技术是从法语语料库开发一个 n-gram 模型。这只是捕捉到法语短语的部分本地意义,但通常足以进行基本的翻译。

双语语料库

一组平行文本(每个文本都有一对英语/法语对)用于训练翻译模型。如果我们有一个无穷无尽的庞大语料库,翻译一个句子只是一个查找任务:我们已经在语料库中看到了英语句子,所以我们只返回相应的法语句子。然而,我们的资源有限,我们需要翻译的大部分句子都是不熟悉的。然而,它们将由我们之前见过的术语组成(即使某些短语只有一个词那么短)。例如,“在这个练习中,我们将”、“状态空间的大小”、“作为函数”和“本章结尾处的注释”都是本书中的常用术语。我们应该能够打破新颖的句子“在这个练习中,我们将计算状态空间的大小作为动作数量的函数。”分成短语,分别在英文语料库和法语翻译中找到对应的短语和法语短语,然后将法语短语重新组合成法语中有意义的顺序。换句话说,给定一个英文句子 e,找到一个法文翻译 f 是一个三步过程:

  1. 把英文句子分成e_{1}, \ldots, e_{n}
  2. 2 选择一个法语短语f_{i}    对于每个短语e_{i}    .对于 fi 是e_{i}    , 我们使用符号P\left(f_{i} \mid e_{i}\right)    .
  3. 选择条款的组合f_{1}, \ldots, f_{n}    .这种排列将以一种看起来很困难但应该具有简单概率分布的样式来指定:我们选择一个失真d_{i}    对于每个f_{i}    ,这是短语 fi 移动的单词数f_{i-1}    ;向右移动为正,向左移动为负,如果是零f_{i}    跟随f_{i-1}    直接地。

上图显示了上一篇文章中解释的过程的示例。 “有一个臭臭的 wumpus 在2 2睡觉”这行在顶部被分解为五个短语, e_{1}, \ldots, e_{5}    .每一个都被翻译成一个f_{i}    短语,然后排列为以下顺序: f_{1}, f_{3}, f_{4}, f_{2}, f_{5}    .排列定义为

d_{i}=\operatorname{START}\left(f_{i}\right)-\operatorname{END}\left(f_{i-1}\right)-1

在哪里\operatorname{START}\left(f_{i}\right)    是短语的第一个单词的序数f_{i}    在法语句子中和\operatorname{END}\left(f_{i-1}\right)    是词组最后一个单词的序数f_{i-1}    .上图表明f_{5} \text {, "à } 2 \text { 2," }    紧随其后f_{4}    ,“qui dort”,因此d_{5}=0    . d2 = 1    因为短语f_{2}    已将一个字移到 f1 的右侧。我们有d1 = 0    作为一种特殊情况,因为 f1 从位置 1 开始,并且\operatorname{END}\left(f_{0}\right)    被指定为 0。(即使f_{0}    不存在)。

我们可以定义失真的概率分布, P    ,现在我们已经确定了失真, d_{i}    .因为我们有\left|d_{i}\right| \leq n    对于长度的短语n    , 整个概率分布\mathbf{P}\left(d_{i}\right)    只包含2n + 1    元素,要记住的数字比排列的数量要少得多, n!    .这就是为什么以如此复杂的方式指定排列的原因。当然,这是一个相当基本的失真模型。当从英语翻译成法语时,它并没有说明形容词经常被改变出现在名词之后——这一事实反映在法语语言模型中, P (f)    .失真的机会不受句子中单词的影响,仅依赖于整数值 di。概率分布总结了排列的波动性;例如,失真的频率P(d = 2)    相比P(d = 0)    .

现在是时候把它们放在一起了:带有失真 d 的单词序列 f 是短语序列 e 的翻译的概率可以定义为P(f, d \mid e)    .我们假设每个短语的翻译和失真都是独立于其他的,因此表达式可以被分解为

P(f, d \mid e)=\prod P\left(f_{i} \mid e_{i}\right) P\left(d_{i}\right)

这允许我们计算概率P(f, d \mid e)    对于给定的候选翻译f    和失真d    .但是我们不能仅仅列举句子来发现最优的 f 和 d;语料库中每个英语短语大约有 100 个法语短语,有 100 个5不同的 5 翻译和5!    他们每个人的重新排序。我们需要寻找一个体面的解决方案。使用具有启发式评估可能性的局部波束搜索来找到几乎最可能的翻译已被证明是有益的。

剩下的唯一事情就是找出短语和失真的概率。我们勾勒出更多信息的过程,阅读本章结尾处的注释

  1. 寻找相似的文本:首先,并行编译一个双语语料库。例如,Hansard9 是立法话语的记录。加拿大、香港和其他国家制作双语议事录,欧盟以 11 种语言出版官方文件,联合国出版多语种出版物。还提供在线双语文本;例如,一些网站发布具有并行 URL 的并行材料,例如 /en/ 用于英文页面,/fr/ 用于法文页面。数亿字的平行文本和数十亿字的单语材料用于训练统计翻译算法。
  2. 分解成句子:因为句子是翻译的单位,所以我们需要将语料库分成句子。句号是句子结束的有力标志,但在“Dr. Rodeo Dr. 的 JR Smith 于 2009 年 9 月 9 日支付了 29.99 美元,“就在最后一段结束了这句话。确定句点是否终止句子的一种方法是训练一个模型,该模型包括周围的单词及其词性作为特征。这种方法有98%的准确率。
  3. 对齐句子:对于英语版本中的每个句子,找出它与法语版本中的哪个句子相关。在大多数情况下,下面的英语句子与下一个法语句子进行 1:1 匹配,但也有例外:一种语言中的一个句子可能会被分成 2:1 匹配,或者两个句子的顺序可能会改变,结果是 2:2 的比赛。使用 Viterbi 方法的一个版本,仅通过查看句子长度(即短句应与短句对齐)。通过在两种语言中使用共同的地标,例如数字、日期、专有名称或具有多语言词典的清晰翻译的单词,可以获得更大的对齐。如果第三个英语和第四个法语句子都包含字符串“1989”,但相邻的句子不包含,则应将这些句子放在一起。
  4. 对齐句子中的短语:尽管需要迭代改进,但可以使用类似于用于句子对齐的过程来对齐句子中的短语。当我们开始时,我们无法知道“qui dort”与“sleeping”是否一致,但我们可以通过证据积累的过程来达到这种联系。我们可以观察到“qui dort”和“sleeping”经常同时出现在所有的例句中,并且除了“qui dort”之外,没有其他短语在其他句子中与“sleeping”一起出现在这对对齐的句子中。句子。短语概率由整个语料库中的完整短语对齐决定(经过适当的平滑处理)。
  5. 定义失真概率:一旦我们有了短语对齐,我们就可以定义失真概率。只需计算每个距离的语料库扭曲了多少次d=0, \pm 1, \pm 2, \ldots    ,然后将其平滑。
  6. 使用 EM 来改进估计:加强对P(f \mid e) \text { and } P(d)    值,使用期望最大化。在里面E    阶段,我们使用当前参数值计算最佳对齐,然后更新M    逐步迭代该过程直到收敛。