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
c36bc0ad
Commit
c36bc0ad
authored
Jan 12, 2020
by
xiaotong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
tree matching
parent
af19426a
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
199 行增加
和
0 行删除
+199
-0
Section04-Phrasal-and-Syntactic-Models/section04-test.tex
+0
-0
Section04-Phrasal-and-Syntactic-Models/section04.tex
+199
-0
没有找到文件。
Section04-Phrasal-and-Syntactic-Models/section04-test.tex
查看文件 @
c36bc0ad
差异被折叠。
点击展开。
Section04-Phrasal-and-Syntactic-Models/section04.tex
查看文件 @
c36bc0ad
...
@@ -4609,6 +4609,205 @@ NP-BAR(NN$_1$ NP-BAR$_2$) $\to$ NN$_1$ NP-BAR$_2$
...
@@ -4609,6 +4609,205 @@ NP-BAR(NN$_1$ NP-BAR$_2$) $\to$ NN$_1$ NP-BAR$_2$
\end
{
frame
}
\end
{
frame
}
%%%------------------------------------------------------------------------------------------------------------
%%% 基于树的解码方法 - chart-based decoding
\begin
{
frame
}{
基于树的解码
-
基于chart的方法
}
\begin
{
itemize
}
\item
基于chart这种结构,可以很容易的构建解码所用的超图。常用的方法是自底向上解码:
\begin
{
itemize
}
\item
从源语言句法树的叶子节点开始,自下而上访问树的节点
\item
对于每个跨度,如果对应一个树节点,则匹配相应的规则
\item
从树的根节点可以得到翻译推导,最终选择最优推导所对应的译文输出
\end
{
itemize
}
\end
{
itemize
}
\visible
<
2
-
>
{
\begin
{
minipage
}
[
b
]
{
0
.
42
\linewidth
}
\begin
{
center
}
\begin
{
tikzpicture
}
\begin
{
scope
}
\tikzstyle
{
chartnode
}
=[
rectangle,minimum size
=
1
.
3
em,draw
]
\node
[
chartnode,anchor
=
north west
]
(
cell
11
)
at
(
0
,
0
)
{}
;
\node
[
chartnode,anchor
=
north west
]
(
cell
21
)
at
([
yshift
=-
0
em
]
cell
11
.south west
)
{}
;
\node
[
chartnode,anchor
=
west
]
(
cell
22
)
at
(
cell
21
.east
)
{}
;
\node
[
chartnode,anchor
=
north west
]
(
cell
31
)
at
([
yshift
=-
0
em
]
cell
21
.south west
)
{}
;
\node
[
chartnode,anchor
=
west
]
(
cell
32
)
at
(
cell
31
.east
)
{}
;
\node
[
chartnode,anchor
=
west
]
(
cell
33
)
at
(
cell
32
.east
)
{}
;
\node
[
chartnode,anchor
=
north west
]
(
cell
41
)
at
([
yshift
=-
0
em
]
cell
31
.south west
)
{}
;
\node
[
chartnode,anchor
=
west
]
(
cell
42
)
at
(
cell
41
.east
)
{}
;
\node
[
chartnode,anchor
=
west
]
(
cell
43
)
at
(
cell
42
.east
)
{}
;
\node
[
chartnode,anchor
=
west
]
(
cell
44
)
at
(
cell
43
.east
)
{}
;
\tikzstyle
{
chartnode
2
}
=[
rectangle,minimum size
=
1
.
3
em,fill
=
orange
!
20
]
\node
<
3
-
>
[
chartnode
2
,anchor
=
north west
]
(
cell
11
)
at
(
0
,
0
)
{}
;
\node
<
4
-
>
[
chartnode
2
,anchor
=
north west
]
(
cell
21
)
at
([
yshift
=-
0
em
]
cell
11
.south west
)
{}
;
\node
<
7
-
>
[
chartnode
2
,anchor
=
west
]
(
cell
22
)
at
(
cell
21
.east
)
{}
;
\node
<
5
-
>
[
chartnode
2
,anchor
=
north west
]
(
cell
31
)
at
([
yshift
=-
0
em
]
cell
21
.south west
)
{}
;
\node
<
8
-
>
[
chartnode
2
,anchor
=
west
]
(
cell
32
)
at
(
cell
31
.east
)
{}
;
\node
<
10
-
>
[
chartnode
2
,anchor
=
west
]
(
cell
33
)
at
(
cell
32
.east
)
{}
;
\node
<
6
-
>
[
chartnode
2
,anchor
=
north west
]
(
cell
41
)
at
([
yshift
=-
0
em
]
cell
31
.south west
)
{}
;
\node
<
9
-
>
[
chartnode
2
,anchor
=
west
]
(
cell
42
)
at
(
cell
41
.east
)
{}
;
\node
<
11
-
>
[
chartnode
2
,anchor
=
west
]
(
cell
43
)
at
(
cell
42
.east
)
{}
;
\node
<
12
-
>
[
chartnode
2
,anchor
=
west
]
(
cell
44
)
at
(
cell
43
.east
)
{}
;
\node
[
anchor
=
east
]
(
s
1
)
at
(
cell
11
.west
)
{
\scriptsize
{
猫
}}
;
\node
[
anchor
=
east
]
(
s
2
)
at
(
cell
21
.west
)
{
\scriptsize
{
喜欢
}}
;
\node
[
anchor
=
east
]
(
s
3
)
at
(
cell
31
.west
)
{
\scriptsize
{
吃
}}
;
\node
[
anchor
=
east
]
(
s
4
)
at
(
cell
41
.west
)
{
\scriptsize
{
鱼
}}
;
\node
[
anchor
=
north
]
(
t
5
)
at
(
cell
41
.south
)
{
\tiny
{$
l
$
=
1
}}
;
\node
[
anchor
=
north
]
(
t
5
)
at
(
cell
42
.south
)
{
\tiny
{$
l
$
=
2
}}
;
\node
[
anchor
=
north
]
(
t
5
)
at
(
cell
43
.south
)
{
\tiny
{$
l
$
=
3
}}
;
\node
[
anchor
=
north
]
(
t
5
)
at
(
cell
44
.south
)
{
\tiny
{$
l
$
=
4
}}
;
\node
[
anchor
=
north
]
(
chartlabel
)
at
([
yshift
=-
1
em
]
cell
42
.south east
)
{
\footnotesize
{
\textbf
{
chart
}}}
;
\node
[
anchor
=
north west
]
(
w
1
)
at
([
yshift
=-
2
.
5
em,xshift
=-
2
.
0
em
]
cell
41
.south west
)
{
猫
}
;
\node
[
anchor
=
west
]
(
w
2
)
at
([
xshift
=
0
.
3
em
]
w
1
.east
)
{
喜欢
}
;
\node
[
anchor
=
west
]
(
w
3
)
at
([
xshift
=
0
.
3
em
]
w
2
.east
)
{
吃
}
;
\node
[
anchor
=
west
]
(
w
4
)
at
([
xshift
=
0
.
3
em
]
w
3
.east
)
{
鱼
}
;
\node
[
anchor
=
north east
]
(
p
0
)
at
([
xshift
=
0
.
3
em
]
w
1
.south west
)
{
\blue
{
0
}}
;
\node
[
anchor
=
north east
]
(
p
1
)
at
([
xshift
=
0
.
3
em
]
w
2
.south west
)
{
\blue
{
1
}}
;
\node
[
anchor
=
north east
]
(
p
2
)
at
([
xshift
=
0
.
3
em
]
w
3
.south west
)
{
\blue
{
2
}}
;
\node
[
anchor
=
north east
]
(
p
3
)
at
([
xshift
=
0
.
3
em
]
w
4
.south west
)
{
\blue
{
3
}}
;
\node
[
anchor
=
north west
]
(
p
4
)
at
([
xshift
=-
0
.
4
em
]
w
4
.south east
)
{
\blue
{
4
}}
;
\node
[
anchor
=
north
]
(
slabel
)
at
(
p
2
.south
)
{
\scriptsize
{
\textbf
{
源语言句子
}}}
;
\end
{
scope
}
\end
{
tikzpicture
}
\end
{
center
}
\end
{
minipage
}
\begin
{
minipage
}
[
b
]
{
0
.
55
\linewidth
}
{
\footnotesize
\visible
<
3
-
>
{
\begin
{
tabular
}{
l l l l
}
\visible
<
3
-
>
{
序号
}
&
\visible
<
3
-
>
{
跨度
}
&
\visible
<
3
-
>
{
标记
}
&
\visible
<
3
-
>
{
源语句子片段
}
\\
\hline
\visible
<
3
-
>
{
1
}
&
\visible
<
3
-
>
{
[
{
\blue
0
}
,
{
\blue
1
}
]
}
&
\visible
<
3
-
>
{
NN
\&
NP
}
&
\visible
<
3
-
>
{
猫
}
\\
\visible
<
4
-
>
{
2
}
&
\visible
<
4
-
>
{
[
{
\blue
1
}
,
{
\blue
2
}
]
}
&
\visible
<
4
-
>
{
VV
}
&
\visible
<
4
-
>
{
喜欢
}
\\
\visible
<
5
-
>
{
3
}
&
\visible
<
5
-
>
{
[
{
\blue
2
}
,
{
\blue
5
}
]
}
&
\visible
<
5
-
>
{
VV
}
&
\visible
<
5
-
>
{
吃
}
\\
\visible
<
6
-
>
{
4
}
&
\visible
<
6
-
>
{
[
{
\blue
3
}
,
{
\blue
6
}
]
}
&
\visible
<
6
-
>
{
NN
\&
NP
}
&
\visible
<
6
-
>
{
鱼
}
\\
\visible
<
7
-
>
{
5
}
&
\visible
<
7
-
>
{
[
{
\blue
0
}
,
{
\blue
2
}
]
}
&
\visible
<
7
-
>
{
N
/
A
}
&
\visible
<
7
-
>
{
猫 喜欢
}
\\
\visible
<
8
-
>
{
6
}
&
\visible
<
8
-
>
{
[
{
\blue
1
}
,
{
\blue
3
}
]
}
&
\visible
<
8
-
>
{
N
/
A
}
&
\visible
<
8
-
>
{
喜欢 吃
}
\\
\visible
<
9
-
>
{
7
}
&
\visible
<
9
-
>
{
[
{
\blue
2
}
,
{
\blue
4
}
]
}
&
\visible
<
9
-
>
{
VP
}
&
\visible
<
9
-
>
{
吃 鱼
}
\\
\visible
<
10
-
>
{
8
}
&
\visible
<
10
-
>
{
[
{
\blue
0
}
,
{
\blue
3
}
]
}
&
\visible
<
10
-
>
{
N
/
A
}
&
\visible
<
10
-
>
{
猫 喜欢 吃
}
\\
\visible
<
11
-
>
{
9
}
&
\visible
<
11
-
>
{
[
{
\blue
1
}
,
{
\blue
4
}
]
}
&
\visible
<
11
-
>
{
VP
}
&
\visible
<
11
-
>
{
喜欢 吃 鱼
}
\\
\visible
<
12
-
>
{
10
}
&
\visible
<
12
-
>
{
[
{
\blue
0
}
,
{
\blue
4
}
]
}
&
\visible
<
12
-
>
{
IP
(
\alert
{
root
}
)
}
&
\visible
<
12
-
>
{
猫 喜欢 吃 鱼
}
\\
\\
\end
{
tabular
}
}
}
\end
{
minipage
}
}
\end
{
frame
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% 规则使用 - 基于树的匹配
\begin
{
frame
}{
使用树结构匹配树到串规则
}
\begin
{
itemize
}
\item
对于规则的源语言部分,可以使用树片段的匹配找到可以使用这条规则位置
\begin
{
itemize
}
\item
匹配的规则会被存入相应的表格单元中
\end
{
itemize
}
\end
{
itemize
}
\vspace
{
-
2
em
}
\begin
{
center
}
\begin
{
tikzpicture
}
\begin
{
scope
}
{
\scriptsize
\begin
{
scope
}
[
sibling distance
=
2
pt,level distance
=
20
pt,grow'
=
up
]
\Tree
[
.
\node
(
treeroot
)
{
IP
}
;
[
.NP
[
.NR 阿都拉
$_
1
$
]]
[
.
\node
(
tn
1
)
{
VP
}
;
[
.
\node
(
tn
2
)
{
PP
}
;
[
.
\node
(
tn
3
)
{
P
}
;
\node
(
cw
1
)
{
对
$_
2
$}
;
]
[
.
\node
(
tn
4
)
{
NP
}
;
\edge
[
roof
]
;
{
自己
$_
3
$
四
$_
4
$
\
个
$_
5
$
\
多
$_
6
$
\
月
$_
7
$
\
以来
$_
8
$
\
的
$_
9
$
\
施政
$_{
10
}$
\
表现
$_{
11
}$}
]
]
[
.
\node
(
tn
5
)
{
VP
}
;
[
.VV 感到
$_{
12
}$
]
[
.NN 满意
$_{
13
}$
]
]
]
]
\end
{
scope
}
\visible
<
2
-
>
{
\node
[
anchor
=
west,fill
=
green
!
20
!
white
]
(
rulepart
1
)
at
([
yshift
=
2
.
0
in,xshift
=-
1
.
3
in
]
treeroot.east
)
{
VP
(
PP
(
P
(
对
)
NP
$_
1
$
)
VP
$_
2
$
)
}
;
\node
[
anchor
=
north west
]
(
rulepart
2
)
at
(
rulepart
1
.south west
)
{$
\to
$
VP
$_
2
$
with NP
$_
1
$}
;
}
\begin
{
pgfonlayer
}{
background
}
\visible
<
2
-
>
{
\node
[
rectangle,draw,inner sep
=
2
pt
]
[
fit
=
(
rulepart
1
)
(
rulepart
2
)]
(
rulemark
)
{}
;
}
\end
{
pgfonlayer
}
\visible
<
2
-
>
{
\node
[
anchor
=
south west
]
at
(
rulemark.north west
)
{
\tiny
{
\textbf
{
树到串翻译规则
}}}
;
}
}
\begin
{
scope
}
[
xshift
=
1
.
5
in,yshift
=
1
.
6
in
]
\visible
<
3
-
>
{
\node
[
anchor
=
center, minimum size
=
10
pt,draw
]
(
cell
1
and
1
)
at
(
0
,
0
)
{}
;
\node
[
anchor
=
center, minimum size
=
10
pt,draw
]
(
cell
2
and
1
)
at
([
xshift
=
10
pt
]
cell
1
and
1
.center
)
{}
;
\node
[
anchor
=
center, minimum size
=
10
pt,draw
]
(
cell
3
and
1
)
at
([
xshift
=
10
pt
]
cell
2
and
1
.center
)
{}
;
\node
[
anchor
=
center, minimum size
=
10
pt
]
(
cell
4
and
1
)
at
([
xshift
=
15
pt
]
cell
3
and
1
.center
)
{
\tiny
{$
\dots
$}}
;
\node
[
anchor
=
center, minimum size
=
10
pt,draw
]
(
cellnand
1
)
at
([
xshift
=
13
pt
]
cell
4
and
1
.center
)
{}
;
\node
[
anchor
=
center, minimum size
=
10
pt,draw
]
(
cell
1
and
2
)
at
([
yshift
=
10
pt
]
cell
1
and
1
.center
)
{}
;
\node
[
anchor
=
center, minimum size
=
10
pt,draw
]
(
cell
2
and
2
)
at
([
xshift
=
10
pt
]
cell
1
and
2
.center
)
{}
;
\node
[
anchor
=
center, minimum size
=
10
pt,draw
]
(
cell
1
and
3
)
at
([
yshift
=
10
pt
]
cell
1
and
2
.center
)
{}
;
\node
[
anchor
=
center, minimum size
=
10
pt
]
(
cell
1
and
4
)
at
([
yshift
=
20
pt
]
cell
1
and
3
.center
)
{
\tiny
{$
\vdots
$}}
;
\node
[
anchor
=
center, minimum size
=
10
pt
]
(
cell
2
and
3
)
at
([
yshift
=
20
pt
]
cell
2
and
2
.center
)
{
\tiny
{$
\vdots
$}}
;
\node
[
anchor
=
center, minimum size
=
10
pt
]
(
cell
3
and
2
)
at
([
yshift
=
20
pt
]
cell
3
and
1
.center
)
{
\tiny
{$
\vdots
$}}
;
\node
[
anchor
=
center, minimum size
=
10
pt,draw
]
(
cell
4
andn
)
at
([
yshift
=
20
pt,xshift
=
10
pt
]
cell
3
and
1
.center
)
{}
;
%\node[anchor=center, minimum size=10pt] (cell4and2) at ([yshift=20pt]cell4and1.center) {\tiny{$\ddots$}};
\node
[
anchor
=
center, minimum size
=
10
pt,draw
]
(
cell
1
andn
)
at
([
yshift
=
10
pt
]
cell
1
and
4
.center
)
{}
;
\node
[
anchor
=
center, minimum size
=
10
pt,draw
]
(
cell
2
andn
)
at
([
xshift
=
10
pt,yshift
=-
10
pt
]
cell
1
andn.center
)
{}
;
%\node[anchor=center, minimum size=10pt,draw] (cell3andn) at ([xshift=10pt,yshift=-10pt]cell2andn.center) {};
\node
[
anchor
=
west
]
(
chartlabel
)
at
([
xshift
=-
0
em,yshift
=-
0
.
8
em
]
cell
1
and
1
.south east
)
{
\scriptsize
{
Chart
}}
;
}
\end
{
scope
}
\visible
<
3
-
>
{
\path
[
draw,thick,blue,
-
>,dashed
]
(
rulemark.north east
)
.. controls
+(
60
:
2
.
0
)
and
+(
north east:
1
.
5
)
..
([
yshift
=
0
.
05
em,xshift
=
0
.
05
em
]
cell
4
andn.north east
)
node
[
pos
=
0
.
25
, below,yshift
=-
0
.
2
em
]
(
spanlabel
)
{}
;
}
\begin
{
pgfonlayer
}{
background
}
\visible
<
2
-
>
{
\path
[
fill
=
green
!
20
]
(
tn
1
.south west
)
--
([
yshift
=
0
.
2
em
]
tn
2
.south west
)
--
([
yshift
=
0
.
2
em,xshift
=-
0
.
30
em
]
tn
3
.south west
)
--
(
cw
1
.north west
)
--
(
cw
1
.north east
)
--
([
xshift
=
0
.
30
em
]
tn
3
.north east
)
--
(
tn
4
.north east
)
--
(
tn
4
.south east
)
--
([
xshift
=
0
.
5
em
]
tn
2
.north east
)
--
(
tn
5
.north east
)--
([
yshift
=
0
.
2
em
]
tn
5
.south east
)
--
(
tn
1
.south east
)
--
(
tn
1
.south west
)
;
}
\end
{
pgfonlayer
}
\visible
<
2
-
>
{
\path
[
draw,thick,blue,<
-
>
]
([
xshift
=-
2
em
]
rulepart
1
.south east
)
.. controls
+(
south:
1
.
7
)
and
+(
north:
1
.
3
)
..
([
xshift
=
0
em,yshift
=
0
.
10
em
]
cw
1
.north
)
node
[
pos
=
0
.
5
, below,xshift
=
0
.
3
in
]
{
\scriptsize
{
树片段的匹配
}}
;
}
\end
{
scope
}
\end
{
tikzpicture
}
\end
{
center
}
\end
{
frame
}
%%%------------------------------------------------------------------------------------------------------------
%%%------------------------------------------------------------------------------------------------------------
%%% 基于串的解码
%%% 基于串的解码
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论