NLP-机器翻译

NLP | 机器翻译(machine translation, MT)

一. 机器翻译基础概念:

1.定义:机器翻译就是计算机把一种语言(源语言, SL)翻译成另一种语言(目标语言, TL)的技术

2.研究内容:文本翻译、对齐,在未给出参考译文情况下的质量评价等

3.难点:

  • 自然语言中普遍存在的歧义和未登录词
  • 机器不仅仅需要考虑字符串的转换,还要注意一些常识性的东西
  • 解不唯一且没有统一的标准答案

4.现状:

  • 机器翻译尚不成熟,计算机是帮助人类完成某些翻译工作而不是完全替代人

  • “信、达、雅”是翻译追求的目标,计算机在这方面难以替代人

二. 传统机器翻译方法:

1.直接转换法:

[1]. 将源语言的单词、短语或句子直接用目标语言,带有相同意思词、短语、句子代替。由于语言使用习惯等问题,有时需要进行词序调整

[2]. 这类方法,针对的是特定的两个语言,会考虑语法结构的问题。

2.基于规则的翻译:

[1]. 规则:包含了句法结构分析的句法规则,以及两个语言之间句子结构转换的转换规则。

[2]. 过程:

  • 将源语言句子进行分词、词性标注,根据句法规则构建句法分析树T1(叶子节点对应一个词);
  • 利用转换规则将源语言语法分析树转换为目标语言的语法分析树T2(叶子节点对应一个词);
  • 根据T1、T2叶子节点的对应关系,进行词汇翻译,得到翻译结果。

[3]. 示例:

源语言句子:There is a book on the desk

词法分析、词性标注:There/Ad is/Vbe a/Det book/N on/P the/Det desk/N ./Puc

源语言语法树:

image-20201024173444237

结构转换:

image-20201024173549763

词翻译、获取结果:

there (Ad): 在那里 ; be (Vbe): 是 ; there be (VP): 在…有 ; a (Det): 一,一个,一本… ; book (N): 书,书籍; V: 预订

在桌子上有一本书。

[4]. 优缺点:

  • 对于语言句法结构明确的源语言语句具有较强的处理能力
  • 规则一般由人工编写,工作量大,主观性强,一致性难以保障
  • 不利于系统扩充,对非规范语言现 象缺乏相应的处理能力

3.基于实例的翻译方法:

[1]. 该方法的从思考人进行翻译的方式入手,提出者认为,人进行翻译时,会将原句子打碎成多个成分,然后在进行每个具体成分的翻译时,会使用类比的方式,也就是根据之前的经验,来决定,使用目标语言的哪个或哪些词汇进行替换。

[2]. 示例:

  • 待翻译句子:她 买了 一本 计算机语言学 入门书。

  • 实例库中已有翻译实例:

她买了 一件 时髦的 夹克衫。: She bought a sharp jacket.

他 正在 读 一本 计算机语言学 入门书。 : He has been reading a book on introduction to Computational Linguistics.

  • 翻译实例重组:She bought a book on introduction to Computational Linguistics.

[3]. 方法描述:

所需数据:大规模实例库;模型如下:

image-20201024175259144

三. 统计机器翻译模型

1.基本原理:

[1]. 设源语言的一个句子可以表示为:\(S = s_1^{m} = s_1s_2...s_m\),目标语言的一个句子表示为:\(T = t_1^n = t_1t_2..t_n\)

此时我们的问题就变成了,在已知S的情况下,求生成一个最大可能的T,使得T是S的目标语言的译文。

也即: \[ \hat{T} = \underset{T}{argmax}P(T|S)=\underset{T}{argmax}\frac{P(S|T)*P(T)}{P(S)}=\underset{T}{argmax}P(S|T)*P(T) \] [2]. 相求解公式(1),我们先需要知道P(T)和P(S|T)的计算

[3]. P(T)是可以使用我们之前的N-gram模型来解决的: \[ n = 2 : P(T)=P(t_1t_2...t_n)=P(t_1)*p(t_2|t_1)*...*P(t_n|t_{n-1}) \] [4]. P(S|T)的计算有两种粒度的方法:基于词的翻译模型 或 基于短语的翻译模型

2.基于词的翻译模型-IBM模型:

[1]. 词对齐(词翻译):

设从源语言词\(s_i\)到目标语言词\(t_j\)的对齐函数为a(i)=j,则根据目标语言句子求某一对齐方式和对应源语言句子的概率为\(p(s,a|t) = \epsilon*\prod_{i=1}^{m}\frac{p(s_i|t_{a(i)})}{n+1}\),然后我们发现,我们需要提前算出\(p(s_i|t_j)\)这样的翻译概率。

[2]. 翻译概率获取:

我们发现:在进行翻译时我们需要知道对齐信息,在求对齐方式时,我们有需要知道翻译概率。这时候我们可以采用EM算法,让他们两个中一个维持不变,更新另一个;再让更新后的哪一个不变,更新另一个。通过多轮的更新,使其收敛到我们预期的结果上。

EM:

初始化:所有词之间的对齐可能性相同,并将初始词对齐模型用于学习翻译概率

  • E-step: 计算对齐概率,选择P(a|s,t)最大的那个a: \[ P(a|s,t) = \frac{P(a,s|t)}{p(s|t)}\\ P(s|t) = \sum_aP(a,s|t)=\sum_{a(1)=0}^{n}...\sum_{a(m)=0}^{n}\epsilon*\prod_{i=1}^{m}\frac{p(s_i|t_{a(i)})}{n+1}=\frac{\epsilon}{(n+1)^m}\prod_{i=1}^{m}\sum_{j=1}^{n}p(s_i|t_j) \]

  • M-step:根据对其概率获得翻译概率(这部分数学推导略过)

  • 重复执行,直至收敛(不再改变)

3.基于短语的翻译模型:

[1]. 短语:字串(n-gram)

[2]. 基本思想:把训练语料库中所有对齐的短语及其翻译概率存储起来,作为一部带概率的短语词典;翻译的时候将输入的句子与短语词典进行匹配,选择最好的短语划分,将得到的短语译文重新排序,得到最优的译文。

[3]. 示例:

双语对:

  • 是不能忘记的 :was not to be forgotten
  • 不能:can not

短语表:

句子一:

image-20201024200222932

句子二:能:can ; 不:not ; 不能:can not

计算p(string | 不能):

句子1:p(not | 不能) = 0.5 ; p(not to | 不能) = 0.5

句子2:p(can not | 不能) = 1

综合:

p(not | 不能) = \(\frac{0.5}{0.5+0.5+1}=0.25\)

p(not to| 不能) = \(\frac{0.5}{0.5+0.5+1}=0.25\)

p(can not | 不能) = \(\frac{1}{0.5+0.5+1}=0.5\)

[4]. 上面方法有个特点,因为短语长度不同会影响最终的概率,这是我们不期望的;另外就是堆砌出错也会导致概率计算出现错误。故,使用上述IBM模型训练得到的词语翻译表计算翻译概率,示例如下图:

image-20201024201228208