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
a6a1f901
Commit
a6a1f901
authored
Jan 13, 2020
by
xiaotong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
rule matching of adjacent variables
parent
6817d376
显示空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
204 行增加
和
5 行删除
+204
-5
Section04-Phrasal-and-Syntactic-Models/section04-test.tex
+82
-5
Section04-Phrasal-and-Syntactic-Models/section04.tex
+122
-0
没有找到文件。
Section04-Phrasal-and-Syntactic-Models/section04-test.tex
查看文件 @
a6a1f901
...
...
@@ -156,9 +156,15 @@
\begin{frame}
{
基于串的解码 - 规则匹配
}
\begin{itemize}
\item
相比基于树的解码,基于串的解码的实现要复杂许多,这主要是因为对于每一个片段,需要判断每条规则是否能匹配
\item
相比基于树的解码,基于串的解码的实现要复杂许多,因为对于每一个片段,需要判断每条规则是否能匹配
\begin{itemize}
\item
就是匹配树片段的叶子节点序列,即单词和变量构成的串
\item
<2-> 匹配单词可以直接完成
\item
<3-> 匹配变量需要检查相应跨度节点上是否有相应标记的推导
\end{itemize}
\end{itemize}
\vspace
{
-1em
}
\begin{center}
\begin{tikzpicture}
...
...
@@ -179,14 +185,14 @@
\node
[anchor=south,align=center] (box2label) at (box2.north)
{
[
{
\blue
2
}
,
{
\blue
11
}
]
\\
NP
}
;
\node
[anchor=south,align=center] (box3label) at (box3.north)
{
[
{
\blue
11
}
,
{
\blue
13
}
]
\\
VP
}
;
}
\visible
<2->
{
\node
[draw,thick,purple,inner sep=0pt] (box4) [fit = (sw2)]
{}
;
}
\end{pgfonlayer}
\draw
[decorate,decoration={brace,mirror,,amplitude=3mm}]
(sw1.south west) -- (sw4.south east);
\node
[anchor=north] (label) at ([yshift=-1em]sw3.south)
{
在跨度[
{
\blue
0
}
,
{
\blue
13
}
]上进行规则匹配
}
;
\node
[anchor=north] (rule) at ([yshift=-0.3em]label.south)
{{
\footnotesize
比如:IP(
{
\color
{
red
}
NP
$_
1
$}
VP(PP(P(对)
{
\color
{
ugreen
}
NP
$_
2
$}
)
{
\color
{
orange
}
VP
$_
3
$}
))
}}
;
\node
[anchor=north west] (rule2) at ([yshift=0.2em]rule.south west)
{{
\footnotesize
\hspace
{
2.8em
}
$
\to
$
NP
$_
1
$
VP
$_
3
$
with NP
$_
2
$}}
;
\node
[anchor=north] (label) at ([yshift=-1em]sw3.south)
{
在跨度[
{
\blue
0
}
,
{
\blue
13
}
]上匹配``NP 对 NP VP''
}
;
}
\end{scope}
...
...
@@ -194,6 +200,77 @@
\end{tikzpicture}
\end{center}
\vspace
{
-1em
}
\begin{itemize}
\item
<4-> 如果待匹配的单词和变量序列中,没有连续的变量,这样的规则符合lexicalized norm form (LNF),规则的匹配时间复杂度为O(1)
\begin{itemize}
\item
比如层次短语系统的规则就符合LNF,因此规则匹配非常容易实现
\item
显然上面例子中的规则不符合LNF
\end{itemize}
\end{itemize}
\end{frame}
%%%------------------------------------------------------------------------------------------------------------
%%% 基于串的解码 - 连续变量的匹配,复杂度增加
\begin{frame}
{
基于串的解码 - 连续变量的匹配
}
\begin{itemize}
\item
但是,如果待匹配串中有连续变量,问题会变得复杂:因为确定两个变量之间的边界需要 增加一重循环
\end{itemize}
\vspace
{
-0.5em
}
\begin{center}
\begin{tikzpicture}
\begin{scope}
{
\scriptsize
\node
[anchor=west] (sw11) at (0,0)
{
阿都拉
$_
1
$}
;
\node
[anchor=west] (sw12) at ([xshift=0.1em]sw11.east)
{
对
$_
2
$}
;
\node
[anchor=west,fill=green!20] (sw13) at ([xshift=0.1em]sw12.east)
{
自己
$_
3
$
四
$_
4
$
\
个
$_
5
$
\
多
$_
6
$
\
月
$_
7
$
\
以来
$_
8
$
\
的
$_
9
$
\
施政
$_{
10
}$
\
表现
$_{
11
}$
感到
$_{
12
}$
}
;
\node
[anchor=west,fill=orange!20] (sw14) at ([xshift=0.2em]sw13.east)
{
满意
$_{
13
}$}
;
\node
[anchor=north west] (sw21) at ([yshift=-0.3em]sw11.south west)
{
阿都拉
$_
1
$}
;
\node
[anchor=west] (sw22) at ([xshift=0.1em]sw21.east)
{
对
$_
2
$}
;
\node
[anchor=west,fill=green!20] (sw23) at ([xshift=0.1em]sw22.east)
{
自己
$_
3
$
四
$_
4
$
\
个
$_
5
$
\
多
$_
6
$
\
月
$_
7
$
\
以来
$_
8
$
\
的
$_
9
$
\
施政
$_{
10
}$
\
表现
$_{
11
}$}
;
\node
[anchor=west,fill=orange!20] (sw24) at ([xshift=0.2em]sw23.east)
{
感到
$_{
12
}$
满意
$_{
13
}$}
;
\node
[anchor=north west] (sw31) at ([yshift=-0.3em]sw21.south west)
{
阿都拉
$_
1
$}
;
\node
[anchor=west] (sw32) at ([xshift=0.1em]sw31.east)
{
对
$_
2
$}
;
\node
[anchor=west,fill=green!20] (sw33) at ([xshift=0.1em]sw32.east)
{
自己
$_
3
$
四
$_
4
$
\
个
$_
5
$
\
多
$_
6
$
\
月
$_
7
$
\
以来
$_
8
$
\
的
$_
9
$
\
施政
$_{
10
}$}
;
\node
[anchor=west,fill=orange!20] (sw34) at ([xshift=0.2em]sw33.east)
{
表现
$_{
11
}$
感到
$_{
12
}$
满意
$_{
13
}$}
;
\node
[anchor=north] (dots) at ([yshift=-0.5em]sw33.south)
{
...
}
;
\node
[anchor=north west] (sw41) at ([yshift=-1.8em]sw31.south west)
{
阿都拉
$_
1
$}
;
\node
[anchor=west] (sw42) at ([xshift=0.1em]sw41.east)
{
对
$_
2
$}
;
\node
[anchor=west,fill=green!20] (sw43) at ([xshift=0.1em]sw42.east)
{
自己
$_
3
$
}
;
\node
[anchor=west,fill=orange!20] (sw44) at ([xshift=0.2em]sw43.east)
{
四
$_
4
$
\
个
$_
5
$
\
多
$_
6
$
\
月
$_
7
$
\
以来
$_
8
$
\
的
$_
9
$
施政
$_{
10
}$
表现
$_{
11
}$
感到
$_{
12
}$
满意
$_{
13
}$}
;
\node
[anchor=south] (label) at ([yshift=0.3em]sw13.north)
{
\footnotesize
{
在跨度[
{
\blue
0
}
,
{
\blue
13
}
]上匹配``NP 对 NP VP''
}}
;
\node
[anchor=north west,minimum size=1.2em,fill=green!20] (np) at ([yshift=-1.0em,xshift=0.3em]sw41.south west)
{}
;
\node
[anchor=west] (nplabel) at (np.east)
{
NP(第二个)
}
;
\node
[anchor=west,minimum size=1.2em,fill=orange!20] (vp) at ([xshift=1.0em]nplabel.east)
{}
;
\node
[anchor=west] (vplabel) at (vp.east)
{
VP
}
;
}
\end{scope}
\end{tikzpicture}
\end{center}
\vspace
{
-0.5em
}
\begin{itemize}
\item
<2-> 理论上,对于长度为
$
n
$
的词串,匹配
$
m
$
个连续变量的时间复杂度是O(
$
m
^
n
$
)
\begin{itemize}
\item
这也会导致含有多个变量的非词汇化规则的匹配大大增加系统的运行时间,但这种规则在句法系统中也很常见
\end{itemize}
\end{itemize}
\end{frame}
%%%------------------------------------------------------------------------------------------------------------
...
...
Section04-Phrasal-and-Syntactic-Models/section04.tex
查看文件 @
a6a1f901
...
...
@@ -4925,6 +4925,128 @@ NP-BAR(NN$_1$ NP-BAR$_2$) $\to$ NN$_1$ NP-BAR$_2$
\end
{
frame
}
%%%------------------------------------------------------------------------------------------------------------
%%% 基于串的解码 - 规则匹配
\begin
{
frame
}{
基于串的解码
-
规则匹配
}
\begin
{
itemize
}
\item
相比基于树的解码,基于串的解码的实现要复杂许多,因为对于每一个片段,需要判断每条规则是否能匹配
\begin
{
itemize
}
\item
就是匹配树片段的叶子节点序列,即单词和变量构成的串
\item
<
2
-
> 匹配单词可以直接完成
\item
<
3
-
> 匹配变量需要检查相应跨度节点上是否有相应标记的推导
\end
{
itemize
}
\end
{
itemize
}
\vspace
{
-
1
em
}
\begin
{
center
}
\begin
{
tikzpicture
}
\begin
{
scope
}
{
\scriptsize
\node
[
anchor
=
west
]
(
sw
1
)
at
(
0
,
0
)
{
阿都拉
$_
1
$}
;
\node
[
anchor
=
west
]
(
sw
2
)
at
([
xshift
=
0
.
1
em
]
sw
1
.east
)
{
对
$_
2
$}
;
\node
[
anchor
=
west
]
(
sw
3
)
at
([
xshift
=
0
.
1
em
]
sw
2
.east
)
{
自己
$_
3
$
四
$_
4
$
\
个
$_
5
$
\
多
$_
6
$
\
月
$_
7
$
\
以来
$_
8
$
\
的
$_
9
$
\
施政
$_{
10
}$
\
表现
$_{
11
}$}
;
\node
[
anchor
=
west
]
(
sw
4
)
at
([
xshift
=
0
.
2
em
]
sw
3
.east
)
{
感到
$_{
12
}$
满意
$_{
13
}$}
;
\begin
{
pgfonlayer
}{
background
}
\visible
<
3
-
>
{
\node
[
fill
=
red
!
20
,inner sep
=
0
pt
]
(
box
1
)
[
fit
=
(
sw
1
)]
{}
;
\node
[
fill
=
green
!
20
,inner sep
=
0
pt
]
(
box
2
)
[
fit
=
(
sw
3
)]
{}
;
\node
[
fill
=
orange
!
20
,inner sep
=
0
pt
]
(
box
3
)
[
fit
=
(
sw
4
)]
{}
;
\node
[
anchor
=
south,align
=
center
]
(
box
1
label
)
at
(
box
1
.north
)
{
[
{
\blue
0
}
,
{
\blue
1
}
]
\\
VP
}
;
\node
[
anchor
=
south,align
=
center
]
(
box
2
label
)
at
(
box
2
.north
)
{
[
{
\blue
2
}
,
{
\blue
11
}
]
\\
NP
}
;
\node
[
anchor
=
south,align
=
center
]
(
box
3
label
)
at
(
box
3
.north
)
{
[
{
\blue
11
}
,
{
\blue
13
}
]
\\
VP
}
;
}
\visible
<
2
-
>
{
\node
[
draw,thick,purple,inner sep
=
0
pt
]
(
box
4
)
[
fit
=
(
sw
2
)]
{}
;
}
\end
{
pgfonlayer
}
\draw
[
decorate,decoration
=
{
brace,mirror,,amplitude
=
3
mm
}
]
(
sw
1
.south west
)
--
(
sw
4
.south east
)
;
\node
[
anchor
=
north
]
(
label
)
at
([
yshift
=-
1
em
]
sw
3
.south
)
{
在跨度
[
{
\blue
0
}
,
{
\blue
13
}
]
上匹配``NP 对 NP VP''
}
;
}
\end
{
scope
}
\end
{
tikzpicture
}
\end
{
center
}
\vspace
{
-
1
em
}
\begin
{
itemize
}
\item
<
4
-
> 如果待匹配的单词和变量序列中,没有连续的变量,这样的规则符合lexicalized norm form
(
LNF
)
,规则的匹配时间复杂度为O
(
1
)
\begin
{
itemize
}
\item
比如层次短语系统的规则就符合LNF,因此规则匹配非常容易实现
\item
显然上面例子中的规则不符合LNF
\end
{
itemize
}
\end
{
itemize
}
\end
{
frame
}
%%%------------------------------------------------------------------------------------------------------------
%%% 基于串的解码 - 连续变量的匹配,复杂度增加
\begin
{
frame
}{
基于串的解码
-
连续变量的匹配
}
\begin
{
itemize
}
\item
但是,如果待匹配串中有连续变量,问题会变得复杂:因为确定两个变量之间的边界需要 增加一重循环
\end
{
itemize
}
\vspace
{
-
0
.
5
em
}
\begin
{
center
}
\begin
{
tikzpicture
}
\begin
{
scope
}
{
\scriptsize
\node
[
anchor
=
west
]
(
sw
11
)
at
(
0
,
0
)
{
阿都拉
$_
1
$}
;
\node
[
anchor
=
west
]
(
sw
12
)
at
([
xshift
=
0
.
1
em
]
sw
11
.east
)
{
对
$_
2
$}
;
\node
[
anchor
=
west,fill
=
green
!
20
]
(
sw
13
)
at
([
xshift
=
0
.
1
em
]
sw
12
.east
)
{
自己
$_
3
$
四
$_
4
$
\
个
$_
5
$
\
多
$_
6
$
\
月
$_
7
$
\
以来
$_
8
$
\
的
$_
9
$
\
施政
$_{
10
}$
\
表现
$_{
11
}$
感到
$_{
12
}$
}
;
\node
[
anchor
=
west,fill
=
orange
!
20
]
(
sw
14
)
at
([
xshift
=
0
.
2
em
]
sw
13
.east
)
{
满意
$_{
13
}$}
;
\node
[
anchor
=
north west
]
(
sw
21
)
at
([
yshift
=-
0
.
3
em
]
sw
11
.south west
)
{
阿都拉
$_
1
$}
;
\node
[
anchor
=
west
]
(
sw
22
)
at
([
xshift
=
0
.
1
em
]
sw
21
.east
)
{
对
$_
2
$}
;
\node
[
anchor
=
west,fill
=
green
!
20
]
(
sw
23
)
at
([
xshift
=
0
.
1
em
]
sw
22
.east
)
{
自己
$_
3
$
四
$_
4
$
\
个
$_
5
$
\
多
$_
6
$
\
月
$_
7
$
\
以来
$_
8
$
\
的
$_
9
$
\
施政
$_{
10
}$
\
表现
$_{
11
}$}
;
\node
[
anchor
=
west,fill
=
orange
!
20
]
(
sw
24
)
at
([
xshift
=
0
.
2
em
]
sw
23
.east
)
{
感到
$_{
12
}$
满意
$_{
13
}$}
;
\node
[
anchor
=
north west
]
(
sw
31
)
at
([
yshift
=-
0
.
3
em
]
sw
21
.south west
)
{
阿都拉
$_
1
$}
;
\node
[
anchor
=
west
]
(
sw
32
)
at
([
xshift
=
0
.
1
em
]
sw
31
.east
)
{
对
$_
2
$}
;
\node
[
anchor
=
west,fill
=
green
!
20
]
(
sw
33
)
at
([
xshift
=
0
.
1
em
]
sw
32
.east
)
{
自己
$_
3
$
四
$_
4
$
\
个
$_
5
$
\
多
$_
6
$
\
月
$_
7
$
\
以来
$_
8
$
\
的
$_
9
$
\
施政
$_{
10
}$}
;
\node
[
anchor
=
west,fill
=
orange
!
20
]
(
sw
34
)
at
([
xshift
=
0
.
2
em
]
sw
33
.east
)
{
表现
$_{
11
}$
感到
$_{
12
}$
满意
$_{
13
}$}
;
\node
[
anchor
=
north
]
(
dots
)
at
([
yshift
=-
0
.
5
em
]
sw
33
.south
)
{
...
}
;
\node
[
anchor
=
north west
]
(
sw
41
)
at
([
yshift
=-
1
.
8
em
]
sw
31
.south west
)
{
阿都拉
$_
1
$}
;
\node
[
anchor
=
west
]
(
sw
42
)
at
([
xshift
=
0
.
1
em
]
sw
41
.east
)
{
对
$_
2
$}
;
\node
[
anchor
=
west,fill
=
green
!
20
]
(
sw
43
)
at
([
xshift
=
0
.
1
em
]
sw
42
.east
)
{
自己
$_
3
$
}
;
\node
[
anchor
=
west,fill
=
orange
!
20
]
(
sw
44
)
at
([
xshift
=
0
.
2
em
]
sw
43
.east
)
{
四
$_
4
$
\
个
$_
5
$
\
多
$_
6
$
\
月
$_
7
$
\
以来
$_
8
$
\
的
$_
9
$
施政
$_{
10
}$
表现
$_{
11
}$
感到
$_{
12
}$
满意
$_{
13
}$}
;
\node
[
anchor
=
south
]
(
label
)
at
([
yshift
=
0
.
3
em
]
sw
13
.north
)
{
\footnotesize
{
在跨度
[
{
\blue
0
}
,
{
\blue
13
}
]
上匹配``NP 对 NP VP''
}}
;
\node
[
anchor
=
north west,minimum size
=
1
.
2
em,fill
=
green
!
20
]
(
np
)
at
([
yshift
=-
1
.
0
em,xshift
=
0
.
3
em
]
sw
41
.south west
)
{}
;
\node
[
anchor
=
west
]
(
nplabel
)
at
(
np.east
)
{
NP
(
第二个
)
}
;
\node
[
anchor
=
west,minimum size
=
1
.
2
em,fill
=
orange
!
20
]
(
vp
)
at
([
xshift
=
1
.
0
em
]
nplabel.east
)
{}
;
\node
[
anchor
=
west
]
(
vplabel
)
at
(
vp.east
)
{
VP
}
;
}
\end
{
scope
}
\end
{
tikzpicture
}
\end
{
center
}
\vspace
{
-
0
.
5
em
}
\begin
{
itemize
}
\item
<
2
-
> 理论上,对于长度为
$
n
$
的词串,匹配
$
m
$
个连续变量的时间复杂度是O
(
$
m
^
n
$
)
\begin
{
itemize
}
\item
这也会导致含有多个变量的非词汇化规则的匹配大大增加系统的运行时间,但这种规则在句法系统中也很常见
\end
{
itemize
}
\end
{
itemize
}
\end
{
frame
}
%%%------------------------------------------------------------------------------------------------------------
%%% 基于串的解码
\begin
{
frame
}{
二叉化
+
CKY
}
% NiuTrans Manual 和我EMNLP的论文,还有以前的文档
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论