Commit bf025688 by xiaotong

wording (sec 7, phrases)

parent e9c27eaa
...@@ -8,11 +8,11 @@ ...@@ -8,11 +8,11 @@
$\to$ red & 0.8 \\ $\to$ red & 0.8 \\
$\to$ black & 0.1 \\ $\to$ black & 0.1 \\
$\to$ tea & 0.8\\ $\to$ tea & 0.8\\
喜欢 $\to$ I like & 0.3\\ /喜欢 $\to$ I like & 0.3\\
喜欢 $\to$ I liked & 0.2\\ /喜欢 $\to$ I liked & 0.2\\
绿 $\to$ green tea & 0.5\\ 绿/$\to$ green tea & 0.5\\
绿 $\to$ the green tea & 0.1\\ 绿/$\to$ the green tea & 0.1\\
$\to$ black tea & 0.7\\ /$\to$ black tea & 0.7\\
... & ... &
\end{tabular} \end{tabular}
} }
...@@ -7,12 +7,12 @@ ...@@ -7,12 +7,12 @@
{\small {\small
\node[anchor=north,fill=green!20] (s1) at (0,0) {进口}; \node[anchor=north,fill=green!20] (s1) at (0,0) {进口};
\node [anchor=north,fill=red!20] (s2) at ([xshift=4em,yshift=0em]s1.north) {大幅度}; \node [anchor=west,fill=red!20] (s2) at ([xshift=1em,yshift=0em]s1.east) {大幅度};
\node[anchor=north,fill=blue!20] (s3) at ([xshift=4.5em,yshift=0em]s2.north) {下降}; \node[anchor=west,fill=blue!20] (s3) at ([xshift=1em,yshift=0em]s2.east) {下降\ \ \ };
\node[anchor=west,fill=green!20] (t1) at ([xshift=0em,yshift=-4em]s1.west) {The imports have}; \node[anchor=west,fill=green!20] (t1) at ([xshift=0em,yshift=-4em]s1.west) {The imports have};
\node[anchor=north,fill=red!20] (t2) at ([xshift=8em,yshift=0em]t1.north) {drastically}; \node[anchor=west,fill=red!20] (t2) at ([xshift=1em,yshift=0em]t1.east) {drastically};
\node[anchor=north,fill=blue!20] (t3) at ([xshift=5.7em,yshift=0em]t2.north) {fallen}; \node[anchor=west,fill=blue!20] (t3) at ([xshift=1em,yshift=0em]t2.east) {fallen};
\path[<->, thick] (s1.south) edge (t1.north); \path[<->, thick] (s1.south) edge (t1.north);
\path[<->, thick] (s2.south) edge (t2.north); \path[<->, thick] (s2.south) edge (t2.north);
......
...@@ -23,9 +23,9 @@ ...@@ -23,9 +23,9 @@
\chapter{基于短语的模型} \chapter{基于短语的模型}
\parinterval 机器翻译的一个问题是要定义翻译的基本单元是什么。比如,可以像{\red {\chapterfive}}介绍的那样,以单词为单位进行翻译,即把句子的翻译看作是单词之间对应关系的一种组合。基于单词的模型是符合人类对翻译问题的认知的,因为单词本身就是人类加工语言的一种基本单元。另一方面,在进行翻译时也可以使用一些更“复杂”的知识。比如,很多词语间的搭配需要根据语境的变化进行调整,而且对于句子结构的翻译往往需要更上层的知识,如句法知识。因此,在对单词翻译进行建模的基础上,需要探索其他类型的翻译知识,使得搭配和结构翻译等问题可以更好地被建模。 \parinterval 机器翻译的一个基本问题是要定义翻译的基本单元是什么。比如,可以像{\chapterfive}介绍的那样,以单词为单位进行翻译,即把句子的翻译看作是单词之间对应关系的一种组合。基于单词的模型是符合人类对翻译问题的认知的,因为单词本身就是人类加工语言的一种基本单元。另一方面,在进行翻译时也可以使用一些更“复杂”的知识。比如,很多词语间的搭配需要根据语境的变化进行调整,而且对于句子结构的翻译往往需要更上层的知识,如句法知识。因此,在对单词翻译进行建模的基础上,需要探索其他类型的翻译知识,使得搭配和结构翻译等问题可以更好地被建模。
\parinterval 本章会介绍基于短语和基于句法的翻译模型。在过去二十年中,它们一直是机器翻译的主流方法。相比于基于单词的翻译模型,基于短语和基于句法的模型可以更好地对单词之间的依赖关系进行描述,同时可以对句子的上层结构进行有效的表示。这些方法也在相当长的一段时期内占据着机器翻译的统治地位。虽然近些年随着神经机器翻译的崛起,基于短语和基于句法的统计翻译模型有些“降温”,但是它仍然是机器翻译的主要框架之一,其中的思想和很多技术手段对今天的机器翻译研究仍然有很好的借鉴意义。 \parinterval 本章会介绍基于短语的机器翻译模型。在过去二十年中,它一直是机器翻译的主流方法。相比于基于单词的模型,基于短语的模型可以更好地对单词之间搭配和小范围依赖关系进行描述。这种方法也在相当长的一段时期内占据着机器翻译的统治地位。即使近些年神经机器翻译逐渐崛起,但是基于短语的模型仍然是机器翻译的主要框架之一,其中的思想和很多技术手段对今天的机器翻译研究仍然有很好的借鉴意义。
%---------------------------------------------------------------------------------------- %----------------------------------------------------------------------------------------
% NEW SECTION % NEW SECTION
...@@ -33,7 +33,7 @@ ...@@ -33,7 +33,7 @@
\sectionnewpage \sectionnewpage
\section{翻译中的短语信息} \section{翻译中的短语信息}
不难发现,基于单词的模型并不能很好地捕捉单词间的搭配关系。相比之下,使用更大颗粒度的翻译单元是一种对搭配进行处理的方法。下面一起来看看,基于单词的模型所产生的问题以及如何使用短语缓解该问题。 不难发现,基于单词的模型并不能很好地捕捉单词间的搭配关系。相比之下,使用更大颗粒度的翻译单元是一种对搭配进行处理的方法。下面来一起看看,基于单词的模型所产生的问题以及如何使用短语缓解该问题。
%---------------------------------------------------------------------------------------- %----------------------------------------------------------------------------------------
% NEW SUB-SECTION % NEW SUB-SECTION
...@@ -41,7 +41,7 @@ ...@@ -41,7 +41,7 @@
\subsection{基于词的翻译所带来的问题} \subsection{基于词的翻译所带来的问题}
\parinterval 首先,回顾一下基于单词的统计翻译模型是如何完成翻译的。图\ref{fig:7-1}展示了一个实例。其中,左侧是一个单词的“翻译表”,它记录了源语言(中文)单词和目标语言(英文)单词之间的对应关系,以及这种对应的可能性大小(用$\funp{P}$表示)。在翻译时,会使用这些单词一级的对应,生成目标语言译文。比如,图\ref{fig:7-1}右侧就展示了一个基于词的模型生成的翻译结果,其中$\seq{s}$$\seq{t}$分别表示源语言和目标语言句子,单词之间的连线表示两个句子中单词一级的对应。 \parinterval 首先,回顾一下基于单词的统计翻译模型是如何完成翻译的。图\ref{fig:7-1}展示了一个实例。其中,左侧是一个单词的“翻译表”,它记录了源语言(汉语)单词和目标语言(英语)单词之间的对应关系,以及这种对应的可能性大小(用$\funp{P}$表示)。在翻译时,会使用这些单词一级的对应,生成、译文。比如,图\ref{fig:7-1}右侧就展示了一个基于词的模型生成的翻译结果,其中$\seq{s}$$\seq{t}$分别表示源语言和目标语言句子,单词之间的连线表示两个句子中单词一级的对应。
%---------------------------------------------- %----------------------------------------------
\begin{figure}[htp] \begin{figure}[htp]
...@@ -56,7 +56,7 @@ ...@@ -56,7 +56,7 @@
\parinterval\ref{fig:7-1}体现的是一个典型的基于单词对应关系的翻译方法。它非常适合{\small\bfnew{组合性翻译}}\index{组合性翻译}(Compositional Translation)\index{Compositional Translation}的情况,也就是通常说的直译。不过,自然语言作为人类创造的高级智能的载体,远比想象的复杂。比如,即使是同一个单词,词义也会根据不同的语境产生变化。 \parinterval\ref{fig:7-1}体现的是一个典型的基于单词对应关系的翻译方法。它非常适合{\small\bfnew{组合性翻译}}\index{组合性翻译}(Compositional Translation)\index{Compositional Translation}的情况,也就是通常说的直译。不过,自然语言作为人类创造的高级智能的载体,远比想象的复杂。比如,即使是同一个单词,词义也会根据不同的语境产生变化。
\parinterval\ref{fig:7-2}给出了一个新的例子。如果同样使用概率化的单词翻译对问题进行建模,对于输入的句子“我\ 喜欢\ \ 茶”,翻译概率最大的译文是“I like red tea”。显然,“red tea”并不是英文中“红\ 茶”的说法,正确的译文应该是“black tea”。 \parinterval\ref{fig:7-2}给出了一个新的例子,其中为了便于阅读,单词之间用空格或者斜杠进行分割。如果同样使用概率化的单词翻译对问题进行建模,对于输入的句子“我/喜欢/红/茶”,翻译概率最大的译文是“I like red tea”。 显然,“red tea” 并不是英语中“红/茶”的说法,正确的译文应该是“black tea”。
%---------------------------------------------- %----------------------------------------------
\begin{figure}[htp] \begin{figure}[htp]
...@@ -64,12 +64,12 @@ ...@@ -64,12 +64,12 @@
\begin{tabular}{l r} \begin{tabular}{l r}
\subfigure{\input{./Chapter7/Figures/figure-example-of-translation-black-tea-1}} & \subfigure{\input{./Chapter7/Figures/figure-example-of-translation-black-tea-2}} \subfigure{\input{./Chapter7/Figures/figure-example-of-translation-black-tea-1}} & \subfigure{\input{./Chapter7/Figures/figure-example-of-translation-black-tea-2}}
\end{tabular} \end{tabular}
\caption{基于单词的模型对搭配“红\ 茶”进行翻译} \caption{基于单词的模型对固定搭配“红/茶”进行翻译}
\label{fig:7-2} \label{fig:7-2}
\end{figure} \end{figure}
%------------------------------------------- %-------------------------------------------
\parinterval 这里的问题在于,“black tea”不能通过“红”和“茶”这两个单词直译的结果组合而成,也就是,把“红”翻译为“red”并不符合“红\ 茶”这种特殊的搭配的翻译。即使在训练数据中“红”有很高的概率被翻译为“red”,在这个例子中,应该选择概率更低的译文“black”。那如何做到这一点呢?如果让人来做,这个事不难,因为所有人学习英语的时候都知道“红”和“茶”放在一起构成了一个短语,或者说一种搭配,这种搭配的译文是固定的,记住就好。同理,如果机器翻译系统也能学习并记住这样的搭配,显然可以做得更好。这也就形成了基于短语和句法的机器翻译建模的基本思路。 \parinterval 这里的问题在于,“black tea”不能通过“红”和“茶”这两个单词直译的结果组合而成,也就是,把“红”翻译为“red”并不符合“红/茶”这种特殊的搭配的翻译。即使在训练数据中“红”有很高的概率被翻译为“red”,在这个例子中,应该选择概率更低的译文“black”。那如何做到这一点呢?如果让人来做,这个事不难,因为所有人学习英语的时候都知道“红”和“茶”放在一起构成了一个短语,或者说一种搭配,这种搭配的译文是固定的,记住就好。同理,如果机器翻译系统也能学习并记住这样的搭配,显然可以做得更好。这也就形成了基于短语的机器翻译建模的基本思路。
%---------------------------------------------------------------------------------------- %----------------------------------------------------------------------------------------
% NEW SUB-SECTION % NEW SUB-SECTION
...@@ -77,9 +77,9 @@ ...@@ -77,9 +77,9 @@
\subsection{更大粒度的翻译单元} \subsection{更大粒度的翻译单元}
\parinterval 既然仅仅使用单词的直译不能覆盖所有的翻译现象,那就可以考虑在翻译中使用更大颗粒度的单元,这样能够对更大范围的搭配和依赖关系进行建模。一种非常简单的方法是把单词扩展为$n$-gram(这里视为{\small\bfnew{短语}}\index{短语})。也就是,翻译的基本单元是一个个连续的词串,而非一个个相互独立的单词。 \parinterval 既然仅仅使用单词的直译不能覆盖所有的翻译现象,那就可以考虑在翻译中使用更大颗粒度的单元,这样能够对更大范围的搭配和依赖关系进行建模。一种非常简单的方法是把单词扩展为$n$-gram,这里视为{\small\bfnew{短语}}\index{短语}(Phrase)。也就是,翻译的基本单元是一个个连续的词串,而非一个个相互独立的单词。
\parinterval\ref{fig:7-3}展示了一个引入短语之后的翻译结果。其中的翻译表不仅包含源语言和目标语言单词之间的对应,同时也包括短语($n$-gram)的翻译。这样,“红\ 茶”可以作为一个短语包含在翻译表中,它所对应译文是“black tea”。对于待翻译句子,可以使用单词翻译的组合得到“红\ 茶”的译文“red tea”,也可以直接使用短语翻译得到“black tea”。由于短语翻译“红\ $\to$ black tea” 的概率更高,因此最终会输出正确的译文“black tea”。 \parinterval\ref{fig:7-3}展示了一个引入短语之后的翻译结果。其中的翻译表不仅包含源语言和目标语言单词之间的对应,同时也包括短语($n$-gram)的翻译。这样,“红/茶”可以作为一个短语包含在翻译表中,它所对应译文是“black tea”。对于待翻译句子,可以使用单词翻译的组合得到“红/茶”的译文“red tea”,也可以直接使用短语翻译得到“black tea”。由于短语翻译“红/$\to$ black tea” 的概率更高,因此最终会输出正确的译文“black tea”。
%---------------------------------------------- %----------------------------------------------
\begin{figure}[htp] \begin{figure}[htp]
...@@ -116,7 +116,7 @@ ...@@ -116,7 +116,7 @@
\end{figure} \end{figure}
%------------------------------------------- %-------------------------------------------
\parinterval 实际上,单词本身也是一种短语。从这个角度说,基于单词的翻译模型是包含在基于短语的翻译模型中的。而这里的所说的短语包括多个连续的单词,可以直接捕捉翻译中的一些局部依赖。而且,由于引入了更多样翻译单元,可选择的翻译路径数量也大大增加。本质上,引入更大颗粒度的翻译单元给建模增加了灵活性,同时增大了翻译假设空间。如果建模合理,更多的翻译路径会增加找到高质量译文的机会。在\ref{section-7.2}节还将看到,基于短语的模型会从多个角度对翻译问题进行描述,包括基础数学建模、调序等等。 \parinterval 实际上,单词本身也是一种短语。从这个角度说,基于单词的翻译模型是包含在基于短语的翻译模型中的。而这里的所说的短语包括多个连续的单词,可以直接捕捉翻译中的一些局部依赖。而且,由于引入了更多样翻译单元,可选择的翻译路径数量也大大增加。本质上,引入更大颗粒度的翻译单元给建模增加了灵活性,同时增大了翻译假设空间。如果建模合理,更多的翻译路径会增加找到高质量译文的机会。在\ref{section-7.2}节还将看到,基于短语的模型会从多个角度对翻译问题进行描述,包括基础数学建模、调序等等。
%---------------------------------------------------------------------------------------- %----------------------------------------------------------------------------------------
% NEW SUB-SECTION % NEW SUB-SECTION
...@@ -124,7 +124,7 @@ ...@@ -124,7 +124,7 @@
\subsection{机器翻译中的短语} \subsection{机器翻译中的短语}
\parinterval 基于短语的机器翻译的基本假设是:双语句子的生成可以用短语之间的对应关系进行表示。图\ref{fig:7-9}展示了一个基于短语的翻译实例。可以看到,这里的翻译单元是连续的词串。比如,“进口”的译文“The imports have”就包含了三个单词,而“下降\ 了”也是一个包含两个单词的源语言片段。 \parinterval 基于短语的机器翻译的基本假设是:双语句子的生成可以用短语之间的对应关系进行表示。图\ref{fig:7-9}展示了一个基于短语的翻译实例。可以看到,这里的翻译单元是连续的词串。比如,“进口”的译文“The imports have”就包含了三个单词,而“下降/了”也是一个包含两个单词的源语言片段。
%---------------------------------------------- %----------------------------------------------
\begin{figure}[htp] \begin{figure}[htp]
...@@ -137,6 +137,7 @@ ...@@ -137,6 +137,7 @@
\parinterval 不过,这里所说的短语并不是语言学上的短语,本身也没有任何语言学句法的结构约束。在基于短语的模型中,可以把短语简单地理解为一个词串。具体来说,有如下定义。 \parinterval 不过,这里所说的短语并不是语言学上的短语,本身也没有任何语言学句法的结构约束。在基于短语的模型中,可以把短语简单地理解为一个词串。具体来说,有如下定义。
\vspace{0.5em}
%------------------------------------------- %-------------------------------------------
\begin{definition} 短语 \begin{definition} 短语
...@@ -153,16 +154,16 @@ ...@@ -153,16 +154,16 @@
\begin{definition} 句子的短语切分 \begin{definition} 句子的短语切分
{\small {\small
如果一个句子$\seq{w} = w_1...w_n$可以被切分为$m$个子串,则称$\seq{w}$$m$个短语组成,记为$\seq{w} = p_1...p_m$,其中$p_i$$\seq{w}$的一个短语,$p_1...p_m$也被称作句子$\seq{w}$的一个{\small\bfnew{短语切分}} 如果一个句子$\seq{w} = w_1...w_n$可以被切分为$m$个子串,则称$\seq{w}$$m$个短语组成,记为$\seq{w} = p_1...p_m$,其中$p_i$$\seq{w}$的一个短语,$\{p_1,...,p_m\}$也被称作句子$\seq{w}$的一个{\small\bfnew{短语切分}}
} }
\end{definition} \end{definition}
%------------------------------------------- %-------------------------------------------
\parinterval 比如,对于一个句子,“$\text{机器}\ \text{翻译}\ \text{}\ \text{}\ \text{}\ \text{}\ \text{}\ \text{挑战}\ \text{}\ \text{问题}$”,一种可能的短语切分为: \parinterval 比如,对于一个句子,“机器/翻译/是/一/项/很有/挑战/的/问题”,一种可能的短语切分为:
\begin{eqnarray} \begin{eqnarray}
p_1 &=& \text{机器}\ \text{翻译} \nonumber \\ p_1 &=& \text{机器}/\text{翻译} \nonumber \\
p_2 &=& \text{}\ \text{}\ \text{} \nonumber \\ p_2 &=& \text{}/\text{}/\text{} \nonumber \\
p_3 &=& \text{很有}\ \text{挑战}\ \text{} \nonumber \\ p_3 &=& \text{很有}/\text{挑战}/\text{} \nonumber \\
p_4 &=& \text{问题}\nonumber p_4 &=& \text{问题}\nonumber
\end{eqnarray} \end{eqnarray}
...@@ -173,17 +174,17 @@ p_4 &=& \text{问题}\nonumber ...@@ -173,17 +174,17 @@ p_4 &=& \text{问题}\nonumber
\begin{definition} 双语短语(或短语对) \begin{definition} 双语短语(或短语对)
{\small {\small
对于源语和目标语句对$(\seq{s},\seq{t})$$\seq{s}$中的一个短语$\bar{s}_i$$\seq{t}$中的一个短语$\bar{t}_j$可以构成一个双语短语对$(\bar{s}_i,\bar{t}_j)$,简称{\small\bfnew{短语对}}\index{短语对}$(\bar{s}_i,\bar{t}_j)$ 对于源语言和目标语言句对$(\seq{s},\seq{t})$$\seq{s}$中的一个短语$\bar{s}_i$$\seq{t}$中的一个短语$\bar{t}_j$可以构成一个双语短语对$(\bar{s}_i,\bar{t}_j)$,简称{\small\bfnew{短语对}}\index{短语对}$(\bar{s}_i,\bar{t}_j)$
} }
\end{definition} \end{definition}
%------------------------------------------- %-------------------------------------------
\parinterval 也就是说,源语言句子中任意的短语和目标语言句子中任意的短语都构成一个双语短语。这里用$\leftrightarrow$表示互译关系。对于一个双语句对“进口\ 大幅度\ 下降\ $\leftrightarrow$ the imports have drastically fallen”,可以得到很多双语短语,比如: \parinterval 也就是说,源语言句子中任意的短语和目标语言句子中任意的短语都构成一个双语短语。这里用$\leftrightarrow$表示互译关系。对于一个双语句对“进口/大幅度/下降/$\leftrightarrow$ the imports have drastically fallen”,可以得到很多双语短语,比如:
\begin{eqnarray} \begin{eqnarray}
&&\text{大幅度}\ \leftrightarrow\ \textrm{drastically} \nonumber \\ &&\text{大幅度}\ \leftrightarrow\ \textrm{drastically} \nonumber \\
&&\text{大幅度}\ \ \text{下降}\ \leftrightarrow\ \textrm{have}\ \textrm{drastically}\ \textrm{fallen} \nonumber \\ &&\text{大幅度}/\text{下降}\ \leftrightarrow\ \textrm{have}\ \textrm{drastically}\ \textrm{fallen} \nonumber \\
&&\text{进口}\ \ \text{大幅度}\ \leftrightarrow\ \textrm{imports}\ \textrm{have}\ \textrm{drastically} \nonumber \\ &&\text{进口}/\text{大幅度}\ \leftrightarrow\ \textrm{imports}\ \textrm{have}\ \textrm{drastically} \nonumber \\
&&\text{大幅度}\ \ \text{下降}\ \ \text{}\ \leftrightarrow\ \textrm{drastically}\ \textrm{fallen} \nonumber \\ &&\text{大幅度}/\text{下降}/\text{}\ \leftrightarrow\ \textrm{drastically}\ \textrm{fallen} \nonumber \\
&&\text{}\ \leftrightarrow\ \textrm{have}\ \textrm{drastically} \nonumber \\ &&\text{}\ \leftrightarrow\ \textrm{have}\ \textrm{drastically} \nonumber \\
&&... \nonumber &&... \nonumber
\end{eqnarray} \end{eqnarray}
...@@ -202,12 +203,15 @@ p_4 &=& \text{问题}\nonumber ...@@ -202,12 +203,15 @@ p_4 &=& \text{问题}\nonumber
\parinterval 基于短语的翻译推导定义了一种从源语言短语序列到目标语言短语序列的对应,其中源语言短语序列是源语言句子的一种切分,同样的,目标语言短语序列是目标语言句子的一种切分。翻译推导提供了一种描述翻译过程的手段:对于一个源语言句子,可以找到从它出发的翻译推导,推导中短语的目标语部分就构成了译文。也就是,每个源语言句子$\seq{s}$上的一个推导$d$都蕴含着一个目标语句子$\seq{t}$ \parinterval 基于短语的翻译推导定义了一种从源语言短语序列到目标语言短语序列的对应,其中源语言短语序列是源语言句子的一种切分,同样的,目标语言短语序列是目标语言句子的一种切分。翻译推导提供了一种描述翻译过程的手段:对于一个源语言句子,可以找到从它出发的翻译推导,推导中短语的目标语部分就构成了译文。也就是,每个源语言句子$\seq{s}$上的一个推导$d$都蕴含着一个目标语句子$\seq{t}$
\parinterval\ref{fig:7-10}给出了一个由三个双语短语$\{(\bar{s}_{\bar{a}_1},\bar{t}_1),(\bar{s}_{\bar{a}_2},\bar{t}_2),(\bar{s}_{\bar{a}_3},\bar{t}_3)\}$ 构成的汉英互译句对,其中短语对齐信息为$\bar{a}_1 = 1$$\bar{a}_2 = 2$$\bar{a}_3 = 3$。这里,可以把这三个短语对的组合看作是翻译推导,形式化表示为如下公式。其中,${} \circ $表示短语的组合\footnote[2]{短语的组合是指将两个短语a和b进行拼接,形成新的短语ab。在机器翻译中,可以把双语短语的组合看作是对目标语短语的组合。比如,对于两个双语短语$(\bar{s}_{\bar{a}_1},\bar{t}_1),(\bar{s}_{\bar{a}_2},\bar{t}_2)$,短语的组合表示将$\bar{t}_1$$\bar{t}_2$进行组合,而源语言端作为输入已经给定,因此直接匹配源语言句子中相应的部分即可。根据两个短语在源语言中位置的不同,通常又分为顺序翻译、反序翻译、不连续翻译。关于这部分内容将会在后面\ref{subsection-7.4}节调序模型的部分进行介绍。} \parinterval\ref{fig:7-10}给出了一个由三个双语短语$\{(\bar{s}_{\bar{a}_1},\bar{t}_1),(\bar{s}_{\bar{a}_2},\bar{t}_2),(\bar{s}_{\bar{a}_3},\bar{t}_3)\}$ 构成的汉英互译句对,其中短语对齐信息为$\bar{a}_1 = 1$$\bar{a}_2 = 2$$\bar{a}_3 = 3$。这里,可以把这三个短语对的组合看作是翻译推导,形式化表示为如下公式:
\begin{eqnarray} \begin{eqnarray}
d = {(\bar{s}_{\bar{a}_1},\bar{t}_1)} \circ {(\bar{s}_{\bar{a}_2},\bar{t}_2)} \circ {(\bar{s}_{\bar{a}_3},\bar{t}_3)} d = {(\bar{s}_{\bar{a}_1},\bar{t}_1)} \circ {(\bar{s}_{\bar{a}_2},\bar{t}_2)} \circ {(\bar{s}_{\bar{a}_3},\bar{t}_3)}
\label{eq:7-1} \label{eq:7-1}
\end{eqnarray} \end{eqnarray}
\noindent 其中,${} \circ $表示短语的组合\footnote[2]{短语的组合是指将两个短语a和b进行拼接,形成新的短语ab。在机器翻译中,可以把双语短语的组合看作是对目标语短语的组合。比如,对于两个双语短语$(\bar{s}_{\bar{a}_1},\bar{t}_1),(\bar{s}_{\bar{a}_2},\bar{t}_2)$,短语的组合表示将$\bar{t}_1$$\bar{t}_2$进行组合,而源语言端作为输入已经给定,因此直接匹配源语言句子中相应的部分即可。根据两个短语在源语言中位置的不同,通常又分为顺序翻译、反序翻译、不连续翻译。关于这部分内容将会在\ref{subsection-7.4}节调序模型的部分进行介绍。}
%---------------------------------------------- %----------------------------------------------
\begin{figure}[htp] \begin{figure}[htp]
\centering \centering
...@@ -245,7 +249,7 @@ d = {(\bar{s}_{\bar{a}_1},\bar{t}_1)} \circ {(\bar{s}_{\bar{a}_2},\bar{t}_2)} \c ...@@ -245,7 +249,7 @@ d = {(\bar{s}_{\bar{a}_1},\bar{t}_1)} \circ {(\bar{s}_{\bar{a}_2},\bar{t}_2)} \c
\label{eq:7-2} \label{eq:7-2}
\end{eqnarray} \end{eqnarray}
\parinterval 公式\ref{eq:7-2}中,$\seq{s}$是输入的源语言句子,$\seq{t}$是一个目标语译文。$\funp{P}(\seq{t}|\seq{s})$被称为翻译模型,它描述了把$\seq{s}$翻译为$\seq{t}$的可能性。通过$\argmax \funp{P}(\seq{t}|\seq{s})$可以找到使$\funp{P}(\seq{t}|\seq{s})$达到最大的$\seq{t}$ \noindent 其中,$\seq{s}$是输入的源语言句子,$\seq{t}$是一个目标语言译文。$\funp{P}(\seq{t}|\seq{s})$被称为翻译模型,它描述了把$\seq{s}$翻译为$\seq{t}$的可能性。通过$\argmax \funp{P}(\seq{t}|\seq{s})$ 可以找到使$\funp{P}(\seq{t}|\seq{s})$达到最大的$\seq{t}$
\parinterval 这里的第一个问题是如何定义$\funp{P}(\seq{t}|\seq{s})$。直接描述$\funp{P}(\seq{t}|\seq{s})$是非常困难的,因为$\seq{s}$$\seq{t}$分别对应了巨大的样本空间,而在训练数据中能观测到的只是空间中的一小部分样本。直接用有限的训练数据描述这两个空间中样本的对应关系会面临着严重的数据稀疏问题。对于这个问题,常用的解决办法是把复杂的问题转化为容易计算的简单问题。 \parinterval 这里的第一个问题是如何定义$\funp{P}(\seq{t}|\seq{s})$。直接描述$\funp{P}(\seq{t}|\seq{s})$是非常困难的,因为$\seq{s}$$\seq{t}$分别对应了巨大的样本空间,而在训练数据中能观测到的只是空间中的一小部分样本。直接用有限的训练数据描述这两个空间中样本的对应关系会面临着严重的数据稀疏问题。对于这个问题,常用的解决办法是把复杂的问题转化为容易计算的简单问题。
...@@ -308,32 +312,38 @@ d = {(\bar{s}_{\bar{a}_1},\bar{t}_1)} \circ {(\bar{s}_{\bar{a}_2},\bar{t}_2)} \c ...@@ -308,32 +312,38 @@ d = {(\bar{s}_{\bar{a}_1},\bar{t}_1)} \circ {(\bar{s}_{\bar{a}_2},\bar{t}_2)} \c
\subsection{对数线性模型} \subsection{对数线性模型}
\parinterval 对于如何定义$\funp{P}(d,\seq{t}|\seq{s})$有很多种思路,比如,可以把$d$拆解为若干步骤,然后对这些步骤分别建模,最后形成描述$d${\small\bfnew{生成式模型}}\index{生成式模型}(Generative Model)\index{Generative Model}。这种方法在{\red {\chapterfive}{\chaptersix}}的IBM模型中也大量使用。但是,生成式模型的每一步推导需要有严格的概率解释,这也限制了研究人员从更多的角度对$d$进行描述。这里,可以使用另外一种方法\ \dash \ {\small\bfnew{判别式模型}}\index{判别式模型}(Discriminative Model)\index{Discriminative Model}来对$\funp{P}(d,\seq{t}|\seq{s})$进行描述\upcite{DBLP:conf/acl/OchN02}。其模型形式如下: \parinterval 对于如何定义$\funp{P}(d,\seq{t}|\seq{s})$有很多种思路,比如,可以把$d$拆解为若干步骤,然后对这些步骤分别建模,最后形成描述$d${\small\bfnew{生成式模型}}\index{生成式模型}(Generative Model)\index{Generative Model}。这种方法在{\chapterfive}{\chaptersix}的IBM模型中也大量使用。但是,生成式模型的每一步推导需要有严格的概率解释,这也限制了研究人员从更多的角度对$d$进行描述。这里,可以使用另外一种方法\ \dash \ {\small\bfnew{判别式模型}}\index{判别式模型}(Discriminative Model)\index{Discriminative Model}来对$\funp{P}(d,\seq{t}|\seq{s})$进行描述\upcite{DBLP:conf/acl/OchN02}。其模型形式如下:
\begin{eqnarray}
\funp{P}(d,\seq{t}|\seq{s}) &=& \frac{\textrm{exp}(\textrm{score}(d,\seq{t},\seq{s}))}{\sum_{d',\seq{t}'} \textrm{exp}(\textrm{score}(d',\seq{t}',\seq{s}))} \label{eqa4.10}
\end{eqnarray}
\noindent 其中,
\begin{eqnarray} \begin{eqnarray}
\funp{P}(d,\seq{t}|\seq{s}) &=& \frac{\textrm{exp}(\textrm{score}(d,\seq{t},\seq{s}))}{\sum_{d',\seq{t}'} \textrm{exp}(\textrm{score}(d',\seq{t}',\seq{s}))} \label{eqa4.10} \\
\textrm{score}(d,\seq{t},\seq{s}) &=& \sum_{i=1}^{M} \lambda_i \cdot h_i (d,\seq{t},\seq{s}) \textrm{score}(d,\seq{t},\seq{s}) &=& \sum_{i=1}^{M} \lambda_i \cdot h_i (d,\seq{t},\seq{s})
\label{eq:7-11} \label{eq:7-11}
\end{eqnarray} \end{eqnarray}
\parinterval 公式\ref{eq:7-11}是一种典型的{\small\bfnew{对数线性模型}}\index{对数线性模型}(Log-linear Model)\index{Log-linear Model}。所谓“对数线性”体现在对多个量求和后进行指数运算($\textrm{exp}(\cdot)$),这相当于对多个因素进行乘法。公式\ref{eqa4.10}的右端是一种归一化操作。分子部分可以被看作是一种对翻译推导$d$的对数线性建模。具体来说,对于每个$d$,用$M$个特征对其进行描述,每个特征用函数$h_i (d,\seq{t},\seq{s})$表示。每个特征都对应一个权重$\lambda_i$,表示特征$i$的重要性。$\sum_{i=1}^{M} \lambda_i \cdot h_i (d,\seq{t},\seq{s})$表示了对这些特征的线性加权和,值越大表示模型得分越高,相应的$d$$\seq{t}$的质量越高。公式\ref{eqa4.10}的分母部分实际上不需要计算,因为其值与求解最佳推导的过程无关。把公式\ref{eqa4.10}带入公式\ref{eq:7-8}得到: \parinterval 公式\ref{eq:7-11}是一种典型的{\small\bfnew{对数线性模型}}\index{对数线性模型}(Log-linear Model)\index{Log-linear Model}。所谓“对数线性”体现在对多个量求和后进行指数运算($\textrm{exp}(\cdot)$),这相当于对多个因素进行乘法。公式\ref{eqa4.10}的右端是一种归一化操作。分子部分可以被看作是一种对翻译推导$d$的对数线性建模。具体来说,对于每个$d$,用$M$个特征对其进行描述。每个特征用函数$h_i (d,\seq{t},\seq{s})$表示,它对应一个权重$\lambda_i$,表示特征$i$的重要性。$\sum_{i=1}^{M} \lambda_i \cdot h_i (d,\seq{t},\seq{s})$表示了对这些特征的线性加权和,值越大表示模型得分越高,相应的$d$$\seq{t}$的质量越高。公式\ref{eqa4.10}的分母部分实际上不需要计算,因为其值与求解最佳推导的过程无关。把公式\ref{eqa4.10}带入公式\ref{eq:7-8}得到:
\begin{eqnarray} \begin{eqnarray}
\hat{d} &=& \arg\max_{d} \frac{\textrm{exp}(\textrm{score}(d,\seq{t},\seq{s}))}{\sum_{d',\seq{t}'} \textrm{exp}(\textrm{score}(d',\seq{t}',\seq{s}))} \nonumber \\ \hat{d} &=& \arg\max_{d} \frac{\textrm{exp}(\textrm{score}(d,\seq{t},\seq{s}))}{\sum_{d',\seq{t}'} \textrm{exp}(\textrm{score}(d',\seq{t}',\seq{s}))} \nonumber \\
&=& \arg\max_{d}\ \textrm{exp}(\textrm{score}(d,\seq{t},\seq{s})) &=& \arg\max_{d}\ \textrm{exp}(\textrm{score}(d,\seq{t},\seq{s}))
\label{eq:7-12} \label{eq:7-12}
\end{eqnarray} \end{eqnarray}
\parinterval 公式\ref{eq:7-12}中,$\ \textrm{exp}(\textrm{score}(d,\seq{t},\seq{s}))$表示指数化的模型得分,记为$\textrm{mscore}(d,\seq{t},\seq{s}) = \textrm{exp}(\textrm{score}(d,\seq{t},\seq{s}))$。于是,翻译问题就可以被描述为找到使函数$\textrm{mscore}(d,\seq{t},\seq{s})$达到最大的$d$。由于,$\textrm{exp}(\textrm{score}(d,\seq{t},\seq{s}))$$\textrm{score}(d,\seq{t},\seq{s})$是单调一致的,因此有时也直接把$\textrm{score}(d,\seq{t},\seq{s})$当做模型得分。 \parinterval 公式\ref{eq:7-12}中,$\ \textrm{exp}(\textrm{score}(d,\seq{t},\seq{s}))$表示指数化的模型得分,记为$\textrm{mscore}(d,\seq{t},\seq{s}) = \textrm{exp}(\textrm{score}(d,\seq{t},\seq{s}))$。于是,翻译问题就可以被描述为找到使函数$\textrm{mscore}(d,\seq{t},\seq{s})$达到最大的$d$。由于,$\textrm{exp}(\textrm{score}(d,\seq{t},\seq{s}))$$\textrm{score}(d,\seq{t},\seq{s})$是单调一致的,因此有时也直接把$\textrm{score}(d,\seq{t},\seq{s})$当做模型得分。
%---------------------------------------------------------------------------------------- %----------------------------------------------------------------------------------------
% NEW SUB-SECTION % NEW SUB-SECTION
%---------------------------------------------------------------------------------------- %----------------------------------------------------------------------------------------
\subsection{何为特征} \subsection{翻译特征}
\parinterval 判别式模型最大的好处在于它可以更灵活地引入特征。{\color{red} 某种意义上,每个特征都是在描述翻译的某方面属性。在各种统计分类模型中,也大量使用了“特征”这个概念(见{\chapterthree})。比如,要判别一篇新闻是体育方面的还是文化方面的,可以设计一个分类器,用词作为特征。这个分类器就会根据有能力区分“体育”和“文化”两个类别的特征,最终决定这篇文章属于哪个类别。统计机器翻译也在做类似的事情。系统研发者可以通过设计翻译相关的特征,来区分不同翻译结果的好坏。翻译模型会综合这些特征对所有可能的译文进行打分和排序,并选择得分最高的译文输出。} \parinterval 判别式模型最大的好处在于它可以更灵活地引入特征。某种意义上,每个特征都是在描述翻译的某方面属性。在各种统计分类模型中,也大量使用了“特征”这个概念(见{\chapterthree})。比如,要判别一篇新闻是体育方面的还是文化方面的,可以设计一个分类器,用词作为特征。这个分类器就会根据有能力区分“体育”和“文化”两个类别的特征,最终决定这篇文章属于哪个类别。统计机器翻译也在做类似的事情。系统研发者可以通过设计翻译相关的特征,来区分不同翻译结果的好坏。翻译模型会综合这些特征对所有可能的译文进行打分和排序,并选择得分最高的译文输出。
\parinterval {\color{red} 在判别式模型中,系统开发者可以设计任意的特征来描述翻译,特征的设计甚至都不需要统计上的解释,包括0-1特征、计数特征等。比如,可以设计特征来回答“you这个单词是否出现在译文中?”。如果答案为真,这个特征的值为1,否则为0。再比如,可以设计特征来回答“译文里有多少个单词?”。这个特征相当于一个统计目标语单词数的函数,它的值即为译文的长度。此外,还可以设计更加复杂的实数特征,甚至具有概率意义的特征。在随后的内容中还将看到,翻译的调序、译文流畅度等都会被建模为特征,而机器翻译系统会融合这些特征,综合得到最优的输出译文。} \parinterval 在判别式模型中,系统开发者可以设计任意的特征来描述翻译,特征的设计甚至都不需要统计上的解释,包括0-1特征、计数特征等。比如,可以设计特征来回答“you这个单词是否出现在译文中?”。如果答案为真,这个特征的值为1,否则为0。再比如,可以设计特征来回答“译文里有多少个单词?”。这个特征相当于一个统计目标语单词数的函数,它的值即为译文的长度。此外,还可以设计更加复杂的实数特征,甚至具有概率意义的特征。在随后的内容中还将看到,翻译的调序、译文流畅度等都会被建模为特征,而机器翻译系统会融合这些特征,综合得到最优的输出译文。
\parinterval 此外,判别式模型并不需要像生成式模型那样对问题进行具有统计学意义的“分解”,更不需要对每个步骤进行严格的数学推导。相反,它直接对问题的后验概率进行建模。由于不像生成式模型那样需要引入假设来对每个生成步骤进行化简,判别式模型对问题的刻画更加直接,因此也受到自然语言处理研究者的青睐。 \parinterval 此外,判别式模型并不需要像生成式模型那样对问题进行具有统计学意义的“分解”,更不需要对每个步骤进行严格的数学推导。相反,它直接对问题的后验概率进行建模。由于不像生成式模型那样需要引入假设来对每个生成步骤进行化简,判别式模型对问题的刻画更加直接,因此也受到自然语言处理研究者的青睐。
...@@ -373,7 +383,7 @@ d = {(\bar{s}_{\bar{a}_1},\bar{t}_1)} \circ {(\bar{s}_{\bar{a}_2},\bar{t}_2)} \c ...@@ -373,7 +383,7 @@ d = {(\bar{s}_{\bar{a}_1},\bar{t}_1)} \circ {(\bar{s}_{\bar{a}_2},\bar{t}_2)} \c
\sectionnewpage \sectionnewpage
\section{短语抽取}\label{section-7.3} \section{短语抽取}\label{section-7.3}
\parinterval 在基于短语的模型中,学习短语翻译是重要的步骤之一。获得短语翻译的方法有很多种,最常用的方法是从双语平行语料中进行{\small\bfnew{短语抽取}}\index{短语抽取}(Phrase Extraction)\index{Phrase Extraction}。前面已经介绍过短语的概念,句子中任意的连续子串都被称为短语。例如在图\ref{fig:7-12}中,用点阵的形式来表示双语之间的对应关系,那么图中任意一个矩形框都可以构成一个双语短语(或短语对),例如“什么\ \ 没”对应“learned nothing ?”。 \parinterval 在基于短语的模型中,学习短语翻译是重要的步骤之一。获得短语翻译的方法有很多种,最常用的方法是从双语平行语料中进行{\small\bfnew{短语抽取}}\index{短语抽取}(Phrase Extraction)\index{Phrase Extraction}。前面已经介绍过短语的概念,句子中任意的连续子串都被称为短语。例如在图\ref{fig:7-12}中,用点阵的形式来表示双语之间的对应关系,那么图中任意一个矩形框都可以构成一个双语短语(或短语对),例如“什么/都/没”对应“learned nothing ?”。
%---------------------------------------------- %----------------------------------------------
\begin{figure}[htp] \begin{figure}[htp]
...@@ -384,7 +394,7 @@ d = {(\bar{s}_{\bar{a}_1},\bar{t}_1)} \circ {(\bar{s}_{\bar{a}_2},\bar{t}_2)} \c ...@@ -384,7 +394,7 @@ d = {(\bar{s}_{\bar{a}_1},\bar{t}_1)} \circ {(\bar{s}_{\bar{a}_2},\bar{t}_2)} \c
\end{figure} \end{figure}
%------------------------------------------- %-------------------------------------------
\parinterval 按照上述抽取短语的方式可以找到所有可能的双语短语,但是这种不加限制的抽取是非常十分低效的。一是可抽取的短语数量爆炸,二是抽取得到的大部分短语是没有意义的,如上面的例子中抽取到“到\ ?”对应“Have you learned nothing?”这样的短语对在翻译中并没有什么意义。对于这个问题,一种解决方法是基于词对齐进行短语抽取,或者是抽取与词对齐相一致的短语。 \parinterval 按照上述抽取短语的方式可以找到所有可能的双语短语,但是这种不加限制的抽取是非常十分低效的。一是可抽取的短语数量爆炸,二是抽取得到的大部分短语是没有意义的,如上面的例子中抽取到“到/?”对应“Have you learned nothing”这样的短语对在翻译中并没有什么意义。对于这个问题,一种解决方法是基于词对齐进行短语抽取,或者是抽取与词对齐相一致的短语。
%---------------------------------------------------------------------------------------- %----------------------------------------------------------------------------------------
% NEW SUB-SECTION % NEW SUB-SECTION
...@@ -419,7 +429,7 @@ d = {(\bar{s}_{\bar{a}_1},\bar{t}_1)} \circ {(\bar{s}_{\bar{a}_2},\bar{t}_2)} \c ...@@ -419,7 +429,7 @@ d = {(\bar{s}_{\bar{a}_1},\bar{t}_1)} \circ {(\bar{s}_{\bar{a}_2},\bar{t}_2)} \c
\begin{figure}[htp] \begin{figure}[htp]
\centering \centering
\input{./Chapter7/Figures/figure-consistence-of-word-alignment} \input{./Chapter7/Figures/figure-consistence-of-word-alignment}
\caption{词对齐一致性} \caption{词对齐一致性示例}
\label{fig:7-14} \label{fig:7-14}
\end{figure} \end{figure}
%------------------------------------------- %-------------------------------------------
...@@ -441,9 +451,9 @@ d = {(\bar{s}_{\bar{a}_1},\bar{t}_1)} \circ {(\bar{s}_{\bar{a}_2},\bar{t}_2)} \c ...@@ -441,9 +451,9 @@ d = {(\bar{s}_{\bar{a}_1},\bar{t}_1)} \circ {(\bar{s}_{\bar{a}_2},\bar{t}_2)} \c
\subsection{获取词对齐} \subsection{获取词对齐}
\parinterval 如何获得词对齐呢?{\red {\chapterfive}{\chaptersix}}介绍的IBM模型本身就是一个词对齐模型,因此一种常用的方法是直接使用IBM模型生成词对齐。IBM模型约定每个源语言单词必须对应、也只能对应到一个目标语单词。因此,IBM 模型得到的词对齐结果是不对称的。正常情况下词对齐可以是一个源语言单词对应多个目标语言单词,或者多对一,甚至多对多的情况。为了获得对称的词对齐,一种简单的方法是,分别进行正向翻译和反向翻译的词对齐,然后利用启发性方法生成对称的词对齐,例如,双向词对齐取交集、并集等。 \parinterval 如何获得词对齐呢?{\chapterfive}{\chaptersix}介绍的IBM模型本身就是一个词对齐模型,因此一种常用的方法是直接使用IBM模型生成词对齐。IBM模型约定每个源语言单词必须对应、也只能对应到一个目标语单词。因此,IBM 模型得到的词对齐结果是不对称的。正常情况下词对齐可以是一个源语言单词对应多个目标语言单词,或者多对一,甚至多对多的情况。为了获得对称的词对齐,一种简单的方法是,分别进行正向翻译和反向翻译的词对齐,然后利用启发性方法生成对称的词对齐,例如,双向词对齐取交集、并集等。
\parinterval 如图\ref{fig:7-16}中,左边两个图就是正向和反向两种词对齐的结果。右边的图是融合双向词对齐的结果,取交集是蓝色的方框,取并集是红色的方框。当然,还可以设计更多的启发性规则生成词对齐\upcite{koehn2000estimating,koehn2007factored} \parinterval 如图\ref{fig:7-16}中,左边两个图就是正向和反向两种词对齐的结果。右边的图是融合双向词对齐的结果,取交集是蓝色的方框,取并集是红色的方框。当然,还可以设计更多的启发性规则生成词对齐\upcite{koehn2000estimating}
%---------------------------------------------- %----------------------------------------------
\begin{figure}[htp] \begin{figure}[htp]
...@@ -462,7 +472,7 @@ d = {(\bar{s}_{\bar{a}_1},\bar{t}_1)} \circ {(\bar{s}_{\bar{a}_2},\bar{t}_2)} \c ...@@ -462,7 +472,7 @@ d = {(\bar{s}_{\bar{a}_1},\bar{t}_1)} \circ {(\bar{s}_{\bar{a}_2},\bar{t}_2)} \c
\subsection{度量双语短语质量} \subsection{度量双语短语质量}
\parinterval 抽取双语短语之后,需要对每个双语短语的质量进行评价。这样,在使用这些双语短语时,可以更有效地估计整个句子翻译的好坏。在统计机器翻译中,一般用双语短语出现的可能性大小来度量双语短语的好坏。这里,使用相对频估计对短语的翻译条件概率进行计算,公式如下: \parinterval 抽取双语短语之后,需要对每个双语短语的质量进行评价。这样,在使用这些双语短语时,可以更有效地估计整个句子翻译的好坏。在统计机器翻译中,一般用双语短语出现的可能性大小来度量双语短语的好坏。这里,使用相对频估计对短语的翻译条件概率进行计算,公式如下:
\begin{eqnarray} \begin{eqnarray}
\funp{P}(\bar{t}|\bar{s}) = \frac{\textrm{count}(\bar{s},\bar{t})}{\textrm{count}(\bar{s})} \funp{P}(\bar{t}|\bar{s}) = \frac{\textrm{count}(\bar{s},\bar{t})}{\textrm{count}(\bar{s})}
\label{eq:7-13} \label{eq:7-13}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论