Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
M
mtbookv2
概览
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
mtbookv2
Commits
3640834b
Commit
3640834b
authored
Oct 07, 2020
by
xiaotong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
wording and bug fixes (secs 1-12)
parent
474db684
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
16 个修改的文件
包含
41 行增加
和
43 行删除
+41
-43
Chapter1/Figures/figure-example-nmt.tex
+3
-3
Chapter10/chapter10.tex
+0
-0
Chapter12/chapter12.tex
+0
-0
Chapter2/chapter2.tex
+15
-17
Chapter3/Figures/figure-examples-of-chinese-word-segmentation-based-on-1-gram-model.tex
+3
-3
Chapter3/Figures/figure-mt=language-analysis+translation-engine.tex
+1
-1
Chapter3/Figures/figure-process-of-statistical-syntax-analysis.tex
+2
-2
Chapter3/Figures/figure-word-segmentation-based-on-statistics.tex
+3
-3
Chapter3/chapter3.tex
+5
-5
Chapter4/Figures/logic-diagram-of-translation-quality-evaluation-method.tex
+1
-1
Chapter4/chapter4.tex
+0
-0
Chapter6/chapter6.tex
+1
-1
Chapter8/Figures/figure-an-example-of-phrase-system.tex
+2
-2
Chapter8/Figures/figure-examples-of-translation-with-complex-ordering.tex
+1
-1
Chapter8/chapter8.tex
+4
-4
Chapter9/chapter9.tex
+0
-0
没有找到文件。
Chapter1/Figures/figure-example-nmt.tex
查看文件 @
3640834b
...
@@ -80,9 +80,9 @@
...
@@ -80,9 +80,9 @@
\end{pgfonlayer}
\end{pgfonlayer}
% input and output labels
% input and output labels
\draw
[->,thick,align=center]
([yshift=-0.8em]layer1.south)--([yshift=-0.1em]layer1.south) node [pos=0,anchor=north,inner sep=3pt] (word01)
{
\footnotesize
{
输入
}
\footnotesize
{
(word)
}}
;
\draw
[->,thick,align=center]
([yshift=-0.8em]layer1.south)--([yshift=-0.1em]layer1.south) node [pos=0,anchor=north,inner sep=3pt] (word01)
{
\footnotesize
{
输入
}
\footnotesize
{
(Word)
}}
;
\draw
[->,thick,align=center]
([yshift=-0.8em]layer2.south)--([yshift=-0.1em]layer2.south) node [pos=0,anchor=north,inner sep=3pt] (word02)
{
\footnotesize
{
输入
}
\footnotesize
{
(word)
}}
;
\draw
[->,thick,align=center]
([yshift=-0.8em]layer2.south)--([yshift=-0.1em]layer2.south) node [pos=0,anchor=north,inner sep=3pt] (word02)
{
\footnotesize
{
输入
}
\footnotesize
{
(Word)
}}
;
\draw
[<-,thick,align=center]
([yshift=0.8em]layer3.north)--([yshift=0.1em]layer3.north) node [pos=0,anchor=south,inner sep=0] (outputnode)
{
\footnotesize
{
表示结果
}
\footnotesize
{
(representation)
}}
;
\draw
[<-,thick,align=center]
([yshift=0.8em]layer3.north)--([yshift=0.1em]layer3.north) node [pos=0,anchor=south,inner sep=0] (outputnode)
{
\footnotesize
{
表示结果
}
\footnotesize
{
(Representation)
}}
;
% layer and neuron labels
% layer and neuron labels
%\node[anchor=west] (layerlabel3) at (layer3.east) {\footnotesize{layer}};
%\node[anchor=west] (layerlabel3) at (layer3.east) {\footnotesize{layer}};
...
...
Chapter10/chapter10.tex
查看文件 @
3640834b
差异被折叠。
点击展开。
Chapter12/chapter12.tex
查看文件 @
3640834b
差异被折叠。
点击展开。
Chapter2/chapter2.tex
查看文件 @
3640834b
...
@@ -377,18 +377,8 @@ F(x)=\int_{-\infty}^x f(x)\textrm{d}x
...
@@ -377,18 +377,8 @@ F(x)=\int_{-\infty}^x f(x)\textrm{d}x
\vspace
{
0.5em
}
\vspace
{
0.5em
}
\end{itemize}
\end{itemize}
\parinterval
如果投掷这个新的骰子,可能会得到图
\ref
{
fig:2-8
}
这样的结果,
\parinterval
如果投掷这个新的骰子,可能会得到图
\ref
{
fig:2-8
}
这样的结果。如果把这些数字换成汉语中的词,比如:
\vspace
{
0.5em
}
%----------------------------------------------
\begin{figure}
[htp]
\centering
\input
{
./Chapter2/Figures/figure-full-probability-word-segmentation-1
}
\caption
{
投掷一个很多面骰子的结果
}
\label
{
fig:2-8
}
\end{figure}
%-------------------------------------------
\parinterval
如果,把这些数字换成汉语中的词,比如
\parinterval
88
\;
=
\;
这
\parinterval
88
\;
=
\;
这
...
@@ -397,8 +387,18 @@ F(x)=\int_{-\infty}^x f(x)\textrm{d}x
...
@@ -397,8 +387,18 @@ F(x)=\int_{-\infty}^x f(x)\textrm{d}x
\parinterval
45
\;
=
\;
一
\parinterval
45
\;
=
\;
一
\parinterval
\ldots
\parinterval
\ldots
\vspace
{
0.5em
}
\parinterval
就可以得到图
\ref
{
fig:2-9
}
所示的结果。
\parinterval
就可以得到图
\ref
{
fig:2-9
}
所示的结果。于是,可以假设有一个不均匀的多面骰子,每个面都对应一个单词。在获取一些文本数据后,可以统计每个单词出现的次数,进而利用极大似然估计推算出每个单词在语料库中出现的概率的估计值。图
\ref
{
fig:2-10
}
给出了一个实例
%----------------------------------------------
\begin{figure}
[htp]
\centering
\input
{
./Chapter2/Figures/figure-full-probability-word-segmentation-1
}
\caption
{
投掷一个很多面骰子的结果
}
\label
{
fig:2-8
}
\end{figure}
%-------------------------------------------
%----------------------------------------------
%----------------------------------------------
\begin{figure}
[htp]
\begin{figure}
[htp]
...
@@ -410,8 +410,6 @@ F(x)=\int_{-\infty}^x f(x)\textrm{d}x
...
@@ -410,8 +410,6 @@ F(x)=\int_{-\infty}^x f(x)\textrm{d}x
\end{figure}
\end{figure}
%-------------------------------------------
%-------------------------------------------
\parinterval
于是,可以假设有一个不均匀的多面骰子,每个面都对应一个单词。在获取一些文本数据后,可以统计每个单词出现的次数,进而利用极大似然估计推算出每个单词在语料库中出现的概率的估计值。图
\ref
{
fig:2-10
}
给出了一个实例。
%----------------------------------------------
%----------------------------------------------
\begin{figure}
[htp]
\begin{figure}
[htp]
\centering
\centering
...
@@ -546,7 +544,7 @@ F(x)=\int_{-\infty}^x f(x)\textrm{d}x
...
@@ -546,7 +544,7 @@ F(x)=\int_{-\infty}^x f(x)\textrm{d}x
\label
{
eq:2-26
}
\label
{
eq:2-26
}
\end{eqnarray}
\end{eqnarray}
\parinterval
显然,这个结果是不合理的。因为即使语料中没有 “确实”和“现在”两个词连续出现,这种搭配也是客观存在的。这时简单地用极大似然估计得到概率却是0,导致整个句子出现的概率为0。 更常见的问题是那些根本没有出现在词表中的词,称为
{
\small\sffamily\bfseries
{
未登录词
}}
\index
{
未登录词
}
(Out-
Of-Vocabulary Word,OOV Word)
\index
{
Out-Of-V
ocabulary Word
}
,比如一些生僻词,可能模型训练阶段从来没有看到过,这时模型仍然会给出0概率。图
\ref
{
fig:2-11
}
展示了一个真实语料库中词语出现频次的分布,可以看到绝大多数词都是低频词。
\parinterval
显然,这个结果是不合理的。因为即使语料中没有 “确实”和“现在”两个词连续出现,这种搭配也是客观存在的。这时简单地用极大似然估计得到概率却是0,导致整个句子出现的概率为0。 更常见的问题是那些根本没有出现在词表中的词,称为
{
\small\sffamily\bfseries
{
未登录词
}}
\index
{
未登录词
}
(Out-
of-vocabulary Word,OOV Word)
\index
{
Out-of-v
ocabulary Word
}
,比如一些生僻词,可能模型训练阶段从来没有看到过,这时模型仍然会给出0概率。图
\ref
{
fig:2-11
}
展示了一个真实语料库中词语出现频次的分布,可以看到绝大多数词都是低频词。
%----------------------------------------------
%----------------------------------------------
\begin{figure}
[htp]
\begin{figure}
[htp]
...
@@ -818,7 +816,7 @@ c(\cdot) & \textrm{当计算最高阶模型时} \\
...
@@ -818,7 +816,7 @@ c(\cdot) & \textrm{当计算最高阶模型时} \\
\parinterval
在序列生成任务中,最简单的策略就是对词表中的词汇进行任意组合,通过这种枚举的方式得到全部可能的序列。但是,很多时候并生成序列的长度是无法预先知道的。比如,机器翻译中目标语序列的长度是任意的。那么怎样判断一个序列何时完成了生成过程呢?这里借用现代人类书写中文和英文的过程:句子的生成首先从一片空白开始,然后从左到右逐词生成,除了第一个单词,所有单词的生成都依赖于前面已经生成的单词。为了方便计算机实现,通常定义单词序列从一个特殊的符号<sos>后开始生成。同样地,一个单词序列的结束也用一个特殊的符号<eos>来表示。
\parinterval
在序列生成任务中,最简单的策略就是对词表中的词汇进行任意组合,通过这种枚举的方式得到全部可能的序列。但是,很多时候并生成序列的长度是无法预先知道的。比如,机器翻译中目标语序列的长度是任意的。那么怎样判断一个序列何时完成了生成过程呢?这里借用现代人类书写中文和英文的过程:句子的生成首先从一片空白开始,然后从左到右逐词生成,除了第一个单词,所有单词的生成都依赖于前面已经生成的单词。为了方便计算机实现,通常定义单词序列从一个特殊的符号<sos>后开始生成。同样地,一个单词序列的结束也用一个特殊的符号<eos>来表示。
\parinterval
对于一个序列
$
<
$
sos
$
>
$
\
I
\
agree
\
$
<
$
eos
$
>
$
,图
\ref
{
fig:2-13
}
展示语言模型视角下该序列的生成过程。该过程通过在序列的末尾不断附加词表中的单词来逐渐扩展序列,直到这段序列结束。这种生成单词序列的过程被称作
{
\small\bfnew
{
自左向右生成
}}
\index
{
自左向右生成
}
(Left-to-
right Generation)
\index
{
Left-to-r
ight Generation
}
。注意,这种序列生成策略与
$
n
$
-gram的思想天然契合,因为
$
n
$
-gram语言模型中,每个词的生成概率依赖前面(左侧)若干词,因此
$
n
$
-gram语言模型也是一种自左向右的计算模型。
\parinterval
对于一个序列
$
<
$
sos
$
>
$
\
I
\
agree
\
$
<
$
eos
$
>
$
,图
\ref
{
fig:2-13
}
展示语言模型视角下该序列的生成过程。该过程通过在序列的末尾不断附加词表中的单词来逐渐扩展序列,直到这段序列结束。这种生成单词序列的过程被称作
{
\small\bfnew
{
自左向右生成
}}
\index
{
自左向右生成
}
(Left-to-
Right Generation)
\index
{
Left-to-R
ight Generation
}
。注意,这种序列生成策略与
$
n
$
-gram的思想天然契合,因为
$
n
$
-gram语言模型中,每个词的生成概率依赖前面(左侧)若干词,因此
$
n
$
-gram语言模型也是一种自左向右的计算模型。
%----------------------------------------------
%----------------------------------------------
\begin{figure}
[htp]
\begin{figure}
[htp]
...
...
Chapter3/Figures/figure-examples-of-chinese-word-segmentation-based-on-1-gram-model.tex
查看文件 @
3640834b
...
@@ -26,12 +26,12 @@
...
@@ -26,12 +26,12 @@
\node
[rectangle,draw=ublue,thick,inner sep=0.2em,fill=white,drop shadow]
[fit = (P) (modellabel)] (model)
{}
;
\node
[rectangle,draw=ublue,thick,inner sep=0.2em,fill=white,drop shadow]
[fit = (P) (modellabel)] (model)
{}
;
\end{pgfonlayer}
\end{pgfonlayer}
\draw
[->,very thick,ublue] ([xshift=0.2em]corpus.east) -- ([xshift=4.2em]corpus.east) node [pos=0.5, above]
{
\color
{
red
}{
\scriptsize
{
统计学习
}}}
;
\draw
[->,very thick,ublue] ([xshift=0.2em]corpus.east) -- ([xshift=4.2em]corpus.east) node [pos=0.5, above]
{
\color
{
black
}{
\scriptsize
{
统计学习
}}}
;
\draw
[->,very thick,ublue] ([xshift=0.2em]model.east) -- ([xshift=4.2em]model.east) node [pos=0.5, above]
{
\color
{
red
}{
\scriptsize
{
预测
}}}
;
\draw
[->,very thick,ublue] ([xshift=0.2em]model.east) -- ([xshift=4.2em]model.east) node [pos=0.5, above]
{
\color
{
black
}{
\scriptsize
{
预测
}}}
;
{
\scriptsize
{
\scriptsize
\node
[anchor=north west] (sentlabel) at ([xshift=6.2em,yshift=-1em]model.north east)
{
\color
{
red
}{
自动分词系统
}}
;
\node
[anchor=north west] (sentlabel) at ([xshift=6.2em,yshift=-1em]model.north east)
{
\color
{
black
}{
自动分词系统
}}
;
\node
[anchor=north west] (sent) at (sentlabel.south west)
{
\textbf
{
对任意句子进行分词
}}
;
\node
[anchor=north west] (sent) at (sentlabel.south west)
{
\textbf
{
对任意句子进行分词
}}
;
}
}
...
...
Chapter3/Figures/figure-mt=language-analysis+translation-engine.tex
查看文件 @
3640834b
...
@@ -25,7 +25,7 @@
...
@@ -25,7 +25,7 @@
}
}
\end{scope}
\end{scope}
\node
[anchor=west,draw,thick,inner sep=3pt,ublue] (mtengine) at ([xshift=1.0in]input.east)
{{
\scriptsize
机器翻译系统
}}
;
\node
[anchor=west,draw,thick,inner sep=3pt,ublue] (mtengine) at ([xshift=1.0in]input.east)
{{
\scriptsize
核心引擎
}}
;
\begin{scope}
[scale=0.8,xshift=3.0in,yshift=-0.87in,level distance=20pt,sibling distance=-3pt,grow'=up]
\begin{scope}
[scale=0.8,xshift=3.0in,yshift=-0.87in,level distance=20pt,sibling distance=-3pt,grow'=up]
{
\scriptsize
{
\scriptsize
...
...
Chapter3/Figures/figure-process-of-statistical-syntax-analysis.tex
查看文件 @
3640834b
...
@@ -53,9 +53,9 @@
...
@@ -53,9 +53,9 @@
\node
[rectangle,draw=ublue,thick,inner sep=0.2em,fill=white,drop shadow]
[fit = (P) (modellabel)] (model)
{}
;
\node
[rectangle,draw=ublue,thick,inner sep=0.2em,fill=white,drop shadow]
[fit = (P) (modellabel)] (model)
{}
;
\end{pgfonlayer}
\end{pgfonlayer}
\draw
[->,very thick,ublue] ([xshift=0.2em]corpus.east) -- ([xshift=4.2em]corpus.east) node [pos=0.5, above]
{
\color
{
red
}{
\scriptsize
{
统计学习
}}}
;
\draw
[->,very thick,ublue] ([xshift=0.2em]corpus.east) -- ([xshift=4.2em]corpus.east) node [pos=0.5, above]
{
\color
{
black
}{
\scriptsize
{
统计学习
}}}
;
\draw
[->,very thick,ublue] ([xshift=0.2em]model.east) -- ([xshift=4.2em]model.east) node [pos=0.5, above]
{
\color
{
red
}{
\scriptsize
{
预测
}}}
;
\draw
[->,very thick,ublue] ([xshift=0.2em]model.east) -- ([xshift=4.2em]model.east) node [pos=0.5, above]
{
\color
{
black
}{
\scriptsize
{
预测
}}}
;
{
\scriptsize
{
\scriptsize
\node
[anchor=north west] (sentlabel) at ([xshift=6.2em,yshift=-1em]model.north east)
{{
\color
{
ublue
}
{
\scriptsize
\textbf
{
统计分析模型
}}}}
;
\node
[anchor=north west] (sentlabel) at ([xshift=6.2em,yshift=-1em]model.north east)
{{
\color
{
ublue
}
{
\scriptsize
\textbf
{
统计分析模型
}}}}
;
...
...
Chapter3/Figures/figure-word-segmentation-based-on-statistics.tex
查看文件 @
3640834b
...
@@ -40,16 +40,16 @@
...
@@ -40,16 +40,16 @@
\end{pgfonlayer}
\end{pgfonlayer}
{
{
\draw
[->,very thick,ublue] ([xshift=0.2em]corpus.east) -- ([xshift=4.2em]corpus.east) node [pos=0.5, above]
{
\color
{
red
}{
\scriptsize
{
统计学习
}}}
;
\draw
[->,very thick,ublue] ([xshift=0.2em]corpus.east) -- ([xshift=4.2em]corpus.east) node [pos=0.5, above]
{
\color
{
black
}{
\scriptsize
{
统计学习
}}}
;
}
}
{
{
\draw
[->,very thick,ublue] ([xshift=0.2em]model.east) -- ([xshift=4.2em]model.east) node [pos=0.5, above]
{
\color
{
red
}{
\scriptsize
{
推断
}}}
;
\draw
[->,very thick,ublue] ([xshift=0.2em]model.east) -- ([xshift=4.2em]model.east) node [pos=0.5, above]
{
\color
{
black
}{
\scriptsize
{
推断
}}}
;
}
}
{
\scriptsize
{
\scriptsize
{
{
\node
[anchor=north west] (sentlabel) at ([xshift=6.8em,yshift=2em]model.north east)
{
\color
{
red
}{
新的句子
}}
;
\node
[anchor=north west] (sentlabel) at ([xshift=6.8em,yshift=2em]model.north east)
{
\color
{
black
}{
新的句子
}}
;
\node
[anchor=north west] (sent) at (sentlabel.south west)
{
\textbf
{
确实现在数据很多
}}
;
\node
[anchor=north west] (sent) at (sentlabel.south west)
{
\textbf
{
确实现在数据很多
}}
;
}
}
{
{
...
...
Chapter3/chapter3.tex
查看文件 @
3640834b
...
@@ -35,7 +35,7 @@
...
@@ -35,7 +35,7 @@
\begin{figure}
[htp]
\begin{figure}
[htp]
\centering
\centering
\subfigure
[机器翻译系统被看作一个黑盒]
{
\input
{
./Chapter3/Figures/figure-mt-system-as-a-black-box
}
}
\subfigure
[机器翻译系统被看作一个黑盒]
{
\input
{
./Chapter3/Figures/figure-mt-system-as-a-black-box
}
}
\subfigure
[机器翻译系统 = 前/后处理 +
翻译
引擎]
{
\input
{
./Chapter3/Figures/figure-mt=language-analysis+translation-engine
}}
\subfigure
[机器翻译系统 = 前/后处理 +
核心
引擎]
{
\input
{
./Chapter3/Figures/figure-mt=language-analysis+translation-engine
}}
\caption
{
机器翻译系统的结构
}
\caption
{
机器翻译系统的结构
}
\label
{
fig:3.1-1
}
\label
{
fig:3.1-1
}
\end{figure}
\end{figure}
...
@@ -62,7 +62,7 @@
...
@@ -62,7 +62,7 @@
\parinterval
类似地,机器翻译输出的结果也可以包含同样的信息。甚至系统输出英语译文之后,还有一个额外的步骤来把部分英语单词的大小写恢复出来,比如,句首单词的首字母要大写。
\parinterval
类似地,机器翻译输出的结果也可以包含同样的信息。甚至系统输出英语译文之后,还有一个额外的步骤来把部分英语单词的大小写恢复出来,比如,句首单词的首字母要大写。
\parinterval
一般来说,在送入机器翻译系统前需要对文字序列进行处理和加工,这个过程被称为
{
\small\sffamily\bfseries
{
预处理
}}
\index
{
预处理
}
(Pre
processing)
\index
{
Preprocessing
}
。类似地,在机器翻译模型输出译文后进行的处理被称作
{
\small\sffamily\bfseries
{
后处理
}}
\index
{
后处理
}
(Postprocessing)
\index
{
Post
processing
}
。这两个过程对机器翻译性能影响很大,比如,对于神经机器翻译系统来说,不同的分词策略可能会造成翻译性能的天差地别。
\parinterval
一般来说,在送入机器翻译系统前需要对文字序列进行处理和加工,这个过程被称为
{
\small\sffamily\bfseries
{
预处理
}}
\index
{
预处理
}
(Pre
-processing)
\index
{
Pre-processing
}
。类似地,在机器翻译模型输出译文后进行的处理被称作
{
\small\sffamily\bfseries
{
后处理
}}
\index
{
后处理
}
(Post-processing)
\index
{
Post-
processing
}
。这两个过程对机器翻译性能影响很大,比如,对于神经机器翻译系统来说,不同的分词策略可能会造成翻译性能的天差地别。
\parinterval
值得注意的是,有些观点认为,对于机器翻译来说,不论是分词还是句法分析,并不要求符合人的认知和语言学约束。换句话说,机器翻译所使用的“单词”和“结构”本身并不是为了符合人类的解释,它们更直接目的是为了进行翻译。从系统开发的角度,有时候即使使用一些与人类的语言习惯有差别的处理,仍然会带来性能的提升,比如在神经机器翻译中,在传统分词的基础上进一步使用
{
\small\sffamily\bfseries
{
双字节编码
}}
\index
{
双字节编码
}
(Byte Pair Encoding,BPE)
\index
{
Byte Pair Encoding
}
子词切分
\upcite
{
DBLP:conf/acl/SennrichHB16a
}
会使得机器翻译性能大幅提高。当然,自然语言处理中语言学信息的使用一直是学界关注的焦点。甚至关于语言学结构对机器翻译是否有作用这个问题也有一些不同的观点。但是不能否认的是,无论是语言学的知识,还是计算机自己学习到的知识,对机器翻译都是有价值的。在后续章节会看到,这两种类型的知识对机器翻译帮助很大。
\parinterval
值得注意的是,有些观点认为,对于机器翻译来说,不论是分词还是句法分析,并不要求符合人的认知和语言学约束。换句话说,机器翻译所使用的“单词”和“结构”本身并不是为了符合人类的解释,它们更直接目的是为了进行翻译。从系统开发的角度,有时候即使使用一些与人类的语言习惯有差别的处理,仍然会带来性能的提升,比如在神经机器翻译中,在传统分词的基础上进一步使用
{
\small\sffamily\bfseries
{
双字节编码
}}
\index
{
双字节编码
}
(Byte Pair Encoding,BPE)
\index
{
Byte Pair Encoding
}
子词切分
\upcite
{
DBLP:conf/acl/SennrichHB16a
}
会使得机器翻译性能大幅提高。当然,自然语言处理中语言学信息的使用一直是学界关注的焦点。甚至关于语言学结构对机器翻译是否有作用这个问题也有一些不同的观点。但是不能否认的是,无论是语言学的知识,还是计算机自己学习到的知识,对机器翻译都是有价值的。在后续章节会看到,这两种类型的知识对机器翻译帮助很大。
...
@@ -228,7 +228,7 @@ $计算这种切分的概率值。
...
@@ -228,7 +228,7 @@ $计算这种切分的概率值。
\section
{
命名实体识别
}
\section
{
命名实体识别
}
\parinterval
在人类使用语言的过程中,单词往往不是独立出现的。很多时候,多个单词会组合成一个更大的单元来表达特定的意思。其中,最典型的代表是
{
\small\sffamily\bfseries
{
命名实体
}}
\index
{
命名实体
}
(Named Entity)
\index
{
Named Entity
}
。通常,命名实体是指名词性的专用短语,例如公司名称、品牌名称、产品名称等专有名词和行业术语。准确地识别出这些命名实体,是提高机器翻译质量的关键。比如,在翻译技术文献时,往往需要对术语进行识别并进行准确翻译,因此引入
{
\small\sffamily\bfseries
{
命名实体识别
}}
\index
{
命名实体识别
}
(Named Entity Recognition)
\index
{
Named Entity Recognition
}
可以帮助系统对特定术语进行更加细致的处理。
\parinterval
在人类使用语言的过程中,单词往往不是独立出现的。很多时候,多个单词会组合成一个更大的单元来表达特定的意思。其中,最典型的代表是
{
\small\sffamily\bfseries
{
命名实体
}}
\index
{
命名实体
}
(Named Entity)
\index
{
Named Entity
}
。通常,命名实体是指名词性的专用短语,例如公司名称、品牌名称、产品名称等专有名词和行业术语。准确地识别出这些命名实体,是提高机器翻译质量的关键。比如,在翻译技术文献时,往往需要对术语进行识别并进行准确翻译,因此引入
{
\small\sffamily\bfseries
{
命名实体识别
}}
\index
{
命名实体识别
}
(Named Entity Recognition)
\index
{
Named Entity Recognition
}
可以帮助系统对特定术语进行更加细致的处理。
\parinterval
从句法分析的角度来说,命名实体识别是一种浅层句法分析任务。它在分词的基础上,进一步对句子浅层结构进行识别,包括词性标注、组块识别在内的很多任务都可以被看作是浅层句法分析的内容。本节会以命名实体识别为例,对基于序列标注的浅层句法分析方法进行介绍。
\parinterval
从句法分析的角度来说,命名实体识别是一种浅层句法分析任务。它在分词的基础上,进一步对句子浅层结构进行识别,包括词性标注、组块识别在内的很多任务都可以被看作是浅层句法分析的内容。本节会以命名实体识别为例,对基于序列标注的浅层句法分析方法进行介绍。
...
@@ -625,7 +625,7 @@ Z(\seq{x})=\sum_{\seq{y}}\exp(\sum_{i=1}^m\sum_{j=1}^k\lambda_{j}F_{j}(y_{i-1},y
...
@@ -625,7 +625,7 @@ Z(\seq{x})=\sum_{\seq{y}}\exp(\sum_{i=1}^m\sum_{j=1}^k\lambda_{j}F_{j}(y_{i-1},y
\parinterval
句法树是对句子的一种抽象,这种树形结构表达了一种对句子结构的归纳过程,比如,从树的叶子开始,把每一个树节点看作一次抽象,最终形成一个根节点。那这个过程如何用计算机来实现呢?这就需要使用到形式文法。
\parinterval
句法树是对句子的一种抽象,这种树形结构表达了一种对句子结构的归纳过程,比如,从树的叶子开始,把每一个树节点看作一次抽象,最终形成一个根节点。那这个过程如何用计算机来实现呢?这就需要使用到形式文法。
\parinterval
形式文法是分析自然语言的一种重要工具。根据乔姆斯基的定义
\upcite
{
chomsky1957syntactic
}
,形式文法分为四种类型:无限制文法(0型文法)、上下文有关文法(1型文法)、上下文无关文法(2型文法)和正规文法(3型文法)。不同类型的文法有不同的应用,比如,正规文法可以用来描述有限状态自动机,因此也会被使用在语言模型等系统中。对于短语结构分析问题,常用的是
{
\small\sffamily\bfseries
{
上下文无关文法
}}
\index
{
上下文无关文法
}
(Context-
Free Grammar)
\index
{
Context-F
ree Grammar
}
。上下文无关文法的具体形式如下:
\parinterval
形式文法是分析自然语言的一种重要工具。根据乔姆斯基的定义
\upcite
{
chomsky1957syntactic
}
,形式文法分为四种类型:无限制文法(0型文法)、上下文有关文法(1型文法)、上下文无关文法(2型文法)和正规文法(3型文法)。不同类型的文法有不同的应用,比如,正规文法可以用来描述有限状态自动机,因此也会被使用在语言模型等系统中。对于短语结构分析问题,常用的是
{
\small\sffamily\bfseries
{
上下文无关文法
}}
\index
{
上下文无关文法
}
(Context-
free Grammar)
\index
{
Context-f
ree Grammar
}
。上下文无关文法的具体形式如下:
%-------------------------------------------
%-------------------------------------------
\vspace
{
0.5em
}
\vspace
{
0.5em
}
...
@@ -777,7 +777,7 @@ s_0 \overset{r_1}{\Rightarrow} s_1 \overset{r_2}{\Rightarrow} s_2 \overset{r_3}{
...
@@ -777,7 +777,7 @@ s_0 \overset{r_1}{\Rightarrow} s_1 \overset{r_2}{\Rightarrow} s_2 \overset{r_3}{
\subsection
{
规则和推导的概率
}
\subsection
{
规则和推导的概率
}
\parinterval
对句法树进行概率化,首先要对使用的规则进行概率化。为了达到这个目的,可以使用
{
\small\sffamily\bfseries
{
概率上下文无关文法
}}
\index
{
概率上下文无关文法
}
(Probabilistic Context-
Free Grammar)
\index
{
Probabilistic Context-F
ree Grammar
}
,它是上下文无关文法的一种扩展。
\parinterval
对句法树进行概率化,首先要对使用的规则进行概率化。为了达到这个目的,可以使用
{
\small\sffamily\bfseries
{
概率上下文无关文法
}}
\index
{
概率上下文无关文法
}
(Probabilistic Context-
free Grammar)
\index
{
Probabilistic Context-f
ree Grammar
}
,它是上下文无关文法的一种扩展。
%-------------------------------------------
%-------------------------------------------
\vspace
{
0.5em
}
\vspace
{
0.5em
}
...
...
Chapter4/Figures/logic-diagram-of-translation-quality-evaluation-method.tex
查看文件 @
3640834b
...
@@ -49,7 +49,7 @@
...
@@ -49,7 +49,7 @@
\node
[anchor=north west] (hemethod2) at ([yshift=-0.0em]hemethod1.south west)
{
一致性
\ \
...
}
;
\node
[anchor=north west] (hemethod2) at ([yshift=-0.0em]hemethod1.south west)
{
一致性
\ \
...
}
;
% confidence estimation
% confidence estimation
\node
[anchor=east,align=left] (conf) at ([xshift=-6em,yshift=0.6em]hebox.west)
{
\small\bfnew
{
用于估计同
}
\\\small\bfnew
{
一个系统输
}
\\\small\bfnew
{
出的
可信度
}}
;
\node
[anchor=east,align=left] (conf) at ([xshift=-6em,yshift=0.6em]hebox.west)
{
\small\bfnew
{
用于估计同
一个
}
\\\small\bfnew
{
系统不同输出的
}
\\\small\bfnew
{
可信度
}}
;
\node
[anchor=north,single arrow,minimum height=4.0em,fill=blue!30,rotate=-90] (arrow1) at ([yshift=-2.4em]qebox.south)
{}
;
\node
[anchor=north,single arrow,minimum height=4.0em,fill=blue!30,rotate=-90] (arrow1) at ([yshift=-2.4em]qebox.south)
{}
;
% comparing different systems
% comparing different systems
...
...
Chapter4/chapter4.tex
查看文件 @
3640834b
差异被折叠。
点击展开。
Chapter6/chapter6.tex
查看文件 @
3640834b
...
@@ -397,7 +397,7 @@ p_0+p_1 & = & 1 \label{eq:6-21}
...
@@ -397,7 +397,7 @@ p_0+p_1 & = & 1 \label{eq:6-21}
\parinterval
与IBM模型1一样,IBM模型2-5和隐马尔可夫模型的解码可以直接使用
{
\chapterfive
}
所描述的方法。基本思路与
{
\chaptertwo
}
所描述的自左向右搜索方法一致,即:对译文自左向右生成,每次扩展一个源语言单词的翻译,即把源语言单词的译文放到已经生成的译文的右侧。每次扩展可以选择不同的源语言单词或者同一个源语言单词的不同翻译候选,这样就可以得到多个不同的扩展译文。在这个过程中,同时计算翻译模型和语言模型的得分,对每个得到译文候选打分。最终,保留一个或者多个译文。这个过程重复执行直至所有源语言单词被翻译完。
\parinterval
与IBM模型1一样,IBM模型2-5和隐马尔可夫模型的解码可以直接使用
{
\chapterfive
}
所描述的方法。基本思路与
{
\chaptertwo
}
所描述的自左向右搜索方法一致,即:对译文自左向右生成,每次扩展一个源语言单词的翻译,即把源语言单词的译文放到已经生成的译文的右侧。每次扩展可以选择不同的源语言单词或者同一个源语言单词的不同翻译候选,这样就可以得到多个不同的扩展译文。在这个过程中,同时计算翻译模型和语言模型的得分,对每个得到译文候选打分。最终,保留一个或者多个译文。这个过程重复执行直至所有源语言单词被翻译完。
\parinterval
类似的,IBM模型2-5和隐马尔可夫模型也都可以使用期望最大化(EM)方法进行模型训练。相关数学推导可参考附录
\ref
{
appendix-B
}
的内容。通常,可以使用这些模型获得双语句子间的词对齐结果,比如使用GIZA++工具。这时,往往会使用多个模型,把简单的模型训练后的参数作为初始值送给后面更加复杂的模型。比如,先用IBM模型1训练,之后把参数送给IBM模型2,再训练,之后把参数送给隐马尔可夫模型等。值得注意的是,并不是所有的模型使用EM算法都能找到全局最优解。特别是IBM模型3-5的训练中使用一些剪枝和近似的方法,优化的真实目标函数会更加复杂。不过,IBM模型1是一个
{
\small\bfnew
{
凸函数
}}
\index
{
凸函数
}
(Convex Function)
\index
{
Convex
f
unction
}
,因此理论上使用EM方法能够找到全局最优解。更实际的好处是,IBM 模型1训练的最终结果与参数的初始化过程无关。这也是为什么在使用IBM 系列模型时,往往会使用IBM模型1作为起始模型的原因。
\parinterval
类似的,IBM模型2-5和隐马尔可夫模型也都可以使用期望最大化(EM)方法进行模型训练。相关数学推导可参考附录
\ref
{
appendix-B
}
的内容。通常,可以使用这些模型获得双语句子间的词对齐结果,比如使用GIZA++工具。这时,往往会使用多个模型,把简单的模型训练后的参数作为初始值送给后面更加复杂的模型。比如,先用IBM模型1训练,之后把参数送给IBM模型2,再训练,之后把参数送给隐马尔可夫模型等。值得注意的是,并不是所有的模型使用EM算法都能找到全局最优解。特别是IBM模型3-5的训练中使用一些剪枝和近似的方法,优化的真实目标函数会更加复杂。不过,IBM模型1是一个
{
\small\bfnew
{
凸函数
}}
\index
{
凸函数
}
(Convex Function)
\index
{
Convex
F
unction
}
,因此理论上使用EM方法能够找到全局最优解。更实际的好处是,IBM 模型1训练的最终结果与参数的初始化过程无关。这也是为什么在使用IBM 系列模型时,往往会使用IBM模型1作为起始模型的原因。
%----------------------------------------------------------------------------------------
%----------------------------------------------------------------------------------------
% NEW SECTION
% NEW SECTION
...
...
Chapter8/Figures/figure-an-example-of-phrase-system.tex
查看文件 @
3640834b
...
@@ -3,9 +3,9 @@
...
@@ -3,9 +3,9 @@
\begin{center}
\begin{center}
\begin{tikzpicture}
\begin{tikzpicture}
\begin{scope}
\begin{scope}
\node
[anchor=east] (shead) at (0,0)
{
源语:
}
;
\node
[anchor=east] (shead) at (0,0)
{
源语
言句子
:
}
;
\node
[anchor=west] (swords) at (shead.east)
{
东北大学
\ \
是
\ \
与
\ \
东软
\ \
有
\ \
合作
\ \
的
\ \
众多
\ \
高校
\ \
之一
}
;
\node
[anchor=west] (swords) at (shead.east)
{
东北大学
\ \
是
\ \
与
\ \
东软
\ \
有
\ \
合作
\ \
的
\ \
众多
\ \
高校
\ \
之一
}
;
\node
[anchor=north east] (thead) at ([yshift=-0.8em]shead.south east)
{
短语系统
:
}
;
\node
[anchor=north east] (thead) at ([yshift=-0.8em]shead.south east)
{
系统输出
:
}
;
\node
[anchor=west] (twords) at (thead.east)
{
NEU is collaborative relations with Neusoft
}
;
\node
[anchor=west] (twords) at (thead.east)
{
NEU is collaborative relations with Neusoft
}
;
\node
[anchor=north west] (twords2) at ([yshift=-0.2em]twords.south west)
{
is one of the many universities
}
;
\node
[anchor=north west] (twords2) at ([yshift=-0.2em]twords.south west)
{
is one of the many universities
}
;
\node
[anchor=north east] (rhead) at ([yshift=-2.2em]thead.south east)
{
参考译文:
}
;
\node
[anchor=north east] (rhead) at ([yshift=-2.2em]thead.south east)
{
参考译文:
}
;
...
...
Chapter8/Figures/figure-examples-of-translation-with-complex-ordering.tex
查看文件 @
3640834b
...
@@ -25,7 +25,7 @@
...
@@ -25,7 +25,7 @@
\node
[anchor=west]
(synhifstpart6) at (synhifstpart5.east)
{
.
}
;
\node
[anchor=west]
(synhifstpart6) at (synhifstpart5.east)
{
.
}
;
\node
[anchor=north west]
(input) at ([yshift=-6.5em]synhifst.south west)
{
\sffamily\bfseries
{
源语句法树:
}}
;
\node
[anchor=north west]
(input) at ([yshift=-6.5em]synhifst.south west)
{
\sffamily\bfseries
{
源语
言
句法树:
}}
;
\begin{scope}
[scale = 0.9, grow'=up, sibling distance=5pt, level distance=30pt, xshift=3.49in, yshift=-3.1in]
\begin{scope}
[scale = 0.9, grow'=up, sibling distance=5pt, level distance=30pt, xshift=3.49in, yshift=-3.1in]
...
...
Chapter8/chapter8.tex
查看文件 @
3640834b
...
@@ -469,7 +469,7 @@ span\textrm{[2,4]}&=&\textrm{“吃} \quad \textrm{鱼”} \nonumber \\
...
@@ -469,7 +469,7 @@ span\textrm{[2,4]}&=&\textrm{“吃} \quad \textrm{鱼”} \nonumber \\
span
\textrm
{
[0,4]
}&
=
&
\textrm
{
“猫
}
\quad
\textrm
{
喜欢
}
\quad
\textrm
{
吃
}
\quad
\textrm
{
鱼”
}
\nonumber
span
\textrm
{
[0,4]
}&
=
&
\textrm
{
“猫
}
\quad
\textrm
{
喜欢
}
\quad
\textrm
{
吃
}
\quad
\textrm
{
鱼”
}
\nonumber
\end{eqnarray}
\end{eqnarray}
\parinterval
CKY方法是按跨度由小到大的次序执行的,这也对应了一种
{
\small\bfnew
{
自下而上的分析
}}
\index
{
自下而上的分析
}
(Top-
down Parsing)
\index
{
Top-d
own Parsing
}
过程。对于每个跨度,检查:
\parinterval
CKY方法是按跨度由小到大的次序执行的,这也对应了一种
{
\small\bfnew
{
自下而上的分析
}}
\index
{
自下而上的分析
}
(Top-
Down Parsing)
\index
{
Top-D
own Parsing
}
过程。对于每个跨度,检查:
\begin{itemize}
\begin{itemize}
\vspace
{
0.5em
}
\vspace
{
0.5em
}
...
@@ -841,7 +841,7 @@ span\textrm{[0,4]}&=&\textrm{“猫} \quad \textrm{喜欢} \quad \textrm{吃} \q
...
@@ -841,7 +841,7 @@ span\textrm{[0,4]}&=&\textrm{“猫} \quad \textrm{喜欢} \quad \textrm{吃} \q
\subsubsection
{
2. 基于树结构的翻译推导
}
\subsubsection
{
2. 基于树结构的翻译推导
}
\parinterval
规则中的变量预示着一种替换操作,即变量可以被其他树结构替换。实际上,上面的树到树翻译规则就是一种
{
\small\bfnew
{
同步树替换文法
}}
\index
{
同步树替换文法
}
(Synchronous Tree-
Substitution Grammar)
\index
{
Synchronous Tree-S
ubstitution Grammar
}
规则。不论是源语言端还是目标语言端,都可以通过这种替换操作不断生成更大的树结构,也就是通过树片段的组合得到更大的树片段。图
\ref
{
fig:8-20
}
就展示了树替换操作的一个实例。
\parinterval
规则中的变量预示着一种替换操作,即变量可以被其他树结构替换。实际上,上面的树到树翻译规则就是一种
{
\small\bfnew
{
同步树替换文法
}}
\index
{
同步树替换文法
}
(Synchronous Tree-
substitution Grammar)
\index
{
Synchronous Tree-s
ubstitution Grammar
}
规则。不论是源语言端还是目标语言端,都可以通过这种替换操作不断生成更大的树结构,也就是通过树片段的组合得到更大的树片段。图
\ref
{
fig:8-20
}
就展示了树替换操作的一个实例。
%----------------------------------------------
%----------------------------------------------
\begin{figure}
[htp]
\begin{figure}
[htp]
...
@@ -1501,7 +1501,7 @@ d_1 = {d'} \circ {r_5}
...
@@ -1501,7 +1501,7 @@ d_1 = {d'} \circ {r_5}
% NEW SUBSUB-SECTION
% NEW SUBSUB-SECTION
%----------------------------------------------------------------------------------------
%----------------------------------------------------------------------------------------
\subsubsection
{
基于树的解码
}
\subsubsection
{
1.
基于树的解码
}
\parinterval
基于树和基于串的解码都可以使用前面的超图结构进行推导的表示。基于树的解码方法相对简单。直接使用表格结构组织解码空间即可。这里采用自底向上的策略,具体步骤如下:
\parinterval
基于树和基于串的解码都可以使用前面的超图结构进行推导的表示。基于树的解码方法相对简单。直接使用表格结构组织解码空间即可。这里采用自底向上的策略,具体步骤如下:
\begin{itemize}
\begin{itemize}
...
@@ -1540,7 +1540,7 @@ d_1 = {d'} \circ {r_5}
...
@@ -1540,7 +1540,7 @@ d_1 = {d'} \circ {r_5}
% NEW SUBSUB-SECTION
% NEW SUBSUB-SECTION
%----------------------------------------------------------------------------------------
%----------------------------------------------------------------------------------------
\subsubsection
{
基于串的解码
}
\subsubsection
{
2.
基于串的解码
}
\parinterval
基于串的解码过程和句法分析几乎一样。对于输入的源语言句子,基于串的解码需要找到这个句子上的最优推导。唯一不同的地方在于,机器翻译需要考虑译文的生成(语言模型的引入会使问题稍微复杂一些),但是源语言部分的处理和句法分析是一样的。因为不要求用户输入句法树,所以这种方法同时适用于树到串、串到树、树到树等多种模型。本质上,基于串的解码可以探索更多潜在的树结构,并增大搜索空间(相比基于树的解码),因此该方法更有可能找到高质量翻译结果。
\parinterval
基于串的解码过程和句法分析几乎一样。对于输入的源语言句子,基于串的解码需要找到这个句子上的最优推导。唯一不同的地方在于,机器翻译需要考虑译文的生成(语言模型的引入会使问题稍微复杂一些),但是源语言部分的处理和句法分析是一样的。因为不要求用户输入句法树,所以这种方法同时适用于树到串、串到树、树到树等多种模型。本质上,基于串的解码可以探索更多潜在的树结构,并增大搜索空间(相比基于树的解码),因此该方法更有可能找到高质量翻译结果。
...
...
Chapter9/chapter9.tex
查看文件 @
3640834b
差异被折叠。
点击展开。
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论