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
源语言语法树:

结构转换:

词翻译、获取结果:
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]. 方法描述:
所需数据:大规模实例库;模型如下:

三. 统计机器翻译模型
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
短语表:
句子一:

句子二:能: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模型训练得到的词语翻译表计算翻译概率,示例如下图:
