概念
机器翻译就是用计算机把一种语言翻译成另外一种语言的技术
机器翻译的产生与发展
17 世纪,笛卡尔与莱布尼茨试图用统一的数字代码来编写词典
1930 机器脑
1933 苏联发明家特洛阳斯基用机械方法将一种语言翻译为另一种语言
1946 ENIAC 诞生
1949 机器翻译问题被正式提出
1954 第一个 MT 系统出现
1964 遇到障碍,进入低迷期
1970-1976 开始复苏
1976-1990 繁荣时期
1990-1999 除了双语平行预料,没有其他的发展
1999-now 爆发期
2014 以后出现基于深度学习/神经网络的 MT
机器翻译的要点
正确的机器翻译必须要解决语法与语义歧义
不同类型语言的语言形态不一致
有的词语在不同语言中不能够互通
词汇层的翻译
(1)形态分析:对于原始的句子进行形态分析,对于时态等特殊要素进行标记
(2)词汇翻译
(3)词汇重排序
(4)形态变换
语法层的翻译
语法层的翻译就是将一种语言的语法树映射到另一语言的语法树
e.g.英语 ->日语
V
P
→
V
N
P
c
h
a
n
g
e
t
o
V
P
→
N
P
V
VP \to VNP changeto VP \to NP V
VP→VNPchangetoVP→NPV
P
P
→
P
N
P
c
h
a
n
g
e
t
o
N
P
→
N
P
P
PP \to PNP changeto NP \to NP P
PP→PNPchangetoNP→NPP
三个阶段:句法分析,转换句法树,用目标语法树生成句子
语义层的翻译
基本翻译方法
直接转换法
基于规则的翻译方法
基于中间语言的翻译方法
基于语料库的翻译方法
直接转换法
从源语言的表层出发,直接只换成目标语言译文,必要时进行简单词序调整
基于规则的翻译方法
把翻译这一过程与语法分开,用规则描述语法
翻译过程:
(1)对源语言句子进行词法分析
(2)对源语言句子进行句法/语义分析
(3)结构转换
(4)译文句法结构生成
(5)源语言词汇到译文词汇的转换
(6)译文词法选择与生成
独立分析-独立生成-相关转换
优缺点:可以较好地保持原文的结构,但是规则一般由人工编写,工作量大,对非规范语言无法处理
基于中间语言的翻译方法
源语言解析-比较准确的中间语言-目标语言生成器
基于语料库的翻译方法
基于事例的翻译方法
统计机器翻译
获取大量各国语言翻译成英语的文本,然后进行句子对齐
翻译目标:准确度(faithfulness),结构正确/可读性强(fluency)
T
=
arg
max
T
∈
T
a
r
g
e
t
f
a
i
t
h
f
u
l
n
e
s
s
(
T
,
S
)
×
f
l
u
e
n
c
y
(
T
)
T = \arg \max\limits_{T \in Target} faithfulness(T,S) \times fluency(T)
T=argT∈Targetmaxfaithfulness(T,S)×fluency(T)
噪声信道模型
依然与之前语言模型中的贝叶斯类似
将源语言句子
f
=
f
1
f
2
.
.
.
f=f_1f_2...
f=f1f2...翻译到目标语言
e
=
e
1
e
2
e=e_1e_2
e=e1e2,使 P(e|f)最大化
e
^
=
arg
max
e
∈
E
n
g
l
i
s
h
P
(
e
∣
f
)
=
arg
max
e
∈
E
n
g
l
i
s
h
P
(
f
∣
e
)
P
(
e
)
\hat e = \arg \max\limits_{e \in English}P(e|f) = \arg \max\limits_{e \in English}P(f|e)P(e)
e^=arge∈EnglishmaxP(e∣f)=arge∈EnglishmaxP(f∣e)P(e)
此外还需要 decoder 来进行解码
语言模型 p(e)
可以采用 n-gram 或者 PCFG 计算
翻译模型 p(f|e)
对于 IBM Model 1:
(1)选择长度为 m 的句子 f,英文句子长度为 l
(2)选择一到多的对齐方式:A = a1a2…an
(3)对于 f 中的单词 fj,由 e 中相应的对齐词
e
a
j
e_{aj}
eaj生成
red:对齐:一种对齐定义了每个外文词可以由哪个(些)英文词翻译过来
目标式可以表示为:
p
(
f
∣
e
,
m
)
=
∑
a
∈
A
p
(
f
,
a
∣
e
,
m
)
p(f|e,m)=\sum\limits_{a \in A}p(f,a|e,m)
p(f∣e,m)=a∈A∑p(f,a∣e,m)
由链式法则可得:
p
(
f
,
a
∣
e
,
m
)
=
p
(
a
∣
e
,
m
)
p
(
f
∣
a
,
e
,
m
)
p(f,a|e,m) = p(a|e,m)p(f |a,e,m)
p(f,a∣e,m)=p(a∣e,m)p(f∣a,e,m)
对于 p(a|e,m),IBM Model 1 假设所有的对齐方式具有相同的概率:
p
(
a
∣
e
,
m
)
=
1
(
l
+
1
)
m
p(a|e,m) = \frac{1}{(l+1)^m}
p(a∣e,m)=(l+1)m1
对于 p(f|a,e,m),
p
(
f
∣
a
,
e
,
m
)
=
∏
j
=
1
m
t
(
f
j
∣
e
a
j
)
p(f|a,e,m) = \prod\limits_{j=1}^mt(f_j|e_{aj})
p(f∣a,e,m)=j=1∏mt(fj∣eaj)
t(f|e)表示英文词 eaj 翻译成外文词 fj 的概率
故:
p
(
f
∣
e
,
m
)
=
∑
p
(
f
,
a
∣
e
,
m
)
=
∑
a
∈
A
1
(
l
+
1
)
m
∏
j
=
1
m
t
(
f
j
∣
e
a
j
)
p(f|e,m) = \sum p(f,a|e,m) = \sum\limits_{a \in A} \frac{1}{(l+1)^m}\prod\limits_{j=1}^mt(f_j|e_{aj})
p(f∣e,m)=∑p(f,a∣e,m)=a∈A∑(l+1)m1j=1∏mt(fj∣eaj)
根据以上计算式,也可以计算某种对齐方式的概率:
a
∗
arg
max
a
p
(
a
∣
f
,
e
,
m
)
=
arg
max
a
p
(
f
,
a
∣
e
,
m
)
p
(
f
∣
e
,
m
)
a^* \arg \max_ap(a|f,e,m) = \arg \max_a \frac{p(f,a|e,m)}{p(f|e,m)}
a∗argmaxap(a∣f,e,m)=argmaxap(f∣e,m)p(f,a∣e,m)
IBM Model 2:
对于 model 2,引入了对齐时的扭曲系数
q(i|j,l,m)给定 e 和 f 对齐的时候,第 j 个目标语言词汇和第 i 个英文单词对齐的概率
p
(
a
∣
e
,
m
)
=
∏
j
=
1
m
q
(
a
j
∣
j
,
l
,
m
)
p(a|e,m) = \prod\limits_{j=1}^mq(a_j|j,l,m)
p(a∣e,m)=j=1∏mq(aj∣j,l,m)
则
p
(
f
,
a
∣
e
,
m
)
=
∏
j
=
1
m
q
(
a
j
∣
j
,
l
,
m
)
t
(
f
j
∣
e
a
j
)
p(f,a|e,m) = \prod\limits_{j=1}^mq(a_j|j,l,m)t(f_j|e_{aj})
p(f,a∣e,m)=j=1∏mq(aj∣j,l,m)t(fj∣eaj)
IBM model 2 最优对齐:
t 与 q 的计算
已有数据:双语(句子)对齐资料(包含/不包含词对齐信息)
e
(
k
)
,
f
(
k
)
,
a
(
k
)
e^{(k)},f^{(k)},a^{(k)}
e(k),f(k),a(k)
采用极大似然估计法:
t
M
L
(
f
∣
e
)
=
C
o
u
n
t
(
e
,
f
)
C
o
u
n
t
(
e
)
,
t
M
L
(
j
∣
i
,
l
,
m
)
=
C
o
u
n
t
(
j
∣
i
,
l
,
m
)
C
o
u
n
t
(
i
,
l
,
m
)
t_{ML}(f|e) =\frac{Count(e,f)}{Count(e)},t_{ML}(j|i,l,m) = \frac{Count(j|i,l,m)}{Count(i,l,m)}
tML(f∣e)=Count(e)Count(e,f),tML(j∣i,l,m)=Count(i,l,m)Count(j∣i,l,m)
如果不包含词对齐信息:
基于短语的翻译
有时候会出现多个词对应一个词的情况,有时候也需要更长的上下文来消除词的歧义,于是推出了基于短语的翻译
基本过程
构建短语对齐词典
基于短语的翻译模型:
(1)词组合成短语
(2)短语翻译
(3)重排序
解码问题
短语对齐词典
输入:句子对齐语料
输出:短语对齐语料
e.g.他将访问中国He will visit China
(他将,He will)(访问中国,visit China)
每个互译的短语对(f,e)都有一个表示可能性的分值 g(f,e)
g
(
f
,
e
)
=
log
c
o
u
n
t
(
f
,
e
)
c
o
u
n
t
(
e
)
g(f,e) = \log \frac{count(f,e)}{count(e)}
g(f,e)=logcount(e)count(f,e)
同时使用噪声信道模型依然可以用来表示最优英语翻译:
e
b
e
s
t
=
arg
max
e
p
(
f
∣
e
)
p
L
M
(
e
)
e_{best}=\arg \max_e p(f|e)p_{LM}(e)
ebest=argmaxep(f∣e)pLM(e)
语言模型
一般采用 3-gram:q(w|u,v)
排序模型
可以简化为基于距离的排序:
η
×
∣
s
t
a
r
t
i
−
e
n
d
i
−
1
−
1
∣
\eta \times|start_i-end_{i-1}-1|
η×∣starti−endi−1−1∣
其中
η
\eta
η为扭曲参数,通常为负值
几个概念
p(s,t,e):源句子中 xs 到 xt 的词串可以被翻译为目标语言的词串 e
P:所有短语 p 的集合
y:类似 P,导出,表示一个由有限个短语构成的短语串
e(y):表示由导出 y 确定的翻译
解码问题
求解最优翻译是一个 NP-complete 问题
可能的方案:基于启发式搜索解码算法
状态 q:五元组(e1,e2,b,r,alpha)
e1,e2 表示待翻译短语对应翻译中最后两个英文词
b 为二进制串 ,1 为已经翻译,0 为未翻译
r 表示当前待翻译短语的最后一个词在句子中的位置
alpha 表示该状态的得分
起始
q
0
=
(
/
,
/
,
0
n
,
0
,
0
)
q_0 = (/,/,0^n,0,0)
q0=(/,/,0n,0,0)
next(q,p) 表示 q 经过短语 p 触发,转移到下一个状态
eq(q,q‘)用来验证两个状态是否相等,只比较前四项值