Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
T
Toy-MT-Introduction
概览
Overview
Details
Activity
Cycle Analytics
版本库
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
问题
0
Issues
0
列表
Board
标记
里程碑
合并请求
0
Merge Requests
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
Snippets
成员
Collapse sidebar
Close sidebar
活动
图像
聊天
创建新问题
作业
提交
Issue Boards
Open sidebar
NiuTrans
Toy-MT-Introduction
Commits
d1cf0c7d
Commit
d1cf0c7d
authored
Apr 15, 2020
by
xiaotong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
updates of section 3
parent
f9b5b4f4
显示空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
101 行增加
和
103 行删除
+101
-103
Book/Chapter3/Chapter3.tex
+43
-44
Book/Chapter3/Figures/figure-expression.tex
+1
-1
Book/Chapter3/Figures/figure-word-alignment&probability-distribution-in-IBM-model-3.tex
+12
-12
Book/mt-book-xelatex.ptc
+45
-46
没有找到文件。
Book/Chapter3/Chapter3.tex
查看文件 @
d1cf0c7d
...
...
@@ -988,36 +988,36 @@ a(i|j,m,l) &=\frac{\sum_{k=0}^{K}c_{\mathbb{E}}(i|j;\mathbf{s}^{[k]},\mathbf{t}^
\begin{figure}
[htp]
\centering
\input
{
./Chapter3/Figures/figure-probability
_
translation
_
process
}
\caption
{
基于产出率的翻译过程
}
\caption
{
基于产出率的翻译
模型执行
过程
}
\label
{
fig:3-29
}
\end{figure}
%---------------------------
\parinterval
对于句对
$
(
\mathbf
{
s
}
,
\mathbf
{
t
}
)
$
,令
$
\varphi
$
表示产出率,同时令
${
\tau
}$
表示每个目标语单词对应的源语言单词列表。图
{
\ref
{
fig:3-29
}}
描述了一个英
语句子生成汉语句子的过程。首先,对于每个英语单词
$
t
_
j
$
决定它的产出率
$
\varphi
_{
j
}$
。比如``Scientists''的产出率是2,可表示为
${
\varphi
}_{
1
}
=
2
$
。这表明它会生成2个汉语单词;其次,确定英语句子中每个单词生成的汉语单词列表。比如``Scientists''生成``科学家''和``们''两个汉语单词,可表示为
${
\tau
}_
1
=
\{
{
\tau
}_{
11
}
=
\textrm
{
``科学家''
}
,
{
\tau
}_{
12
}
=
\textrm
{
``科学家''
}$
。这里用特殊的空标记NULL表示翻译对空的情况;最后,把生成的所有汉语单词放在合适的位置。比如``科学家''和``们''分别放在
$
\mathbf
{
s
}$
的位置1和位置2。可以用符号
$
\pi
$
记录生成的单词在源语言句子
$
\mathbf
{
s
}$
的位置。比如``Scientists''生成的中文单词在
$
\mathbf
{
s
}$
中的位置表示为
${
\pi
}_{
1
}
=
\{
{
\pi
}_{
11
}
=
1
,
{
\pi
}_{
12
}
=
2
\}
$
。
\parinterval
对于句对
$
(
\mathbf
{
s
}
,
\mathbf
{
t
}
)
$
,令
$
\varphi
$
表示产出率,同时令
${
\tau
}$
表示每个目标语单词对应的源语言单词列表。图
{
\ref
{
fig:3-29
}}
描述了一个英
文句子生成中文句子的过程。首先,对于每个英语单词
$
t
_
j
$
决定它的产出率
$
\varphi
_{
j
}$
。比如``Scientists''的产出率是2,可表示为
${
\varphi
}_{
1
}
=
2
$
。这表明它会生成2个中文单词;其次,确定英文句子中每个单词生成的中文单词列表。比如``Scientists''生成``科学家''和``们''两个中文单词,可表示为
${
\tau
}_
1
=
\{
{
\tau
}_{
11
}
=
\textrm
{
``科学家''
}
,
{
\tau
}_{
12
}
=
\textrm
{
``科学家''
}$
。这里用特殊的空标记NULL表示翻译对空的情况;最后,把生成的所有中文单词放在合适的位置。比如``科学家''和``们''分别放在
$
\mathbf
{
s
}$
的位置1和位置2。可以用符号
$
\pi
$
记录生成的单词在源语言句子
$
\mathbf
{
s
}$
中
的位置。比如``Scientists''生成的中文单词在
$
\mathbf
{
s
}$
中的位置表示为
${
\pi
}_{
1
}
=
\{
{
\pi
}_{
11
}
=
1
,
{
\pi
}_{
12
}
=
2
\}
$
。
\parinterval
为了表述清晰,我们重新说明每个符号的含义。
$
\mathbf
{
s
}$
、
$
\mathbf
{
t
}$
、
$
m
$
和
$
l
$
分别表示源语言句子、目标语译文、源语言单词数量以及译文单词数量。
$
\mathbf
{
\varphi
}$
、
$
\mathbf
{
\tau
}$
和
$
\mathbf
{
\pi
}$
分别记录产出率、生成的源语言单词以及它们在源文中的位置。
${
\phi
}_{
j
}$
表示第
$
j
$
个译文单词
$
t
_
j
$
的产出率。
${
\tau
}_{
j
}$
和
${
\pi
}_
j
$
分别表示
$
t
_
j
$
生成的源语言单词列表及其在源语言句子
$
\mathbf
{
s
}$
中的位置列表。
\parinterval
为了表述清晰,我们重新说明每个符号的含义。
$
\mathbf
{
s
}$
、
$
\mathbf
{
t
}$
、
$
m
$
和
$
l
$
分别表示源语言句子、目标语译文、源语言单词数量以及译文单词数量。
$
\mathbf
{
\varphi
}$
、
$
\mathbf
{
\tau
}$
和
$
\mathbf
{
\pi
}$
分别记录产出率、生成的源语言单词以及它们在源文中的位置。
${
\
var
phi
}_{
j
}$
表示第
$
j
$
个译文单词
$
t
_
j
$
的产出率。
${
\tau
}_{
j
}$
和
${
\pi
}_
j
$
分别表示
$
t
_
j
$
生成的源语言单词列表及其在源语言句子
$
\mathbf
{
s
}$
中的位置列表。
%----------------------------------------------
% 图3.5.2
\begin{figure}
[htp]
\centering
\input
{
./Chapter3/Figures/figure-example-of-t-s-generate
}
\caption
{
目标语单词生成源语言单词列表的实例
}
\caption
{
不同
$
\tau
$
和
$
\pi
$
对应相同的源语言句子和词对齐的情况
}
\label
{
fig:3-30
}
\end{figure}
%---------------------------
\parinterval
可以看出,一组
$
\tau
$
和
$
\p
hi
$
(记为
$
<
\tau
,
\phi
>
$
)可以决定一个对齐
$
\mathbf
{
a
}$
和一个源语句子
$
\mathbf
{
s
}$
。相反的,一个对齐
$
\mathbf
{
a
}$
和一个源语句子
$
\mathbf
{
s
}$
可以对应多组
$
<
\tau
,
\phi
>
$
。如图
\ref
{
fig:3-30
}
所示,不同的
$
<
\tau
,
\phi
>
$
对应同一个源语言句子和词对齐。它们的区别在于目标语单词``Scientists''生成的源语言单词``科学家''和``们''的顺序不同。这里把不同的
$
<
\tau
,
\ph
i
>
$
对应到的相同的源语句子
$
\mathbf
{
s
}$
和对齐
$
\mathbf
{
a
}$
记为
$
<
\mathbf
{
s
}
,
\mathbf
{
a
}
>
$
。因此计算
$
\textrm
{
P
}
(
\mathbf
{
s
}
,
\mathbf
{
a
}
|
\mathbf
{
t
}
)
$
时需要把每个可能结果的概率加起来,如下:
\parinterval
可以看出,一组
$
\tau
$
和
$
\p
i
$
(记为
$
<
\tau
,
\pi
>
$
)可以决定一个对齐
$
\mathbf
{
a
}$
和一个源语句子
$
\mathbf
{
s
}$
。相反的,一个对齐
$
\mathbf
{
a
}$
和一个源语句子
$
\mathbf
{
s
}$
可以对应多组
$
<
\tau
,
\pi
>
$
。如图
\ref
{
fig:3-30
}
所示,不同的
$
<
\tau
,
\pi
>
$
对应同一个源语言句子和词对齐。它们的区别在于目标语单词``Scientists''生成的源语言单词``科学家''和``们''的顺序不同。这里把不同的
$
<
\tau
,
\p
i
>
$
对应到的相同的源语句子
$
\mathbf
{
s
}$
和对齐
$
\mathbf
{
a
}$
记为
$
<
\mathbf
{
s
}
,
\mathbf
{
a
}
>
$
。因此计算
$
\textrm
{
P
}
(
\mathbf
{
s
}
,
\mathbf
{
a
}
|
\mathbf
{
t
}
)
$
时需要把每个可能结果的概率加起来,如下:
\begin{equation}
\textrm
{
P
}
(
\mathbf
{
s
}
,
\mathbf
{
a
}
|
\mathbf
{
t
}
)=
\sum
_{{
<
\tau
,
\p
hi
>
}
\in
{
<
\mathbf
{
s
}
,a>
}}{
\textrm
{
P
}
(
\tau
,
\phi
|t
)
}
\textrm
{
P
}
(
\mathbf
{
s
}
,
\mathbf
{
a
}
|
\mathbf
{
t
}
)=
\sum
_{{
<
\tau
,
\p
i
>
}
\in
{
<
\mathbf
{
s
}
,
\mathbf
{
a
}
>
}}{
\textrm
{
P
}
(
\tau
,
\pi
|
\mathbf
{
t
}
)
}
\label
{
eqC3.52-new
}
\end{equation}
\parinterval
不过
$
<
\mathbf
{
s
}
,
\mathbf
{
a
}
>
$
中有多少个元素呢?通过图
\ref
{
fig:3-29
}
中的例子,可以推出
$
<
\mathbf
{
s
}
,
\mathbf
{
a
}
>
$
应该包含
$
\prod
_{
i
=
0
}^{
l
}{
\varphi
!
}$
个不同的二元组
$
<
\tau
,
\pi
>
$
。
这是因为在给定源语言句子和词对齐时,对于每一个
$
\tau
_
i
$
都有
$
\varphi
_{
i
}
!
$
种排列。
\parinterval
不过
$
<
\mathbf
{
s
}
,
\mathbf
{
a
}
>
$
中有多少个元素呢?通过图
\ref
{
fig:3-29
}
中的例子,可以推出
$
<
\mathbf
{
s
}
,
\mathbf
{
a
}
>
$
应该包含
$
\prod
_{
i
=
0
}^{
l
}{
\varphi
_
i
!
}$
个不同的二元组
$
<
\tau
,
\pi
>
$
。
这是因为在给定源语言句子和词对齐时,对于每一个
$
\tau
_
i
$
都有
$
\varphi
_{
i
}
!
$
种排列。
\parinterval
进一步,
$
\textrm
{
P
}
(
\tau
,
\pi
|
\mathbf
{
t
}
)
$
可以被表示
为
:
\parinterval
进一步,
$
\textrm
{
P
}
(
\tau
,
\pi
|
\mathbf
{
t
}
)
$
可以被表示
如图
\ref
{
fig:3-31
}
的形式。其中
$
\tau
_{
j
1
}^{
k
-
1
}$
表示
$
\tau
_{
j
1
}
\tau
_{
j
2
}
\cdots
\tau
_{
j
(
k
-
1
)
}$
,
$
\pi
_{
j
1
}^{
k
-
1
}$
表示
$
\pi
_{
j
1
}
\pi
_{
j
2
}
\cdots
\pi
_{
j
(
k
-
1
)
}$
。可以把图
\ref
{
fig:3-31
}
中的公式分为5个部分,并用不同的序号和颜色进行标注。每部分的具体含义是
:
%----------------------------------------------
% 图3.5.3
\begin{figure}
[htp]
...
...
@@ -1027,15 +1027,13 @@ a(i|j,m,l) &=\frac{\sum_{k=0}^{K}c_{\mathbb{E}}(i|j;\mathbf{s}^{[k]},\mathbf{t}^
\label
{
fig:3-31
}
\end{figure}
\noindent
其中
$
τ
_{
j
1
}^{
k
-
1
}$
表示
$
\tau
_{
j
1
}
\tau
_{
j
2
}
\cdots
\tau
_{
j
(
k
-
1
)
}$
,
$
\pi
_{
j
1
}^{
k
-
1
}$
表示
$
\pi
_{
j
1
}
\pi
_{
j
2
}
\cdots
\pi
_{
j
(
k
-
1
)
}$
。可以把图
\ref
{
fig:3-31
}
中的公式分为5个部分,并用不同的序号和颜色进行标注。每部分的具体含义是:
\begin{itemize}
\item
对每个
$
j
\in
[
1
,l
]
$
的目标语单词的产出率建模
,即
$
\varphi
_
j
$
的概率。它依赖于
$
\mathbf
{
t
}$
和区间
$
[
1
,j
-
1
]
$
的目标语单词的产出率
$
\varphi
_
1
^{
j
-
1
}$
。
\item
$
j
=
0
$
时的产出率建模,即空标记
$
t
_
0
$
的产出率的概率。它依赖于
$
\mathbf
{
t
}$
和区间
$
[
1
,j
-
1
]
$
的目标语单词的产出率
$
\varphi
_
1
^
l
$
。
\item
词汇翻译建模
。
目标语言单词
$
t
_
j
$
生成第
$
k
$
个源语言单词
$
\tau
_{
jk
}$
时的概率,依赖于
$
\mathbf
{
t
}$
、所有目标语言单词的产出率
$
\varphi
_
0
^
l
$
、区间
$
j
\in
[
1
,l
]
$
的目标语言单词生成的源语言单词
$
\tau
_
1
^{
j
-
1
}$
和目标语单词
$
t
_
j
$
生成的前
$
k
$
个源语言单词
$
\tau
_{
j
1
}^{
k
-
1
}$
。
\item
对于每个
$
j
\in
[
1
,l
]
$
的目标语言单词生成的源语言单词的
扭曲度(distortion)建模,即第
$
j
$
个译文单词生成的第
$
k
$
个源语言单词在源文中的位置
$
\pi
_{
jk
}$
的概率。其中
$
\pi
_
1
^{
j
-
1
}$
和
$
\pi
_{
j
1
}^{
k
-
1
}$
分别表示区间
$
[
1
,j
-
1
]
$
的目标语言单词生成的源语言单词的扭曲度和第
$
j
$
译文单词生成的前
$
k
$
个源语言单词的扭曲度。
\item
$
j
=
0
$
时的扭曲度建模
。即空标记
$
t
_
0
$
生成的源语单词在源语言句子中的
位置的概率。
\item
对每个
$
j
\in
[
1
,l
]
$
的目标语单词的产出率建模
(
{
\color
{
red
}
红色
}
),即
$
\varphi
_
j
$
的概率。它依赖于
$
\mathbf
{
t
}$
和区间
$
[
1
,j
-
1
]
$
的目标语单词的产出率
$
\varphi
_
1
^{
j
-
1
}$
。
\footnote
{
这里约定,当
$
j
=
1
$
时,
$
\varphi
_
1
^
0
$
表示一个空
}
\item
$
j
=
0
$
时的产出率建模
(
{
\color
{
ublue
}
蓝色
}
)
,即空标记
$
t
_
0
$
的产出率的概率。它依赖于
$
\mathbf
{
t
}$
和区间
$
[
1
,j
-
1
]
$
的目标语单词的产出率
$
\varphi
_
1
^
l
$
。
\item
词汇翻译建模
(
{
\color
{
ugreen
}
绿色
}
),
目标语言单词
$
t
_
j
$
生成第
$
k
$
个源语言单词
$
\tau
_{
jk
}$
时的概率,依赖于
$
\mathbf
{
t
}$
、所有目标语言单词的产出率
$
\varphi
_
0
^
l
$
、区间
$
j
\in
[
1
,l
]
$
的目标语言单词生成的源语言单词
$
\tau
_
1
^{
j
-
1
}$
和目标语单词
$
t
_
j
$
生成的前
$
k
$
个源语言单词
$
\tau
_{
j
1
}^{
k
-
1
}$
。
\item
对于每个
$
j
\in
[
1
,l
]
$
的目标语言单词生成的源语言单词的
{
\small\bfnew
{
扭曲度
}}
(Distortion)建模(
{
\color
{
yellow!70!black
}
黄色
}
),即第
$
j
$
个译文单词生成的第
$
k
$
个源语言单词在源文中的位置
$
\pi
_{
jk
}$
的概率。其中
$
\pi
_
1
^{
j
-
1
}$
和
$
\pi
_{
j
1
}^{
k
-
1
}$
分别表示区间
$
[
1
,j
-
1
]
$
的目标语言单词生成的源语言单词的扭曲度和第
$
j
$
译文单词生成的前
$
k
$
个源语言单词的扭曲度。
\item
$
j
=
0
$
时的扭曲度建模
(
{
\color
{
gray
}
灰色
}
),即空标记
$
t
_
0
$
生成的源语言单词在源语言句子中
位置的概率。
\end{itemize}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
...
...
@@ -1047,89 +1045,89 @@ a(i|j,m,l) &=\frac{\sum_{k=0}^{K}c_{\mathbb{E}}(i|j;\mathbf{s}^{[k]},\mathbf{t}^
\textrm
{
P
}
(
\tau
_{
jk
}
= s
_
i |
\tau
_{
j1
}^{
k-1
}
,
\tau
_{
1
}^{
j-1
}
,
\varphi
_
0
^
t,
\mathbf
{
t
}
)
&
=
&
t(s
_
i|t
_
j)
\label
{
eqC3.54-new
}
\\
\textrm
{
P
}
(
\pi
_{
jk
}
= i |
\pi
_{
j1
}^{
k-1
}
,
\pi
_{
1
}^{
j-1
}
,
\tau
_{
0
}^{
l
}
,
\varphi
_{
0
}^{
l
}
,
\mathbf
{
t
}
)
&
=
&
d(i|j,m,l)
\label
{
eqC3.55-new
}
\end{eqnarray}
\parinterval
通常把
$
d
(
i|j,m,l
)
$
称为扭曲度。这里
$
\textrm
{
P
}
(
\varphi
_
j|
\varphi
_
1
^{
j
-
1
}
,
\mathbf
{
t
}
)=
{
\textrm
{
P
}
(
\varphi
_
j|t
_
j
)
}$
和
${
\textrm
{
P
}
(
\pi
_{
jk
}
=
i|
\pi
_{
j
1
}^{
k
-
1
}
,
}$
$
\pi
_{
1
}^{
j
-
1
}
,
\tau
_
0
^
l,
\varphi
_
0
^
l,
\mathbf
{
t
}
)=
d
(
i|j,m,l
)
$
仅对
$
1
\le
j
\le
l
$
成立。这样就完成了图
\ref
{
fig:3-31
}
中第1、 3和4部分的建模。
\parinterval
通常把
$
d
(
i|j,m,l
)
$
称为扭曲度
函数
。这里
$
\textrm
{
P
}
(
\varphi
_
j|
\varphi
_
1
^{
j
-
1
}
,
\mathbf
{
t
}
)=
{
\textrm
{
P
}
(
\varphi
_
j|t
_
j
)
}$
和
${
\textrm
{
P
}
(
\pi
_{
jk
}
=
i|
\pi
_{
j
1
}^{
k
-
1
}
,
}$
$
\pi
_{
1
}^{
j
-
1
}
,
\tau
_
0
^
l,
\varphi
_
0
^
l,
\mathbf
{
t
}
)=
d
(
i|j,m,l
)
$
仅对
$
1
\le
j
\le
l
$
成立。这样就完成了图
\ref
{
fig:3-31
}
中第1、 3和4部分的建模。
\parinterval
对于
$
j
=
0
$
的情况需要单独进行考虑。实际上,
$
t
_
0
$
只是一个虚拟的单词。它要对应
$
\mathbf
{
s
}$
中原本为空对齐的单词。这里假设,要等其他非空对应单词都被生成(放置)后,才考虑这些空对齐单词的生成(放置)。即非空对单词都被生成后,在那些还有空的位置上放置这些空对的源语单词。此外,在任何的空位置上放置空对的源语单词都是等概率的,即放置空对齐源语言单词服从均匀分布。这样在已经放置了
$
k
$
个空对齐源语言单词的时候,应该还有
$
\varphi
_
0
-
k
$
个空位置。如果第
$
j
$
个位置为空,那么
$
\textrm
{
P
}
(
\pi
_{
0
k
}
=
j|
\pi
_{
01
}^{
k
-
1
}
,
\pi
_
1
^
l,
\tau
_
0
^
l,
\varphi
_
0
^
l,
\mathbf
{
t
}
)=
\frac
{
1
}{
\varphi
_
0
-
k
}$
,否则
$
\textrm
{
P
}
(
\pi
_{
0
k
}
=
j
|
\pi
_{
01
}^{
k
-
1
}
,
\pi
_
1
^
l,
\tau
_
0
^
l,
\varphi
_
0
^
l,
\mathbf
{
t
}
)=
0
$
。这样对于
$
t
_
0
$
所对应的
$
\tau
_
0
$
,就有
\parinterval
对于
$
j
=
0
$
的情况需要单独进行考虑。实际上,
$
t
_
0
$
只是一个虚拟的单词。它要对应
$
\mathbf
{
s
}$
中原本为空对齐的单词。这里假设,要等其他非空对应单词都被生成(放置)后,才考虑这些空对齐单词的生成(放置)。即非空对单词都被生成后,在那些还有空的位置上放置这些空对的源语单词。此外,在任何的空位置上放置空对的源语单词都是等概率的,即放置空对齐源语言单词服从均匀分布。这样在已经放置了
$
k
$
个空对齐源语言单词的时候,应该还有
$
\varphi
_
0
-
k
$
个空位置。如果第
$
i
$
个位置为空,那么
$
\textrm
{
P
}
(
\pi
_{
0
k
}
=
i|
\pi
_{
01
}^{
k
-
1
}
,
\pi
_
1
^
l,
\tau
_
0
^
l,
\varphi
_
0
^
l,
\mathbf
{
t
}
)=
\frac
{
1
}{
\varphi
_
0
-
k
}$
,否则
$
\textrm
{
P
}
(
\pi
_{
0
k
}
=
i
|
\pi
_{
01
}^{
k
-
1
}
,
\pi
_
1
^
l,
\tau
_
0
^
l,
\varphi
_
0
^
l,
\mathbf
{
t
}
)=
0
$
。这样对于
$
t
_
0
$
所对应的
$
\tau
_
0
$
,就有
{
\begin{eqnarray}
\prod
_{
k=1
}^{
\varphi
_
0
}{
\textrm
{
P
}
(
\pi
_{
0k
}
|
\pi
_{
01
}^{
k-1
}
,
\pi
_{
1
}^{
l
}
,
\tau
_{
0
}^{
l
}
,
\varphi
_{
0
}^{
l
}
,
e
)
}
=
\frac
{
1
}{
\varphi
_{
0
}
!
}
\prod
_{
k=1
}^{
\varphi
_
0
}{
\textrm
{
P
}
(
\pi
_{
0k
}
|
\pi
_{
01
}^{
k-1
}
,
\pi
_{
1
}^{
l
}
,
\tau
_{
0
}^{
l
}
,
\varphi
_{
0
}^{
l
}
,
\mathbf
{
t
}
)
}
=
\frac
{
1
}{
\varphi
_{
0
}
!
}
\label
{
eqC3.56-new
}
\end{eqnarray}
}
\parinterval
而上面提到的
这些
$
t
_
0
$
所对应的空位置是如何生成的呢?即如何确定哪些位置是要放置空对齐的源语言单词。在IBM模型3中,假设在所有的非空对源语单词都被生成出来后(共
$
\varphi
_
1
+
\varphi
_
2
+
\cdots
{
\varphi
}_
l
$
个非空对源语单词),这些单词后面都以
$
p
_
1
$
概率随机地产生一个``槽''用来放置空对
单词。这样,
${
\varphi
}_
0
$
就服从了一个二项分布。于是得到
\parinterval
而上面提到的
$
t
_
0
$
所对应的这些空位置是如何生成的呢?即如何确定哪些位置是要放置空对齐的源语言单词。在IBM模型3中,假设在所有的非空对齐源语言单词都被生成出来后(共
$
\varphi
_
1
+
\varphi
_
2
+
\cdots
{
\varphi
}_
l
$
个非空对源语单词),这些单词后面都以
$
p
_
1
$
概率随机地产生一个``槽''用来放置空对齐
单词。这样,
${
\varphi
}_
0
$
就服从了一个二项分布。于是得到
{
\begin{eqnarray}
\textrm
{
P
}
(
\varphi
_
0|
\mathbf
{
t
}
)=(
\begin{array}
{
c
}
\varphi
_
1+
\varphi
_
2+
\cdots
\varphi
_
l
\\
\varphi
_
0
\\
\end{array}
)p
_
0
^{
\varphi
_
1+
\varphi
_
2+
\cdots
\varphi
_
l
+
\varphi
_
0
}
p
_
1
^{
\varphi
_
0
}
\end{array}
)p
_
0
^{
\varphi
_
1+
\varphi
_
2+
\cdots
\varphi
_
l
-
\varphi
_
0
}
p
_
1
^{
\varphi
_
0
}
\label
{
eqC3.57-new
}
\end{eqnarray}
}
\noindent
其中,式
\ref
{
eqC3.57-new
}
中
$
p
_
0
+
p
_
1
=
1
$
。到此为止,我们完成了
公式
\ref
{
eqC3.57-new
}
中第2和5部分的建模。最终根据这些假设可以得到
$
\textrm
{
P
}
(
\mathbf
{
s
}
|
\mathbf
{
t
}
)
$
的形式:
\noindent
其中,式
\ref
{
eqC3.57-new
}
中
$
p
_
0
+
p
_
1
=
1
$
。到此为止,我们完成了
图
\ref
{
fig:3-31
}
中第2和5部分的建模。最终根据这些假设可以得到
$
\textrm
{
P
}
(
\mathbf
{
s
}
|
\mathbf
{
t
}
)
$
的形式:
{
\begin{eqnarray}
{
\textrm
{
P
}
(
\mathbf
{
s
}
|
\mathbf
{
t
}
)
}&
=
&{
\sum
_{
a
_
1=0
}^{
l
}{
\cdots
}
\sum
_{
a
_
m=0
}^{
l
}{
(
\begin{array}
{
c
}
{
\textrm
{
P
}
(
\mathbf
{
s
}
|
\mathbf
{
t
}
)
}&
=
&{
\sum
_{
a
_
1=0
}^{
l
}{
\cdots
}
\sum
_{
a
_
m=0
}^{
l
}{
\Big
[
(
\begin{array}
{
c
}
m-
\varphi
_
0
\\
\varphi
_
0
\\
\end{array}
)
}
p
_
0
^{
m-2
\varphi
_
0
}
p
_
1
^{
\varphi
_
0
}
\prod
_{
j=1
}^{
l
}{{
\varphi
_
j
}
!n(
\varphi
_
j|
e
_
j)
}}
\nonumber
\\
&
&
\times
{
\prod
_{
i=1
}^{
m
}{
t(s
_
i|t
_{
s
_{
a
_
i
}}
)
}
\prod
_{
i=1,a
_
i
\neq
0
}{
d(i|a
_
i,m,l)
}}
\end{array}
)
}
p
_
0
^{
m-2
\varphi
_
0
}
p
_
1
^{
\varphi
_
0
}
\prod
_{
j=1
}^{
l
}{{
\varphi
_
j
}
!n(
\varphi
_
j|
t
_
j)
}}
\nonumber
\\
&
&
\times
{
\prod
_{
i=1
}^{
m
}{
t(s
_
i|t
_{
a
_
i
}
)
}
\times
\prod
_{
i=1,a
_
i
\neq
0
}{
d(i|a
_
i,m,l)
}}
\Big
]
\label
{
eqC3.58-new
}
\end{eqnarray}
}
\noindent
其中,
$
n
(
\varphi
_
j |
e
_
j
)=
{
\textrm
{
P
}
(
\varphi
_
j|t
_
j
)
}$
表示产出率的分布。这里的约束条件为,
\noindent
其中,
$
n
(
\varphi
_
j |
t
_
j
)=
{
\textrm
{
P
}
(
\varphi
_
j|t
_
j
)
}$
表示产出率的分布。这里的约束条件为,
{
\begin{eqnarray}
\sum
_{
f
}
\mathbf
{
t
}
(
\mathbf
{
s
}
|
\mathbf
{
t
}
)
&
=
&
1
\label
{
eqC3.59-new
}
\\
\sum
_{
s
}
t(s|t
)
&
=
&
1
\label
{
eqC3.59-new
}
\\
\sum
_{
i
}
d(i|j,m,l)
&
=
&
1
\label
{
eqC3.60-new
}
\\
\sum
_{
\varphi
}
n(
\varphi
|
\mathbf
{
t
}
)
&
=
&
1
\label
{
eqC3.61-new
}
\\
\sum
_{
\varphi
}
n(
\varphi
|
t
)
&
=
&
1
\label
{
eqC3.61-new
}
\\
p
_
0+p
_
1
&
=
&
1
\label
{
eqC3.62-new
}
\end{eqnarray}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection
{
IBM 模型4
}
\index
{
Chapter3.5.3
}
\parinterval
IBM模型3仍然存在问题,比如
不能很好的处理一个目标语言单词生成多个源语言单词的情况。这个问题在模型1和模型2中也存在。如果一个目标语言单词对应多个源语言单词,往往这些源语言单词构成短语或搭配。但是模型1-3都把这些源语单词看成独立的单元,而实际上它们应该被看成一个翻译的整体。这就造成了在模型1-3中,这些源语言单词可能``分散''开。为了解决这个问题,模型4对模型3进行了进一步修改
。
\parinterval
IBM模型3仍然存在问题,比如
,它不能很好的处理一个目标语言单词生成多个源语言单词的情况。这个问题在模型1和模型2中也存在。如果一个目标语言单词对应多个源语言单词,往往这些源语言单词构成短语或搭配。但是模型1-3把这些源语言单词看成独立的单元,而实际上它们是一个整体。这就造成了在模型1-3中这些源语言单词可能会``分散''开。为了解决这个问题,模型4对模型3进行了进一步修正
。
\parinterval
为了更清楚的阐述,这里引入新的术语
\ \dash
\
概念单元。词对齐又可以被看作概念(concept,简记为cept.)之间的对应。这里的概念是指具有独立语法或语义功能的一组单词。依照Brown等人的表示方法,可以把概念记为cept.。每个句子都可以被表示成一系列的cept.。这里要注意的是,源语言句子中的cept.数量不一定等于目标句子中的cept.数量。因为有些cept.可以为空,因此可以把那些空对的单词看作空cept.。比如,在图
\ref
{
fig:3-32
}
的实例中,``了''就是(对应)
一个空cept.。
\parinterval
为了更清楚的阐述,这里引入新的术语
\ \dash
\
{
\small\bfnew
{
概念单元
}}
或
{
\small\bfnew
{
概念
}}
(Concept)。词对齐可以被看作概念之间的对应。这里的概念是指具有独立语法或语义功能的一组单词。依照Brown等人的表示方法
\cite
{
brown1993mathematics
}
,可以把概念记为cept.。每个句子都可以被表示成一系列的cept.。这里要注意的是,源语言句子中的cept.数量不一定等于目标句子中的cept.数量。因为有些cept. 可以为空,因此可以把那些空对的单词看作空cept.。比如,在图
\ref
{
fig:3-32
}
的实例中,``了''就对应
一个空cept.。
%----------------------------------------------
% 图3.6.1
\begin{figure}
[htp]
\centering
\input
{
./Chapter3/Figures/figure-word-alignment
}
\caption
{
汉译英句对及词对齐
}
\caption
{
词对齐的汉译英句对及独立单词cept.的位置
}
\label
{
fig:3-32
}
\end{figure}
%---------------------------
\parinterval
在IBM模型的词对齐框架下,目标语的cept.只能是那些非空对
的目标语单词,而且每个cept.只能由一个目标语单词组成(通常把这类由一个单词组成的cept.称为独立单词cept.)。这里用
$
[
j
]
$
表示第
$
j
$
个独立单词cept.在目标语言句子中的位置。换句话说,
$
[
j
]
$
表示第
$
j
$
个非空对的目标语单词在目标语言句子中
的位置。比如在本例中``mind''在
$
\mathbf
{
t
}$
中的位置表示为
$
[
3
]
$
。
\parinterval
在IBM模型的词对齐框架下,目标语的cept.只能是那些非空对
齐的目标语单词,而且每个cept.只能由一个目标语单词组成(通常把这类由一个单词组成的cept.称为独立单词cept.)。这里用
$
[
j
]
$
表示第
$
j
$
个独立单词cept.在目标语言句子中的位置。换句话说,
$
[
j
]
$
表示第
$
j
$
个非空对的目标语单词
的位置。比如在本例中``mind''在
$
\mathbf
{
t
}$
中的位置表示为
$
[
3
]
$
。
\parinterval
另外,可以用
$
\odot
_{
[
j
]
}$
表示位置为
$
[
j
]
$
的目标语言单词对应的那些源语言单词
的位置的独立单词cept.
平均值,如果这个平均值不是整数则对它向上取整。比如在本例中,目标语句中第4个cept. (``.'')对应在源语言句子中的第5个输出值。可表示为
${
\odot
}_{
[
4
]
}
=
5
$
。
\parinterval
另外,可以用
$
\odot
_{
[
j
]
}$
表示位置为
$
[
j
]
$
的目标语言单词对应的那些源语言单词
位置的
平均值,如果这个平均值不是整数则对它向上取整。比如在本例中,目标语句中第4个cept. (``.'')对应在源语言句子中的第5个输出值。可表示为
${
\odot
}_{
[
4
]
}
=
5
$
。
\parinterval
利用这些新引进的概念,模型4对模型3的扭曲度进行了修改。主要是把扭曲度分解为两类参数。对于
$
[
j
]
$
对应的源语言单词列表(
$
\tau
_{
[
j
]
}$
)中的第一个单词(
$
\tau
_{
[
j
]
1
}$
),它的扭曲度用如下
等
式计算:
\parinterval
利用这些新引进的概念,模型4对模型3的扭曲度进行了修改。主要是把扭曲度分解为两类参数。对于
$
[
j
]
$
对应的源语言单词列表(
$
\tau
_{
[
j
]
}$
)中的第一个单词(
$
\tau
_{
[
j
]
1
}$
),它的扭曲度用如下
公
式计算:
\begin{equation}
\textrm
{
P
}
(
\pi
_{
[j]1
}
=i|
{
\pi
}_
1
^{
[j]-1
}
,
{
\tau
}_
0
^
l,
{
\varphi
}_
0
^
l,
\mathbf
{
t
}
)=d
_{
1
}
(i-
{
\odot
}_{
[j]
}
|A(
e
_{
[j-1]
}
),B(f
_
i))
\textrm
{
P
}
(
\pi
_{
[j]1
}
=i|
{
\pi
}_
1
^{
[j]-1
}
,
{
\tau
}_
0
^
l,
{
\varphi
}_
0
^
l,
\mathbf
{
t
}
)=d
_{
1
}
(i-
{
\odot
}_{
[j]
}
|A(
t
_{
[j-1]
}
),B(s
_
i))
\label
{
eqC3.63-new
}
\end{equation}
\noindent
其中,译文的第
$
j
$
个单词生成的第
$
k
$
个源语单词在源语言句子中的位置用变量
$
\pi
_{
jk
}$
表示
,
$
\pi
_{
jk
}$
表示它的观测值。而对于列表(
$
\tau
_{
[
j
]
}$
)中的其他的单词(
$
\tau
_{
[
j
]
k
}
,
1
<k<
\varphi
[
j
]
$
)的扭曲度计算,进行如下计算
\noindent
其中,译文的第
$
j
$
个单词生成的第
$
k
$
个源语单词在源语言句子中的位置用变量
$
\pi
_{
jk
}$
表示
。而对于列表(
$
\tau
_{
[
j
]
}$
)中的其他的单词(
$
\tau
_{
[
j
]
k
}
,
1
< k
\le
\varphi
[
j
]
$
)的扭曲度计算,进行如下计算
\begin{equation}
\textrm
{
P
}
(
\pi
_{
[j]k
}
=i|
{
\pi
}_{
[j]1
}^{
k-1
}
,
\pi
_
1
^{
[j]-1
}
,
\tau
_
0
^
l,
\varphi
_
0
^
l,
t)=d
_{
>1
}
(i-
\pi
_{
[j]k-1
}
|B(f
_
i))
\textrm
{
P
}
(
\pi
_{
[j]k
}
=i|
{
\pi
}_{
[j]1
}^{
k-1
}
,
\pi
_
1
^{
[j]-1
}
,
\tau
_
0
^
l,
\varphi
_
0
^
l,
\mathbf
{
t
}
)=d
_{
>1
}
(i-
\pi
_{
[j]k-1
}
|B(s
_
i))
\label
{
eqC3.64-new
}
\end{equation}
\parinterval
这里的函数
$
A
(
\cdot
)
$
和函数
$
B
(
\cdot
)
$
分别把目标语言和源语言的单词影射到单词的词类。这么做的目的一方面要减小参数空间的大小,另一方面是要减小数据的稀疏程度。词类信息通常可以通过外部工具得到,比如Brown聚类等。
不过,这里并不会讨论词聚类算法。这里可以也提供一种简单的方法,那就
把单词直接映射为它的词性即可。这样可以直接用现在已经非常成熟的词性标注工具解决问题。
\parinterval
这里的函数
$
A
(
\cdot
)
$
和函数
$
B
(
\cdot
)
$
分别把目标语言和源语言的单词影射到单词的词类。这么做的目的一方面要减小参数空间的大小,另一方面是要减小数据的稀疏程度。词类信息通常可以通过外部工具得到,比如Brown聚类等。
另一种一种简单的方法是
把单词直接映射为它的词性即可。这样可以直接用现在已经非常成熟的词性标注工具解决问题。
\parinterval
从上面改进的扭曲度模型可以看出,对于
$
t
_{
[
j
]
}$
生成的第一个源语言单词,要考虑中心
$
\odot
_{
[
j
]
}$
和这个源语言单词之间的绝对距离。实际上也就要把
$
t
_{
[
j
]
}$
生成的所有源语言单词看成一个整体并把它放置在合适的位置。这个过程要依据第一个源语言单词的位置
$
i
$
及其词类,和前一个非空对目标语言单词
$
t
_{
[
j
-
1
]
}$
的词类。而对于
$
t
[
j
]
$
生成的其他源语言单词,只需要考虑它与前一个刚放置完的源语言单词的相对位置和这个源语言单词的词类。
\parinterval
实际上,上述过程就要先用
$
t
_{
[
j
]
}$
生成的第一个源语言单词代表整个
$
t
_{
[
j
]
}$
生成的单词列表,并把第一个源语言单词放置在合适的位置。然后,
把列表中的其他单词放置在相对于前一个刚生成的源语言单词
合适的地方。这样就可以在一定程度上保证由同一个目标语言单词生成的源语言单词之间可以相互影响,达到了改进的目的。
\parinterval
实际上,上述过程就要先用
$
t
_{
[
j
]
}$
生成的第一个源语言单词代表整个
$
t
_{
[
j
]
}$
生成的单词列表,并把第一个源语言单词放置在合适的位置。然后,
相对于前一个刚生成的源语言单词,把列表中的其他单词放置在
合适的地方。这样就可以在一定程度上保证由同一个目标语言单词生成的源语言单词之间可以相互影响,达到了改进的目的。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection
{
IBM 模型5
}
\index
{
Chapter3.5.4
}
\parinterval
模型3和模型4并不是``准确''的模型。这两个模型会把一部分概率分配给一些根本就不存在的句子。这个问题被称作IBM模型3和模型4的
缺陷(Deficiency)。说的具体一些,模型3和模型4中并没有这样的约束:如果已经放置了某个源语言单词的位置不能再放置其他单词,也就是说句子的任何位置只能放置一个词,不能多也不能少。由于缺乏这个约束,模型3和模型4中在所有合法的词对齐上概率和不等于1。这部分缺失的概率被分配到其他不合法的词对齐上。举例来说,如图
\ref
{
fig:3-33
}
所示,``吃 早饭''和``Have breakfast''之间的合法词对齐用直线表示 。但是在模型3和模型4中, 在它们上的概率和为
$
0
.
9
<
1
$
。损失掉的概率被分配到像5和6这样的对齐上了(红色)。虽然IBM模型并不支持一对多的对齐,但是模型3和模型4把概率分配给这些``不合法''的词对齐上,因此也就产生所谓的d
eficiency问题。
\parinterval
模型3和模型4并不是``准确''的模型。这两个模型会把一部分概率分配给一些根本就不存在的句子。这个问题被称作IBM模型3和模型4的
{
\small\bfnew
{
缺陷
}}
(Deficiency)。说的具体一些,模型3和模型4 中并没有这样的约束:如果已经放置了某个源语言单词的位置不能再放置其他单词,也就是说句子的任何位置只能放置一个词,不能多也不能少。由于缺乏这个约束,模型3和模型4中在所有合法的词对齐上概率和不等于1。 这部分缺失的概率被分配到其他不合法的词对齐上。举例来说,如图
\ref
{
fig:3-33
}
所示,``吃 早饭''和``Have breakfast''之间的合法词对齐用直线表示 。但是在模型3和模型4中, 在它们上的概率和为
$
0
.
9
<
1
$
。 损失掉的概率被分配到像5和6这样的对齐上了(红色)。虽然IBM模型并不支持一对多的对齐,但是模型3和模型4把概率分配给这些``不合法''的词对齐上,因此也就产生所谓的D
eficiency问题。
%----------------------------------------------
% 图3.5.4
...
...
@@ -1142,21 +1140,22 @@ p_0+p_1 & = & 1 \label{eqC3.62-new}
\end{figure}
%-------------------------------------------
\parinterval
为了解决这个问题,模型5在模型中增加了额外的约束。基本想法是,在放置一个源语言单词的时候检查要放置的位置是否已经放置了单词,如果可以则把这个放置过程赋予一定的概率,否则把它作为不可能事件。依据这个想法,就需要在逐个放置源语言单词的时候判断源语言句子的哪些位置为空。这里引入一个变量
$
v
(
i,
{
\tau
_
1
}^{
[
j
]-
1
}
,
\tau
_{
[
i
]
1
}^{
k
-
1
}
)
$
,它表示在放置
$
\tau
_{
[
i
]
k
}$
之前(
$
\tau
_
1
^{
[
j
]-
1
}$
和
$
\tau
_{
[
i
]
1
}^{
k
-
1
}$
已经被放置完了),从源语言句子的第一个位置到位置
$
i
$
(包含
$
i
$
)为止还有多少个空位置。这里,把这个变量简写为
$
v
_
j
$
。于是,对于
$
[
j
]
$
所对应的源语言单词列表(
$
\tau
_{
[
j
]
}$
)中的第一个单词(
$
\tau
_{
[
j
]
1
}$
),有:
\parinterval
为了解决这个问题,模型5在模型中增加了额外的约束。基本想法是,在放置一个源语言单词的时候检查这个位置是否已经放置了单词,如果可以则把这个放置过程赋予一定的概率,否则把它作为不可能事件。依据这个想法,就需要在逐个放置源语言单词的时候判断源语言句子的哪些位置为空。这里引入一个变量
$
v
(
i,
{
\tau
_
1
}^{
[
j
]-
1
}
,
\tau
_{
[
j
]
1
}^{
k
-
1
}
)
$
,它表示在放置
$
\tau
_{
[
j
]
k
}$
之前(
$
\tau
_
1
^{
[
j
]-
1
}$
和
$
\tau
_{
[
j
]
1
}^{
k
-
1
}$
已经被放置完了),从源语言句子的第一个位置到位置
$
i
$
(包含
$
i
$
)为止还有多少个空位置。这里,把这个变量简写为
$
v
_
i
$
。于是,对于
$
[
j
]
$
所对应的源语言单词列表(
$
\tau
_{
[
j
]
}$
)中的第一个单词(
$
\tau
_{
[
j
]
1
}$
),有:
\begin{eqnarray}
\textrm
{
P
}
(
\pi
_{
[j]1
}
= i |
\pi
_
1
^{
[j]-1
}
,
\tau
_
0
^
l,
\varphi
_
0
^
l,
\mathbf
{
t
}
)
&
=
&
d
_
1(v
_
i|B(
f
_
i),
\odot
_{
v
_{
j-1
}}
, v
_
m-(
\varphi
_{
[j]
}
-1))
\cdot
\nonumber
\\
\textrm
{
P
}
(
\pi
_{
[j]1
}
= i |
\pi
_
1
^{
[j]-1
}
,
\tau
_
0
^
l,
\varphi
_
0
^
l,
\mathbf
{
t
}
)
&
=
&
d
_
1(v
_
i|B(
s
_
i),
\odot
_{
v
_{
j-1
}}
, v
_
m-(
\varphi
_{
[j]
}
-1))
\cdot
\nonumber
\\
&
&
(1-
\delta
(v
_
i,v
_{
i-1
}
))
\label
{
eqC3.65-new
}
\end{eqnarray}
\parinterval
对于其他单词(
$
\tau
_{
[
j
]
k
}$
,
$
1
<k
\leqslant\varphi
_{
[
j
]
}$
),有
\parinterval
对于其他单词(
$
\tau
_{
[
j
]
k
}$
,
$
1
< k
\le\varphi
_{
[
j
]
}$
),有:
\begin{eqnarray}
&
&
\textrm
{
P
}
(
\pi
_{
[j]k
}
=i|
\pi
_{
[j]1
}^{
k-1
}
,
\pi
_
1
^{
[j]-1
}
,
\tau
_
0
^
l,
\varphi
_
0
^
l,
\mathbf
{
t
}
)
\nonumber
\\
&
=
&
d
_{
>1
}
(v
_
i-v
_{
\pi
_{
[j]k-1
}}
|B(
f
_
i), v
_
m-v
_{
\pi
_{
[j]k-1
}}
-
\varphi
_{
[j]
}
+k)
\cdot
(1-
\delta
(v
_
i,v
_{
i-1
}
))
&
=
&
d
_{
>1
}
(v
_
i-v
_{
\pi
_{
[j]k-1
}}
|B(
s
_
i), v
_
m-v
_{
\pi
_{
[j]k-1
}}
-
\varphi
_{
[j]
}
+k)
\cdot
(1-
\delta
(v
_
i,v
_{
i-1
}
))
\label
{
eqC3.66-new
}
\end{eqnarray}
\
parinterval
这里,因子
$
1
-
\delta
(
v
_
i, v
_{
i
-
1
}
)
$
是用来判断第
$
i
$
个位置是不是为空。如果第
$
i
$
个位置为空则
$
v
_
i
=
v
_{
i
-
1
}$
,这样
$
\textrm
{
P
}
(
\pi
_{
[
j
]
1
}
=
i|
\pi
_
1
^{
[
j
]-
1
}
,
\tau
_
0
^
l,
\varphi
_
0
^
l,
\mathbf
{
t
}
)
=
0
$
。这样就从模型上避免了模型3和模型4中生成不存在的字符串的问题。这里还要注意的是,对于放置第一个单词的情况,影响放置的因素有
$
v
_
i
$
,
$
B
(
f
_
i
)
$
和
$
v
_{
i
-
1
}$
。此外还要考虑在
$
i
$
位置放置了第一个单词以后它的右边是不是还有足够的位置留给剩下的
$
k
-
1
$
个单词。参数
$
v
_
m
-
\varphi
_{
[
j
]
}
+
1
$
就是为了考虑这个因素,这里
$
v
_
m
$
表示整个源语言言句子中还有多少空位置,
$
\varphi
_{
[
j
]
}
-
1
$
表示
$
i
$
位置右边至少还要留出的空格数。对于放置非第一个单词的情况,主要是要考虑它和前一个放置位置的相对位置。这主要体现在参数
$
v
_
i
-
v
_{
\varphi
_{
[
j
]
}
k
-
1
}$
上。式4.99
的其他部分都可以用上面的理论解释,这里不再赘述。
\
noindent
这里,因子
$
1
-
\delta
(
v
_
i, v
_{
i
-
1
}
)
$
是用来判断第
$
i
$
个位置是不是为空。如果第
$
i
$
个位置为空则
$
v
_
i
=
v
_{
i
-
1
}$
,这样
$
\textrm
{
P
}
(
\pi
_{
[
j
]
1
}
=
i|
\pi
_
1
^{
[
j
]-
1
}
,
\tau
_
0
^
l,
\varphi
_
0
^
l,
\mathbf
{
t
}
)
=
0
$
。这样就从模型上避免了模型3和模型4中生成不存在的字符串的问题。这里还要注意的是,对于放置第一个单词的情况,影响放置的因素有
$
v
_
i
$
,
$
B
(
s
_
i
)
$
和
$
v
_{
i
-
1
}$
。此外还要考虑在
$
i
$
位置放置了第一个单词以后它的右边是不是还有足够的位置留给剩下的
$
k
-
1
$
个单词。参数
$
v
_
m
-(
\varphi
_{
[
j
]
}
-
1
)
$
正是为了考虑这个因素,这里
$
v
_
m
$
表示整个源语言言句子中还有多少空位置,
$
\varphi
_{
[
j
]
}
-
1
$
表示
$
i
$
位置右边至少还要留出的空格数。对于放置非第一个单词的情况,主要是要考虑它和前一个放置位置的相对位置。这主要体现在参数
$
v
_
i
-
v
_{
\varphi
_{
[
j
]
}
k
-
1
}$
上。式
\ref
{
eqC3.66-new
}
的其他部分都可以用上面的理论解释,这里不再赘述。
\parinterval
实际上,模型5和模型4的思想基本一致,即,先确定
$
\tau
_{
[
j
]
1
}$
的绝对位置,然后再确定
$
\tau
_{
[
j
]
}$
中剩余单词的相对位置。模型5消除了产生不存在的句子的可能性,不过模型5的复杂性也大大增加了。
...
...
Book/Chapter3/Figures/figure-expression.tex
查看文件 @
d1cf0c7d
...
...
@@ -12,7 +12,7 @@
\node
[anchor=west,inner sep=2pt,minimum height=2.5em] (eq1) at (0,0)
{${
\textrm
{
P
}
(
\tau
,
\pi
|
\mathbf
{
t
}
)
=
\prod
_{
j
=
0
}^{
l
}{
\textrm
{
P
}
(
\varphi
_
j|
\varphi
_{
1
}^{
j
-
1
}
,
\mathbf
{
t
}
)
}
\times
{
\textrm
{
P
}
(
\varphi
_
0
|
\varphi
_{
1
}^{
l
}
,
\mathbf
{
t
}
)
}
\times
}$}
;
\node
[anchor=west,inner sep=2pt,minimum height=2.5em] (eq1) at (0,0)
{${
\textrm
{
P
}
(
\tau
,
\pi
|
\mathbf
{
t
}
)
=
\prod
_{
j
=
1
}^{
l
}{
\textrm
{
P
}
(
\varphi
_
j|
\varphi
_{
1
}^{
j
-
1
}
,
\mathbf
{
t
}
)
}
\times
{
\textrm
{
P
}
(
\varphi
_
0
|
\varphi
_{
1
}^{
l
}
,
\mathbf
{
t
}
)
}
\times
}$}
;
\node
[anchor=north west,inner sep=2pt,minimum height=2.5em] (eq2) at ([xshift=-15.06em,yshift=0.0em]eq1.south east)
{${
\prod
_{
j
=
0
}^
l
{
\prod
_{
k
=
1
}^{
\varphi
_
j
}{
\textrm
{
P
}
(
\tau
_{
jk
}
|
\tau
_{
j
1
}^{
k
-
1
}
,
\tau
_{
1
}^{
j
-
1
}
,
\varphi
_{
0
}^{
l
}
,
\mathbf
{
t
}
)
}}
\times
}$}
;
\node
[anchor=north west,inner sep=2pt,minimum height=2.5em] (eq3) at ([xshift=-15.56em,yshift=0.0em]eq2.south east)
{${
\prod
_{
j
=
1
}^
l
{
\prod
_{
k
=
1
}^{
\varphi
_
j
}{
\textrm
{
P
}
(
\pi
_{
jk
}
|
\pi
_{
j
1
}^{
k
-
1
}
,
\pi
_{
1
}^{
j
-
1
}
,
\tau
_{
0
}^{
l
}
,
\varphi
_{
0
}^{
l
}
,
\mathbf
{
t
}
)
}}
\times
}$}
;
\node
[anchor=north west,inner sep=2pt,minimum height=2.5em] (eq4) at ([xshift=-17.10em,yshift=0.0em]eq3.south east)
{{${
\prod
_{
k
=
1
}^{
\varphi
_
0
}{
\textrm
{
P
}
(
\pi
_{
0
k
}
|
\pi
_{
01
}^{
k
-
1
}
,
\pi
_{
1
}^{
l
}
,
\tau
_{
0
}^{
l
}
,
\varphi
_{
0
}^{
l
}
,
\mathbf
{
t
}
)
}}$}}
;
...
...
Book/Chapter3/Figures/figure-word-alignment&probability-distribution-in-IBM-model-3.tex
查看文件 @
d1cf0c7d
...
...
@@ -15,8 +15,8 @@
\node
[anchor=west] (eq2) at ([xshift=3.0em,yshift=0.0em]eq1.east)
{
早饭
}
;
\node
[anchor=north] (eq3) at ([xshift=0.0em,yshift=-2.0em]eq1.south)
{
Have
}
;
\node
[anchor=north] (eq4) at ([xshift=0.0em,yshift=-2.0em]eq2.south)
{
breakfast
}
;
\node
[anchor=east] (eq5) at ([xshift=-1.0em,yshift=-1.8em]eq1.west)
{$
a
_{
1
}$}
;
\node
[anchor=west] (eq6) at ([xshift=1.0em,yshift=-1.8em]eq2.east)
{$
\textrm
{
P
}
(
\mathbf
{
s
}
,
a
_{
1
}
|
\mathbf
{
t
}
)=
0
.
5
$}
;
\node
[anchor=east] (eq5) at ([xshift=-1.0em,yshift=-1.8em]eq1.west)
{$
\mathbf
{
a
}
_{
1
}$}
;
\node
[anchor=west] (eq6) at ([xshift=1.0em,yshift=-1.8em]eq2.east)
{$
\textrm
{
P
}
(
\mathbf
{
s
}
,
\mathbf
{
a
}
_{
1
}
|
\mathbf
{
t
}
)=
0
.
5
$}
;
\draw
[-,very thick](eq1.south) -- (eq3.north);
\draw
[-,very thick](eq2.south) -- (eq4.north);
\node
[anchor=west] (eq7) at ([xshift=13.1em,yshift=1.4em]eq2.east)
{}
;
...
...
@@ -34,8 +34,8 @@
\node
[anchor=west] (eq2) at ([xshift=3.0em,yshift=0.0em]eq1.east)
{
早饭
}
;
\node
[anchor=north] (eq3) at ([xshift=0.0em,yshift=-2.0em]eq1.south)
{
Have
}
;
\node
[anchor=north] (eq4) at ([xshift=0.0em,yshift=-2.0em]eq2.south)
{
breakfast
}
;
\node
[anchor=east] (eq5) at ([xshift=-1.0em,yshift=-1.8em]eq1.west)
{$
a
_{
2
}$}
;
\node
[anchor=west] (eq6) at ([xshift=1.0em,yshift=-1.8em]eq2.east)
{$
\textrm
{
P
}
(
\mathbf
{
s
}
,
a
_{
2
}
|
\mathbf
{
t
}
)=
0
.
1
$}
;
\node
[anchor=east] (eq5) at ([xshift=-1.0em,yshift=-1.8em]eq1.west)
{$
\mathbf
{
a
}
_{
2
}$}
;
\node
[anchor=west] (eq6) at ([xshift=1.0em,yshift=-1.8em]eq2.east)
{$
\textrm
{
P
}
(
\mathbf
{
s
}
,
\mathbf
{
a
}
_{
2
}
|
\mathbf
{
t
}
)=
0
.
1
$}
;
\draw
[-,very thick](eq1.south) -- (eq4.north);
\draw
[-,very thick](eq2.south) -- (eq3.north);
\end{scope}
...
...
@@ -45,8 +45,8 @@
\node
[anchor=west] (eq2) at ([xshift=3.0em,yshift=0.0em]eq1.east)
{
早饭
}
;
\node
[anchor=north] (eq3) at ([xshift=0.0em,yshift=-2.0em]eq1.south)
{
Have
}
;
\node
[anchor=north] (eq4) at ([xshift=0.0em,yshift=-2.0em]eq2.south)
{
breakfast
}
;
\node
[anchor=east] (eq5) at ([xshift=-1.0em,yshift=-1.8em]eq1.west)
{$
a
_{
3
}$}
;
\node
[anchor=west] (eq6) at ([xshift=1.0em,yshift=-1.8em]eq2.east)
{$
\textrm
{
P
}
(
\mathbf
{
s
}
,
a
_{
3
}
|
\mathbf
{
t
}
)=
0
.
1
$}
;
\node
[anchor=east] (eq5) at ([xshift=-1.0em,yshift=-1.8em]eq1.west)
{$
\mathbf
{
a
}
_{
3
}$}
;
\node
[anchor=west] (eq6) at ([xshift=1.0em,yshift=-1.8em]eq2.east)
{$
\textrm
{
P
}
(
\mathbf
{
s
}
,
\mathbf
{
a
}
_{
3
}
|
\mathbf
{
t
}
)=
0
.
1
$}
;
\draw
[-,very thick](eq1.south) -- (eq3.north);
\draw
[-,very thick](eq2.south) -- (eq3.north);
\end{scope}
...
...
@@ -56,8 +56,8 @@
\node
[anchor=west] (eq2) at ([xshift=3.0em,yshift=0.0em]eq1.east)
{
早饭
}
;
\node
[anchor=north] (eq3) at ([xshift=0.0em,yshift=-2.0em]eq1.south)
{
Have
}
;
\node
[anchor=north] (eq4) at ([xshift=0.0em,yshift=-2.0em]eq2.south)
{
breakfast
}
;
\node
[anchor=east] (eq5) at ([xshift=-1.0em,yshift=-1.8em]eq1.west)
{$
a
_{
4
}$}
;
\node
[anchor=west] (eq6) at ([xshift=1.0em,yshift=-1.8em]eq2.east)
{$
\textrm
{
P
}
(
\mathbf
{
s
}
,
a
_{
4
}
|
\mathbf
{
t
}
)=
0
.
1
$}
;
\node
[anchor=east] (eq5) at ([xshift=-1.0em,yshift=-1.8em]eq1.west)
{$
\mathbf
{
a
}
_{
4
}$}
;
\node
[anchor=west] (eq6) at ([xshift=1.0em,yshift=-1.8em]eq2.east)
{$
\textrm
{
P
}
(
\mathbf
{
s
}
,
\mathbf
{
a
}
_{
4
}
|
\mathbf
{
t
}
)=
0
.
1
$}
;
\draw
[-,very thick](eq1.south) -- (eq4.north);
\draw
[-,very thick](eq2.south) -- (eq4.north);
\end{scope}
...
...
@@ -67,8 +67,8 @@
\node
[anchor=west] (eq2) at ([xshift=3.0em,yshift=0.0em]eq1.east)
{
早饭
}
;
\node
[anchor=north] (eq3) at ([xshift=0.0em,yshift=-2.0em]eq1.south)
{
Have
}
;
\node
[anchor=north] (eq4) at ([xshift=0.0em,yshift=-2.0em]eq2.south)
{
breakfast
}
;
\node
[anchor=east] (eq5) at ([xshift=-1.0em,yshift=-1.8em]eq1.west)
{$
a
_{
5
}$}
;
\node
[anchor=west] (eq6) at ([xshift=1.0em,yshift=-1.8em]eq2.east)
{$
\textrm
{
P
}
(
\mathbf
{
s
}
,
a
_{
5
}
|
\mathbf
{
t
}
)=
0
.
05
$}
;
\node
[anchor=east] (eq5) at ([xshift=-1.0em,yshift=-1.8em]eq1.west)
{$
\mathbf
{
a
}
_{
5
}$}
;
\node
[anchor=west] (eq6) at ([xshift=1.0em,yshift=-1.8em]eq2.east)
{$
\textrm
{
P
}
(
\mathbf
{
s
}
,
\mathbf
{
a
}
_{
5
}
|
\mathbf
{
t
}
)=
0
.
05
$}
;
\draw
[-,very thick](eq1.south) -- (eq3.north);
\draw
[-,very thick](eq1.south) -- (eq4.north);
\draw
[-,very thick](eq2.south) -- (eq3.north);
...
...
@@ -82,8 +82,8 @@
\node
[anchor=west] (eq2) at ([xshift=3.0em,yshift=0.0em]eq1.east)
{
早饭
}
;
\node
[anchor=north] (eq3) at ([xshift=0.0em,yshift=-2.0em]eq1.south)
{
Have
}
;
\node
[anchor=north] (eq4) at ([xshift=0.0em,yshift=-2.0em]eq2.south)
{
breakfast
}
;
\node
[anchor=east] (eq5) at ([xshift=-1.0em,yshift=-1.8em]eq1.west)
{$
a
_{
6
}$}
;
\node
[anchor=west] (eq6) at ([xshift=1.0em,yshift=-1.8em]eq2.east)
{$
\textrm
{
P
}
(
\mathbf
{
s
}
,
a
_{
6
}
|
\mathbf
{
t
}
)=
0
.
05
$}
;
\node
[anchor=east] (eq5) at ([xshift=-1.0em,yshift=-1.8em]eq1.west)
{$
\mathbf
{
a
}
_{
6
}$}
;
\node
[anchor=west] (eq6) at ([xshift=1.0em,yshift=-1.8em]eq2.east)
{$
\textrm
{
P
}
(
\mathbf
{
s
}
,
\mathbf
{
a
}
_{
6
}
|
\mathbf
{
t
}
)=
0
.
05
$}
;
\draw
[-,very thick](eq1.south) -- (eq3.north);
\draw
[-,very thick](eq2.south) -- (eq4.north);
\draw
[-,very thick](eq2.south) -- (eq3.north);
...
...
Book/mt-book-xelatex.ptc
查看文件 @
d1cf0c7d
\boolfalse {citerequest}\boolfalse {citetracker}\boolfalse {pagetracker}\boolfalse {backtracker}\relax
\babel@toc {english}{}
\defcounter {refsection}{0}\relax
\select@language {english}
\defcounter {refsection}{0}\relax
\contentsline {part}{\@mypartnumtocformat {I}{统计机器翻译}}{7}{part.1}
\contentsline {part}{\@mypartnumtocformat {I}{统计机器翻译}}{7}{part.1}%
\ttl@starttoc {default@1}
\defcounter {refsection}{0}\relax
\contentsline {chapter}{\numberline {1}基于词的机器翻译模型}{9}{chapter.1}
\contentsline {chapter}{\numberline {1}基于词的机器翻译模型}{9}{chapter.1}
%
\defcounter {refsection}{0}\relax
\contentsline {section}{\numberline {1.1}什么是基于词的翻译模型}{9}{section.1.1}
\contentsline {section}{\numberline {1.1}什么是基于词的翻译模型}{9}{section.1.1}
%
\defcounter {refsection}{0}\relax
\contentsline {section}{\numberline {1.2}构建一个简单的机器翻译系统}{11}{section.1.2}
\contentsline {section}{\numberline {1.2}构建一个简单的机器翻译系统}{11}{section.1.2}
%
\defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {1.2.1}如何进行翻译?}{11}{subsection.1.2.1}
\contentsline {subsection}{\numberline {1.2.1}如何进行翻译?}{11}{subsection.1.2.1}
%
\defcounter {refsection}{0}\relax
\contentsline {subsubsection}{机器翻译流程}{12}{section*.6}
\contentsline {subsubsection}{机器翻译流程}{12}{section*.6}
%
\defcounter {refsection}{0}\relax
\contentsline {subsubsection}{人工翻译 vs. 机器翻译}{13}{section*.8}
\contentsline {subsubsection}{人工翻译 vs. 机器翻译}{13}{section*.8}
%
\defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {1.2.2}基本框架}{13}{subsection.1.2.2}
\contentsline {subsection}{\numberline {1.2.2}基本框架}{13}{subsection.1.2.2}
%
\defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {1.2.3}单词翻译概率}{14}{subsection.1.2.3}
\contentsline {subsection}{\numberline {1.2.3}单词翻译概率}{14}{subsection.1.2.3}
%
\defcounter {refsection}{0}\relax
\contentsline {subsubsection}{什么是单词翻译概率?}{14}{section*.10}
\contentsline {subsubsection}{什么是单词翻译概率?}{14}{section*.10}
%
\defcounter {refsection}{0}\relax
\contentsline {subsubsection}{如何从一个双语平行数据中学习?}{14}{section*.12}
\contentsline {subsubsection}{如何从一个双语平行数据中学习?}{14}{section*.12}
%
\defcounter {refsection}{0}\relax
\contentsline {subsubsection}{如何从大量的双语平行数据中学习?}{16}{section*.13}
\contentsline {subsubsection}{如何从大量的双语平行数据中学习?}{16}{section*.13}
%
\defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {1.2.4}句子级翻译模型}{17}{subsection.1.2.4}
\contentsline {subsection}{\numberline {1.2.4}句子级翻译模型}{17}{subsection.1.2.4}
%
\defcounter {refsection}{0}\relax
\contentsline {subsubsection}{基础模型}{17}{section*.15}
\contentsline {subsubsection}{基础模型}{17}{section*.15}
%
\defcounter {refsection}{0}\relax
\contentsline {subsubsection}{生成流畅的译文}{19}{section*.17}
\contentsline {subsubsection}{生成流畅的译文}{19}{section*.17}
%
\defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {1.2.5}解码}{21}{subsection.1.2.5}
\contentsline {subsection}{\numberline {1.2.5}解码}{21}{subsection.1.2.5}
%
\defcounter {refsection}{0}\relax
\contentsline {section}{\numberline {1.3}基于词的翻译建模}{24}{section.1.3}
\contentsline {section}{\numberline {1.3}基于词的翻译建模}{24}{section.1.3}
%
\defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {1.3.1}噪声信道模型}{24}{subsection.1.3.1}
\contentsline {subsection}{\numberline {1.3.1}噪声信道模型}{24}{subsection.1.3.1}
%
\defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {1.3.2}统计机器翻译的三个基本问题}{26}{subsection.1.3.2}
\contentsline {subsection}{\numberline {1.3.2}统计机器翻译的三个基本问题}{26}{subsection.1.3.2}
%
\defcounter {refsection}{0}\relax
\contentsline {subsubsection}{词对齐}{27}{section*.26}
\contentsline {subsubsection}{词对齐}{27}{section*.26}
%
\defcounter {refsection}{0}\relax
\contentsline {subsubsection}{基于词对齐的翻译模型}{27}{section*.29}
\contentsline {subsubsection}{基于词对齐的翻译模型}{27}{section*.29}
%
\defcounter {refsection}{0}\relax
\contentsline {subsubsection}{基于词对齐的翻译实例}{29}{section*.31}
\contentsline {subsubsection}{基于词对齐的翻译实例}{29}{section*.31}
%
\defcounter {refsection}{0}\relax
\contentsline {section}{\numberline {1.4}IBM模型1-2}{30}{section.1.4}
\contentsline {section}{\numberline {1.4}IBM模型1-2}{30}{section.1.4}
%
\defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {1.4.1}IBM模型1}{30}{subsection.1.4.1}
\contentsline {subsection}{\numberline {1.4.1}IBM模型1}{30}{subsection.1.4.1}
%
\defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {1.4.2}IBM模型2}{32}{subsection.1.4.2}
\contentsline {subsection}{\numberline {1.4.2}IBM模型2}{32}{subsection.1.4.2}
%
\defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {1.4.3}解码及计算优化}{33}{subsection.1.4.3}
\contentsline {subsection}{\numberline {1.4.3}解码及计算优化}{33}{subsection.1.4.3}
%
\defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {1.4.4}训练}{34}{subsection.1.4.4}
\contentsline {subsection}{\numberline {1.4.4}训练}{34}{subsection.1.4.4}
%
\defcounter {refsection}{0}\relax
\contentsline {subsubsection}{目标函数}{34}{section*.36}
\contentsline {subsubsection}{目标函数}{34}{section*.36}
%
\defcounter {refsection}{0}\relax
\contentsline {subsubsection}{优化}{35}{section*.38}
\contentsline {subsubsection}{优化}{35}{section*.38}
%
\defcounter {refsection}{0}\relax
\contentsline {section}{\numberline {1.5}IBM模型3-5及隐马尔可夫模型}{41}{section.1.5}
\contentsline {section}{\numberline {1.5}IBM模型3-5及隐马尔可夫模型}{41}{section.1.5}
%
\defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {1.5.1}基于产出率的翻译模型}{41}{subsection.1.5.1}
\contentsline {subsection}{\numberline {1.5.1}基于产出率的翻译模型}{41}{subsection.1.5.1}
%
\defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {1.5.2}IBM 模型3}{44}{subsection.1.5.2}
\contentsline {subsection}{\numberline {1.5.2}IBM 模型3}{44}{subsection.1.5.2}
%
\defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {1.5.3}IBM 模型4}{45}{subsection.1.5.3}
\contentsline {subsection}{\numberline {1.5.3}IBM 模型4}{45}{subsection.1.5.3}
%
\defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {1.5.4} IBM 模型5}{47}{subsection.1.5.4}
\contentsline {subsection}{\numberline {1.5.4} IBM 模型5}{47}{subsection.1.5.4}
%
\defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {1.5.5}隐马尔可夫模型}{48}{subsection.1.5.5}
\contentsline {subsection}{\numberline {1.5.5}隐马尔可夫模型}{48}{subsection.1.5.5}
%
\defcounter {refsection}{0}\relax
\contentsline {subsubsection}{隐马尔可夫模型}{4
8}{section*.50}
\contentsline {subsubsection}{隐马尔可夫模型}{4
9}{section*.50}%
\defcounter {refsection}{0}\relax
\contentsline {subsubsection}{词对齐模型}{50}{section*.52}
\contentsline {subsubsection}{词对齐模型}{50}{section*.52}
%
\defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {1.5.6}解码和训练}{51}{subsection.1.5.6}
\contentsline {subsection}{\numberline {1.5.6}解码和训练}{51}{subsection.1.5.6}
%
\defcounter {refsection}{0}\relax
\contentsline {section}{\numberline {1.6}问题分析}{51}{section.1.6}
\contentsline {section}{\numberline {1.6}问题分析}{51}{section.1.6}
%
\defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {1.6.1}词对齐及对称化}{51}{subsection.1.6.1}
\contentsline {subsection}{\numberline {1.6.1}词对齐及对称化}{51}{subsection.1.6.1}
%
\defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {1.6.2}Deficiency}{52}{subsection.1.6.2}
\contentsline {subsection}{\numberline {1.6.2}Deficiency}{52}{subsection.1.6.2}
%
\defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {1.6.3}句子长度}{53}{subsection.1.6.3}
\contentsline {subsection}{\numberline {1.6.3}句子长度}{53}{subsection.1.6.3}
%
\defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {1.6.4}其他问题}{54}{subsection.1.6.4}
\contentsline {subsection}{\numberline {1.6.4}其他问题}{54}{subsection.1.6.4}
%
\defcounter {refsection}{0}\relax
\contentsline {section}{\numberline {1.7}小结及深入阅读}{54}{section.1.7}
\contentsline {section}{\numberline {1.7}小结及深入阅读}{54}{section.1.7}
%
\contentsfinish
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论