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
单韦乔
Toy-MT-Introduction
Commits
1c621906
Commit
1c621906
authored
Feb 10, 2020
by
姜雨帆
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update herarchical phrase-based translation
parent
83476203
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
313 行增加
和
1 行删除
+313
-1
Section04-Phrasal-and-Syntactic-Models/section04.tex
+313
-1
没有找到文件。
Section04-Phrasal-and-Syntactic-Models/section04.tex
查看文件 @
1c621906
...
@@ -3586,12 +3586,77 @@ d = r_1 \circ r_2 \circ r_3 \circ r_4
...
@@ -3586,12 +3586,77 @@ d = r_1 \circ r_2 \circ r_3 \circ r_4
%%% 关于文法的约束
%%% 关于文法的约束
\begin{frame}
{
文法的约束
}
\begin{frame}
{
文法的约束
}
% 把文法限制在合理的范围内,使得系统可以处理
% 把文法限制在合理的范围内,使得系统可以处理
\begin{itemize}
\item
按照上面的方法可以抽取到大量的规则,规则太多会降低训练和解码的效率,甚至影响翻译性能,因此需要加入一些
\alert
{
约束
}
来限制文法规则的数目
\vspace
{
0.3em
}
\begin{center}
\begin{tikzpicture}
\begin{scope}
[minimum height = 18pt]
%\node[anchor=east] (s0) at (0, 0) {$\textrm{X} \ \to \ <\textrm{X}_1\ \textrm{希望}\ \textrm{X}_2,\ \textrm{X}_1\ \textrm{wish to}\ \textrm{X}_2>$};
\node
[anchor=north west]
(s1) at (0, 0)
{$
\textrm
{
X
}
\ \to
\
<
\textrm
{
X
}_
1
\ \textrm
{
X
}_
2
\ \textrm
{
之一
}
,
\ \textrm
{
one of
}
\ \textrm
{
X
}_
1
\ \textrm
{
X
}_
2
>
$}
;
\node
[anchor=north west]
(s2) at ([yshift=0.1em]s1.south west)
{$
\textrm
{
X
}
\ \to
\
<
\textrm
{
X
}_
1
\ \textrm
{
X
}_
2
\ \textrm
{
是
}
\ \textrm
{
X
}_
3
,
\ \textrm
{
X
}_
1
\ \textrm
{
X
}_
2
\ \textrm
{
is
}
\ \textrm
{
X
}_
3
>
$}
;
\node
[anchor=north west]
(s3) at ([yshift=0.1em]s2.south west)
{$
\textrm
{
X
}
\ \to
\
<
\textrm
{
X
}_
1
\ \textrm
{
希望...
}
\ \textrm
{
X
}_
2
,
\ \textrm
{
X
}_
1
\ \textrm
{
wish to...
}
\ \textrm
{
X
}_
2
>
$}
;
\draw
[decorate,decoration={brace,amplitude=0.4em,mirror},red,thick]
([xshift=1.3em,yshift=0.3em]s3.south) -- ([xshift=8.0em,yshift=0.3em]s3.south);
\node
[anchor=north]
(wi) at ([xshift=4.7em,yshift=-0.0em]s3.south)
{
\scriptsize
{
\alert
{
超过10个词
}}}
;
\visible
<2->
{
\draw
[-,red]
(s1.west)--(s1.east);
\draw
[-,red]
(s2.west)--(s2.east);
\draw
[-,red]
(s3.west)--(s3.east);
}
\end{scope}
\end{tikzpicture}
\end{center}
\vspace
{
-0.5em
}
\visible
<2->
{
具体包含如下约束
}
\begin{enumerate}
\item
<2-> 规则中的非终结符不可以连续的出现
\item
<2-> 每条规则最多包含两个非终结符
\item
<2-> 抽取规则最多可以跨越10个单词
\end{enumerate}
\item
<3-> 除此之外,不同的语言会有不同的文法约束,可参考
\visible
<3->
{
\textbf
{
Hierarchical Phrase-Based Translation
}
\\
\textbf
{
Chiang, Computational Linguistics, 2007
}
}
\end{itemize}
\end{frame}
\end{frame}
%%%------------------------------------------------------------------------------------------------------------
%%%------------------------------------------------------------------------------------------------------------
%%% 特征
%%% 特征
\begin{frame}
{
特征
}
\begin{frame}
{
特征
}
% 还是David Chiang的论文
% 还是David Chiang的论文
\begin{itemize}
\item
与短语模型一样,层次短语模型也使用判别式模型进行建模 -
$
\textrm
{
P
}
(
d,
\textbf
{
t
}
|
\textbf
{
s
}
)
=
\frac
{
\exp
(
\sum
_{
i
=
1
}^{
M
}
\lambda
_
i
\cdot
h
_
i
(
d,
\textbf
{
s
}
,
\textbf
{
t
}
))
}{
\sum
_{
d',t'
}
\exp
(
\sum
_{
i
=
1
}^{
M
}
\lambda
_
i
\cdot
h
_
i
(
d',
\textbf
{
s
}
,
\textbf
{
t
}
'
))
}$
。其中特征权重
$
\{\lambda
_
i
\}
$
可以使用最小错误率训练进行调优,特征函数
$
\{
h
_
i
\}
$
需要用户定义。
\item
<2-> 这里,所有层次短语规则满足
$
\langle\ \alpha
,
\beta
,
\sim\ \rangle
$
的形式
\begin{itemize}
\item
$
\alpha
$
和
$
\beta
$
表示源语和目标语的规则串,
$
\sim
$
表示他们的对应关系
\item
此外,定义
$
\tau
(
\alpha
)
$
和
$
\tau
(
\beta
)
$
为源语端和目标语端的规则序列。例如
\vspace
{
-0.8em
}
\begin{eqnarray}
\tau
(
\alpha
)
&
=
&
\textrm
{
对
}
\ \textrm
{
X
}_
1
\ \textrm
{
感到
}
\ \textrm
{
X
}_
2
\nonumber
\\
\tau
(
\beta
)
&
=
&
\textrm
{
be
}
\ \textrm
{
X
}_
2
\ \textrm
{
with
}
\ \textrm
{
X
}_
1
\nonumber
\end{eqnarray}
\end{itemize}
\item
<3->
\textbf
{
特征1-2: 短语翻译概率
}
,即正向翻译概率
$
\Pr
(
\tau
(
\alpha
)
|
\tau
(
\beta
))
$
和反向翻译概率
$
\Pr
(
\tau
(
\alpha
)
|
\tau
(
\beta
))
$
。这里,
$
\tau
(
\alpha
)
$
和
$
\tau
(
\beta
)
$
都被看做短语,因此可以直接复用短语系统的方法,使用极大似然估计进行计算。
\end{itemize}
\end{frame}
%%%------------------------------------------------------------------------------------------------------------
%%% 特征
\begin{frame}
{
特征(续)
}
% 给出特征列表
\begin{itemize}
\item
\textbf
{
特征3-4: 词汇翻译概率
}
,即正向词汇翻译概率
$
\Pr
_{
lex
}
(
\bar
{
t
}
|
\bar
{
s
}
)
$
和反向词汇翻译概率
$
\Pr
_{
lex
}
(
\bar
{
s
}
|
\bar
{
t
}
)
$
。用来描述短语对中源语端单词和目标语端单词的对应关系
\item
\textbf
{
特征5:
$
n
$
-gram语言模型
}
,即
$
\textrm
{
P
}_{
\textrm
{
lm
}}
(
\textbf
{
t
}
)
$
。度量译文的流畅度,可以使用大规模目标语单语数据得到。
\item
<2->
\textbf
{
特征6:译文长度
}
,即
$
|
\textbf
{
t
}
|
$
。避免模型倾向于短译文,同时让系统自动学习对译文长度的偏好。
\item
<2->
\textbf
{
特征7:翻译规则数量
}
。这个特征是为了避免模型仅仅使用少量特征构成翻译推导(因为翻译概率相乘,因子少结果一般会大一些),同时让系统自动学习对使用规则数量的偏好。
\item
<2->
\textbf
{
特征8:源语言被翻译为空的单词数量
}
。注意,空翻译规则(或特征)有时也被称作evil feature,这类特征在一些数据集上对BLEU有很好的提升作用,但是会造成人工评价的下降,因此需要谨慎使用。
\end{itemize}
\end{frame}
\end{frame}
%%%------------------------------------------------------------------------------------------------------------
%%%------------------------------------------------------------------------------------------------------------
...
@@ -3601,6 +3666,129 @@ d = r_1 \circ r_2 \circ r_3 \circ r_4
...
@@ -3601,6 +3666,129 @@ d = r_1 \circ r_2 \circ r_3 \circ r_4
%%% CYK解码
%%% CYK解码
\begin{frame}
{
CYK解码
}
\begin{frame}
{
CYK解码
}
% 看NiuTrans Manual
% 看NiuTrans Manual
\begin{itemize}
\item
基于层次短语的翻译解码与基于短语的模型类似,都是要找到使
$
\textrm
{
score
}
(
d
)
$
达到最大的翻译推导
$
d
$
\vspace
{
-0.5em
}
\begin{displaymath}
\hat
{
d
}
=
\argmax
_{
d
\in
D
}
\textrm
{
score
}
(d)
\end{displaymath}
\vspace
{
-0.8em
}
\begin{itemize}
\item
由于翻译推导由SCFG构成,使用CYK算法进行解码
\item
CYK算法解码是一个用来判定任意给定的字符串 是否属于一个上下文无关文法的算法,具体流程如下
\end{itemize}
\vspace
{
0.5em
}
\begin{center}
\begin{tikzpicture}
\node
[anchor=south west,rectangle,draw=ublue,thick,inner sep=0.4em,fill=white,drop shadow] (sourceG) at (0,0)
{{
\color
{
ublue
}
\footnotesize
{
\textbf
{
S端文法
}}}}
;
\node
[anchor=west,rectangle,draw=ublue,thick,inner sep=0.4em,fill=white,drop shadow] (chom) at ([xshift=3.5em]sourceG.east)
{{
\color
{
ublue
}
\footnotesize
{
\textbf
{
乔姆斯基范式
}}}}
;
\node
[anchor=west,rectangle,draw=ublue,thick,inner sep=0.4em,fill=white,drop shadow] (targetG) at ([xshift=3.5em]chom.east)
{{
\color
{
ublue
}
\footnotesize
{
\textbf
{
T端文法
}}}}
;
\draw
[->,very thick]
([xshift=0.1em]sourceG.east) -- ([xshift=-0.1em]chom.west);
\draw
[->,very thick]
([xshift=-0.1em]targetG.west) -- ([xshift=0.1em]chom.east);
\node
[anchor=north west,rectangle,draw=ublue,thick,inner sep=0.4em,fill=white,drop shadow,minimum height=1.2cm] (sourceS) at ([yshift=-1em]sourceG.south west)
{{
\color
{
ublue
}
\footnotesize
{
\textbf
{
S端句子
}}}}
;
\node
[anchor=north west,rectangle,draw=ublue,thick,inner sep=0.4em,fill=white,drop shadow,minimum height=1.2cm] (targetS) at ([yshift=-1em]targetG.south west)
{{
\color
{
ublue
}
\footnotesize
{
\textbf
{
T端句子
}}}}
;
\node
[anchor=north,rectangle,draw=ublue,thick,inner sep=0.4em,fill=white,drop shadow,minimum height=1.2cm] (parse) at ([yshift=-1em]chom.south)
{{
\color
{
ublue
}
\footnotesize
{
\textbf
{
解析得到最好的翻译
}}}}
;
\draw
[->,very thick]
([xshift=0.1em]sourceS.east) -- ([xshift=-0.1em]parse.west);
\draw
[->,very thick]
([xshift=0.1em]parse.east) -- ([xshift=-0.1em]targetS.west);
\draw
[->,very thick]
([yshift=-0.1em]chom.south) -- ([yshift=0.1em]parse.north);
\end{tikzpicture}
\end{center}
\vspace
{
0.3em
}
\item
由于对文法中的非终结符进行了限制,可以直接使用CYK算法进行解码,无需转换成乔姆斯基范式
\end{itemize}
\end{frame}
%%%------------------------------------------------------------------------------------------------------------
%%% CYK解码
\begin{frame}
{
CYK解码(续)
}
% 看NiuTrans Manual
\begin{itemize}
\item
CYK解码提出了一种cell的数据结构,用来记录所有可能出现的翻译假设。
\begin{itemize}
\item
<2-> 对于每个源语句子,使用短语规则表初始化它的cell
\item
<3-> 自底向上对cell中的每个子cell进行重新组合(正向、反向)
\item
<4-> 计算每个推导的得分并记录下来,最终选择最优推导所对应的译文作为输出
\end{itemize}
\end{itemize}
\vspace
{
-0.8em
}
\begin{center}
\begin{tikzpicture}
\visible
<2->
{
\node
[anchor=west] (s1) at (0,0)
{
\small
{
\textbf
{
进口
}}}
;
\node
[anchor=west] (s2) at ([xshift=4em]s1.east)
{
\small
{
\textbf
{
大幅度
}}}
;
\node
[anchor=west] (s3) at ([xshift=2.8em]s2.east)
{
\small
{
\textbf
{
下降
}}}
;
\node
[anchor=west] (s4) at ([xshift=2.8em]s3.east)
{
\small
{
\textbf
{
了
}}}
;
\node
[anchor=north] (t11) at ([yshift=-0.4em]s1.south)
{
\scriptsize
{
Imports
}}
;
\node
[anchor=west] (t12) at ([yshift=-1em]t11.west)
{
\scriptsize
{
The imports
}}
;
\node
[anchor=west] (t13) at ([yshift=-0.7em]t12.west)
{
\scriptsize
{
...
}}
;
\node
[anchor=north] (t21) at ([yshift=-0.4em]s2.south)
{
\scriptsize
{
drastically
}}
;
\node
[anchor=west] (t22) at ([yshift=-1em]t21.west)
{
\scriptsize
{
substantially
}}
;
\node
[anchor=west] (t23) at ([yshift=-0.7em]t22.west)
{
\scriptsize
{
...
}}
;
\node
[anchor=north] (t31) at ([yshift=-0.4em]s3.south)
{
\scriptsize
{
fall
}}
;
\node
[anchor=west] (t32) at ([yshift=-1em]t31.west)
{
\scriptsize
{
fallen
}}
;
\node
[anchor=west] (t33) at ([yshift=-0.7em]t32.west)
{
\scriptsize
{
...
}}
;
\node
[anchor=north] (t41) at ([yshift=-0.4em]s4.south)
{
\scriptsize
{
have
}}
;
\node
[anchor=west] (t42) at ([yshift=-1em]t41.west)
{
\scriptsize
{
had
}}
;
\node
[anchor=west] (t43) at ([yshift=-0.7em]t42.west)
{
\scriptsize
{
...
}}
;
}
\visible
<3->
{
\node
[anchor=west] (t51) at ([xshift=2em,yshift=-1.8em]t23.west)
{
\scriptsize
{
drastically
\
fallen
}}
;
\node
[anchor=west] (t53) at ([yshift=-0.7em]t51.west)
{
\scriptsize
{
...
}}
;
}
\visible
<4->
{
\node
[anchor=west] (t61) at ([xshift=3em,yshift=-1.8em]t53.west)
{
\scriptsize
{
have
\
drastically
\
fallen
}}
;
\node
[anchor=west] (t62) at ([yshift=-0.7em]t61.west)
{
\scriptsize
{
...
}}
;
\node
[anchor=west] (t71) at ([xshift=-6em,yshift=-1.8em]t62.west)
{
\scriptsize
{
The
\
imports
}}
;
\node
[anchor=west] (t72) at ([xshift=0.2em]t71.east)
{
\scriptsize
{
have
\
drastically
\
fallen
}}
;
\node
[anchor=west] (t73) at ([yshift=-0.7em]t71.west)
{
\scriptsize
{
...
}}
;
}
\begin{pgfonlayer}
{
background
}
\visible
<2->
{
\node
[rectangle,inner sep=0.05em,fill=red!20] [fit = (t11) (t12) (t13)] (box1)
{}
;
\node
[rectangle,inner sep=0.05em,fill=green!20] [fit = (t21) (t22) (t23)] (box2)
{}
;
\node
[rectangle,inner sep=0.05em,fill=blue!20,minimum width=3em] [fit = (t31) (t32) (t33)] (box3)
{}
;
\node
[rectangle,inner sep=0.05em,fill=orange!20,minimum width=3em] [fit = (t41) (t42) (t43)] (box4)
{}
;
}
\visible
<3->
{
\node
[rectangle,inner sep=0.05em,fill=purple!20] [fit = (t51) (t53)] (box5)
{}
;
}
\visible
<4->
{
\node
[rectangle,inner sep=0.05em,fill=yellow!20] [fit = (t61) (t62)] (box6)
{}
;
\node
[rectangle,inner sep=0.05em,fill=black!10] [fit = (t71) (t72) (t73)] (box7)
{}
;
}
\end{pgfonlayer}
\visible
<2->
{
\node
[anchor=south east,inner sep=1pt,fill=black] (tl1) at (box1.south east)
{
\tiny
{{
\color
{
white
}
\textbf
{
1
}}}}
;
\node
[anchor=south east,inner sep=1pt,fill=black] (tl2) at (box2.south east)
{
\tiny
{{
\color
{
white
}
\textbf
{
2
}}}}
;
\node
[anchor=south east,inner sep=1pt,fill=black] (tl3) at (box3.south east)
{
\tiny
{{
\color
{
white
}
\textbf
{
3
}}}}
;
\node
[anchor=south east,inner sep=1pt,fill=black] (tl4) at (box4.south east)
{
\tiny
{{
\color
{
white
}
\textbf
{
4
}}}}
;
}
\visible
<3->
{
\draw
[->,thick] (t22.south) .. controls +(south:0.5) and +(north:0.5) .. (t51.north);
\draw
[->,thick] (t32.south) .. controls +(south:0.5) and +(north:0.5) .. (t51.north);
\node
[anchor=south east,inner sep=1pt,fill=black] (tl5) at (box5.south east)
{
\tiny
{{
\color
{
white
}
\textbf
{
2-3
}}}}
;
}
\visible
<4->
{
\draw
[->,thick] (t51.south) .. controls +(south:0.5) and +(north:0.5) .. (t61.north);
\draw
[->,thick] (t42.south) .. controls +(south:2) and +(north:0.5) .. (t61.north);
\draw
[->,thick] (t61.south) .. controls +(south:0.5) and +(north:0.5) .. (t72.north);
\draw
[->,thick] (t12.south) .. controls +(south:2.5) and +(north:0.8) .. (t71.north);
\node
[anchor=south east,inner sep=1pt,fill=black] (tl6) at (box6.south east)
{
\tiny
{{
\color
{
white
}
\textbf
{
2-4
}}}}
;
\node
[anchor=south east,inner sep=1pt,fill=black] (tl7) at (box7.south east)
{
\tiny
{{
\color
{
white
}
\textbf
{
1-4
}}}}
;
}
\end{tikzpicture}
\end{center}
\end{frame}
\end{frame}
%%%------------------------------------------------------------------------------------------------------------
%%%------------------------------------------------------------------------------------------------------------
...
@@ -3611,14 +3799,138 @@ d = r_1 \circ r_2 \circ r_3 \circ r_4
...
@@ -3611,14 +3799,138 @@ d = r_1 \circ r_2 \circ r_3 \circ r_4
\begin{frame}
{
立方剪枝(Cube Pruning)
}
\begin{frame}
{
立方剪枝(Cube Pruning)
}
% 问题
% 问题
% 解决方法
% 解决方法
\begin{itemize}
\item
前面介绍的解码方法由于搜索空间非常大,速度很慢,通常使用剪枝的方法来加速这个过程
\begin{itemize}
\item
解码时对来自不同的cell进行合并时,第一个cell包含
$
n
$
个条目,第二个cell包含
$
m
$
个条目,就会产生
$
n
\times
m
$
个新条目
\vspace
{
0.8em
}
\begin{center}
\begin{tikzpicture}
\node
[anchor=west] (s1) at (0,0)
{
\footnotesize
{$
\textrm
{
X
}
\to
<
\textrm
{
从
}
\ \textrm
{
X
}_
1
,
\ \textrm
{
from
}
\ \textrm
{
X
}_
1
>
$}}
;
\node
[anchor=east] (s2) at ([yshift=-2em]s1.east)
{
\footnotesize
{$
\textrm
{
X
}
\to
<
\textrm
{
从
}
\ \textrm
{
X
}_
1
,
\ \textrm
{
since
}
\ \textrm
{
X
}_
1
>
$}}
;
\node
[anchor=east] (s3) at ([yshift=-2em]s2.east)
{
\footnotesize
{$
\textrm
{
X
}
\to
<
\textrm
{
从
}
\ \textrm
{
X
}_
1
,
\ \textrm
{
from the
}
\ \textrm
{
X
}_
1
>
$}}
;
\node
[anchor=east] (s4) at ([yshift=-2em]s3.east)
{
\footnotesize
{$
\textrm
{
X
}
\to
<
\textrm
{
从
}
\ \textrm
{
X
}_
1
,
\ \textrm
{
through
}
\ \textrm
{
X
}_
1
>
$}}
;
\node
[anchor=west] (t1) at ([xshift=2.5em]s1.east)
{
\footnotesize
{$
\textrm
{
X
}
\to
<
\textrm
{
计划
}
,
\ \textrm
{
plan
}
>
$}}
;
\node
[anchor=west] (t2) at ([xshift=2.5em]s2.east)
{
\footnotesize
{$
\textrm
{
X
}
\to
<
\textrm
{
方案
}
,
\ \textrm
{
scheme
}
>
$}}
;
\node
[anchor=west] (t3) at ([xshift=2.5em]s3.east)
{
\footnotesize
{$
\textrm
{
X
}
\to
<
\textrm
{
项目
}
,
\ \textrm
{
project
}
>
$}}
;
\node
[anchor=west] (t4) at ([xshift=2.5em]s4.east)
{
\footnotesize
{$
\textrm
{
X
}
\to
<
\textrm
{
时期
}
,
\ \textrm
{
times
}
>
$}}
;
\foreach
\x
in
{
1,2,...,4
}
\foreach
\y
in
{
1,2,...,4
}
\draw
[->]
([xshift=0.1em]s
\x
.east) -- ([xshift=-0.1em]t
\y
.west);
\begin{pgfonlayer}
{
background
}
\node
[rectangle,inner sep=0.3em,fill=red!20] [fit = (s1) (s3) (s4)] (box1)
{}
;
\node
[rectangle,inner sep=0.3em,fill=green!20] [fit = (t1) (t2) (t3) (t4)] (box2)
{}
;
\end{pgfonlayer}
\end{tikzpicture}
\end{center}
\vspace
{
0.3em
}
\item
当
$
n
$
和
$
m
$
都很大时,会产生很多新的条目,可以通过限制栈的大小来舍弃大部分条目
\item
另一个思路就是如何只生成有机会被选中的条目,这就是
\alert
{
立方剪枝(cube pruning)
}
的思想
\end{itemize}
\end{itemize}
\end{frame}
%%%------------------------------------------------------------------------------------------------------------
%%% 立方剪枝
\begin{frame}
{
立方剪枝(Cube Pruning)(续)
}
% 问题
% 解决方法
\begin{itemize}
\item
不是考虑所有可能的组合,而是从
\alert
{
最优
}
候选开始选择
\begin{itemize}
\item
根据代价估计对每个cell中的条目进行排序,最好的候选在最顶层,次优候选排在后面
\item
<2-> 计算所有邻居的代价,选择最优的条目,再计算其邻居的代价,不断进行迭代
\item
<3-> 直到产生的条目达到一定的数量(如栈容量)或者新加入的条目被其他剪枝策略丢弃,则终止算法
\end{itemize}
\end{itemize}
\begin{center}
\begin{tikzpicture}
\tikzstyle
{
alignmentnode
}
= [rectangle,fill=blue!30,minimum size=0.4em,text=white,inner sep=0.1pt]
\tikzstyle
{
selectnode
}
= [rectangle,fill=green!20,minimum height=1.5em,minimum width=1.5em,inner sep=1.2pt]
\tikzstyle
{
srcnode
}
= [rotate=45,anchor=south west]
\begin{scope}
[scale=0.85]
\node
[anchor=west] (s1) at (0,0)
{
\footnotesize
{$
\textrm
{
X
}
\to
<
\textrm
{
从
}
\ \textrm
{
X
}_
1
,
\ \textrm
{
from
}
\ \textrm
{
X
}_
1
>
$}}
;
\node
[anchor=east] (s2) at ([yshift=-2em]s1.east)
{
\footnotesize
{$
\textrm
{
X
}
\to
<
\textrm
{
从
}
\ \textrm
{
X
}_
1
,
\ \textrm
{
since
}
\ \textrm
{
X
}_
1
>
$}}
;
\node
[anchor=east] (s3) at ([yshift=-2em]s2.east)
{
\footnotesize
{$
\textrm
{
X
}
\to
<
\textrm
{
从
}
\ \textrm
{
X
}_
1
,
\ \textrm
{
from the
}
\ \textrm
{
X
}_
1
>
$}}
;
\node
[anchor=east] (s4) at ([yshift=-2em]s3.east)
{
\footnotesize
{$
\textrm
{
X
}
\to
<
\textrm
{
从
}
\ \textrm
{
X
}_
1
,
\ \textrm
{
through
}
\ \textrm
{
X
}_
1
>
$}}
;
\node
[anchor=center,alignmentnode] (alig1) at ([xshift=2.5em]s1.east)
{}
;
\node
[anchor=center,alignmentnode] (alig11) at ([xshift=2.2em]alig1.center)
{}
;
\node
[anchor=center,alignmentnode] (alig12) at ([xshift=2.2em]alig11.center)
{}
;
\node
[anchor=center,alignmentnode] (alig13) at ([xshift=2.2em]alig12.center)
{}
;
\node
[anchor=center,alignmentnode] (alig2) at ([xshift=2.5em]s2.east)
{}
;
\node
[anchor=center,alignmentnode] (alig21) at ([xshift=2.2em]alig2.center)
{}
;
\node
[anchor=center,alignmentnode] (alig22) at ([xshift=2.2em]alig21.center)
{}
;
\node
[anchor=center,alignmentnode] (alig23) at ([xshift=2.2em]alig22.center)
{}
;
\node
[anchor=center,alignmentnode] (alig3) at ([xshift=2.5em]s3.east)
{}
;
\node
[anchor=center,alignmentnode] (alig31) at ([xshift=2.2em]alig3.center)
{}
;
\node
[anchor=center,alignmentnode] (alig32) at ([xshift=2.2em]alig31.center)
{}
;
\node
[anchor=center,alignmentnode] (alig33) at ([xshift=2.2em]alig32.center)
{}
;
\node
[anchor=center,alignmentnode] (alig4) at ([xshift=2.5em]s4.east)
{}
;
\node
[anchor=center,alignmentnode] (alig41) at ([xshift=2.2em]alig4.center)
{}
;
\node
[anchor=center,alignmentnode] (alig42) at ([xshift=2.2em]alig41.center)
{}
;
\node
[anchor=center,alignmentnode] (alig43) at ([xshift=2.2em]alig42.center)
{}
;
\node
[srcnode]
(c1) at ([yshift=1em]alig1.north)
{
\footnotesize
{
plan
}}
;
\node
[srcnode]
(c2) at ([yshift=1em]alig11.north)
{
\footnotesize
{
scheme
}}
;
\node
[srcnode]
(c3) at ([yshift=1em]alig12.north)
{
\footnotesize
{
project
}}
;
\node
[srcnode]
(c4) at ([yshift=1em]alig13.north)
{
\footnotesize
{
times
}}
;
\visible
<2->
{
\node
[anchor=center,selectnode] (c1) at (alig1.center)
{
\footnotesize
{
2.1
}}
;
}
\visible
<3->
{
\node
[anchor=center,selectnode,fill=red!20] (c2) at (alig11.center)
{
\footnotesize
{
5.1
}}
;
\node
[anchor=center,selectnode,fill=red!20] (c3) at (alig2.center)
{
\footnotesize
{
5.5
}}
;
}
\visible
<4->
{
\node
[anchor=center,selectnode] (c2) at (alig11.center)
{
\footnotesize
{
5.1
}}
;
\node
[anchor=center,selectnode] (c3) at (alig2.center)
{
\footnotesize
{
5.5
}}
;
\node
[anchor=center,selectnode,fill=red!20] (c4) at (alig12.center)
{
\footnotesize
{
8.2
}}
;
\node
[anchor=center,selectnode,fill=red!20] (c5) at (alig21.center)
{
\footnotesize
{
8.5
}}
;
\node
[anchor=center,selectnode,fill=red!20] (c6) at (alig3.center)
{
\footnotesize
{
7.7
}}
;
}
\end{scope}
\end{tikzpicture}
\end{center}
\end{frame}
\end{frame}
%%%------------------------------------------------------------------------------------------------------------
%%%------------------------------------------------------------------------------------------------------------
%%% BLEU等评价
%%% BLEU等评价
\begin{frame}
{
效果
}
\begin{frame}
{
效果
}
% 实验结果
% 实验结果
\end{frame}
\begin{itemize}
\item
从实验结果中可以看出,基于层次短语的翻译模型性能要优于基于短语的翻译模型
\item
选择使用层次短语信息实际上增加了模型的复杂度,但是可以通过借鉴基于短语的翻译模型模型以及CYK解码和立方剪枝等技术来解决
\item
可以考虑加入更多句法信息来进一步提升模型性能
\end{itemize}
%\vspace{-1em}
\begin{center}
\begin{tabular}
{
l | l | l | l
}
\multicolumn
{
2
}{
c|
}{
模型
}
&
开发集
&
测试集
\\
\multicolumn
{
2
}{
c|
}{}
&
(BLEU[
\%
])
&
(BLEU[
\%
])
\\
\hline
\multicolumn
{
2
}{
l|
}{
短语(Moses)
}
&
36.51
&
34.93
\\
\multicolumn
{
2
}{
l|
}{
短语(NiuTrans)
}
&
36.99
&
35.29
\\
\hline
\multicolumn
{
2
}{
l|
}{
层次短语(Moses)
}
&
36.65
&
34.79
\\
\multicolumn
{
2
}{
l|
}{
层次短语(NiuTrans)
}
&
37.41
&
35.35
\\
\hline
\end{tabular}
\end{center}
\vspace
{
-0.5em
}
\scriptsize
{
* 以上结果来自 NiuTrans: An Open Source Toolkit for Phrase-based Machine Translation
}
\\
\scriptsize
{
* 开发集:NIST MT03,测试集:NIST MT05
}
\\
\end{frame}
%%%------------------------------------------------------------------------------------------------------------
%%%------------------------------------------------------------------------------------------------------------
\section
{
基于语言学句法的模型
}
\section
{
基于语言学句法的模型
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论