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
d0ba52a4
Commit
d0ba52a4
authored
Mar 22, 2020
by
姜雨帆
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update cyk
parent
98a66bb3
显示空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
17 行增加
和
17 行删除
+17
-17
Section04-Phrasal-and-Syntactic-Models/section04.tex
+17
-17
没有找到文件。
Section04-Phrasal-and-Syntactic-Models/section04.tex
查看文件 @
d0ba52a4
...
...
@@ -3740,7 +3740,7 @@ d = r_1 \circ r_2 \circ r_3 \circ r_4
\end{tikzpicture}
\end{center}
\vspace
{
0.3em
}
\item
由于对文法中的非终结符进行了限制,可以直接使用CYK算法进行解码,无需转换成乔姆斯基范式
%
\item 由于对文法中的非终结符进行了限制,可以直接使用CYK算法进行解码,无需转换成乔姆斯基范式
\end{itemize}
\end{frame}
...
...
@@ -3754,7 +3754,7 @@ d = r_1 \circ r_2 \circ r_3 \circ r_4
\item
输入:源语串
\textbf
{
s =
}
$
s
_
1
... s
_
J
$
,以及上下文无关文法
$
G
$
\item
输出:判断字符串是否符合上下文无关文法
\end{itemize}
%\vspace{-0.5
em}
\vspace
{
-0.7
em
}
\begin{center}
\begin{tikzpicture}
\tikzstyle
{
alignmentnode
}
= [rectangle,fill=blue!30,minimum size=0.45em,text=white,inner sep=0.1pt]
...
...
@@ -3762,17 +3762,17 @@ d = r_1 \circ r_2 \circ r_3 \circ r_4
\tikzstyle
{
srcnode
}
= [anchor=south west]
\begin{scope}
[scale=0.85]
\node
[srcnode]
(c1) at (0,0)
{
\small
{
\textbf
{
Function
}
CKY-Algorithm(
$
s,G
$
)
}}
;
\node
[srcnode,anchor=north west]
(c21) at ([xshift=
2em,yshift=0.4em]c1.south west)
{
\small
{
\textbf
{
foreach
}
(
$
j
_
1
, j
_
2
$
): 1
$
\leq
j
_
1
\leq
J
$
and 1
$
\leq
j
_
2
\leq
J
$}}
;
\node
[srcnode,anchor=north west]
(c22) at ([xshift=
2em,yshift=0.4em]c21.south west)
{
\small
{
Initialize
$
cell
[
j
_
1
,j
_
2
]
$
}}
;
\node
[srcnode,anchor=north west]
(c3) at ([xshift=-
2em,yshift=0.4em]c22.south west)
{
\small
{
\textbf
{
for
}
$
j
_
1
$
= 1 to
$
J
$}}
;
\node
[srcnode,anchor=west]
(c31) at ([xshift=
5em]c3.east)
{
\small
{
// beginning
of span
}}
;
\node
[srcnode,anchor=north west]
(c4) at ([xshift=
2em,yshift=0.4em]c3.south west)
{
\small
{
\textbf
{
for
}
$
j
_
2
$
=
$
j
_
1
$
to
$
J
$}}
;
\node
[srcnode,anchor=north west]
(c41) at ([yshift=0.4em]c31.south west)
{
\small
{
//
end
ing of span
}}
;
\node
[srcnode,anchor=north west]
(c5) at ([xshift=
2em,yshift=0.4em]c4.south west)
{
\small
{
\textbf
{
for
}
$
k
$
=
$
j
_
1
$
to
$
j
_
2
$}}
;
\node
[srcnode,anchor=north west]
(c21) at ([xshift=
1.5em,yshift=0.4em]c1.south west)
{
\small
{
\textbf
{
foreach
}
(
$
j
_
1
, j
_
2
$
): 0
$
\leq
j
_
1
,j
_
2
\leq
J
$
and
$
j
_
1
\textless
j
_
2
$}}
;
\node
[srcnode,anchor=north west]
(c22) at ([xshift=
1.5em,yshift=0.4em]c21.south west)
{
\small
{$
span
[
j
_
1
,j
_
2
]
$
.updatePhrase(
$
G
$
)
}}
;
\node
[srcnode,anchor=north west]
(c3) at ([xshift=-
1.5em,yshift=0.4em]c22.south west)
{
\small
{
\textbf
{
for
}
$
l
_{
span
}
$
= 1 to
$
J
$}}
;
\node
[srcnode,anchor=west]
(c31) at ([xshift=
6em]c3.east)
{
\small
{
// length
of span
}}
;
\node
[srcnode,anchor=north west]
(c4) at ([xshift=
1.5em,yshift=0.4em]c3.south west)
{
\small
{
\textbf
{
for
}
$
j
$
= 0 to
$
J
-
l
_{
span
}
$}}
;
\node
[srcnode,anchor=north west]
(c41) at ([yshift=0.4em]c31.south west)
{
\small
{
//
begin
ing of span
}}
;
\node
[srcnode,anchor=north west]
(c5) at ([xshift=
1.5em,yshift=0.4em]c4.south west)
{
\small
{
\textbf
{
for
}
$
k
$
=
$
j
$
to
$
j
+
l
_{
span
}
$}}
;
\node
[srcnode,anchor=north west]
(c51) at ([yshift=0.4em]c41.south west)
{
\small
{
// partition of span
}}
;
\node
[srcnode,anchor=north west]
(c6) at ([xshift=
2em,yshift=0.4em]c5.south west)
{
\small
{$
hypos
$
= Compose(
$
cell
[
j
_
1
, k
]
, cell
[
k, j
_
2
]
$
)
}}
;
\node
[srcnode,anchor=north west]
(c7) at ([yshift=0.4em]c6.south west)
{
\small
{$
cell
[
j
_
1
, j
_
2
]
$
.update(
$
hypos
$
)
}}
;
\node
[srcnode,anchor=north west]
(c8) at ([xshift=-
6em,yshift=0.4em]c7.south west)
{
\small
{
\textbf
{
return
}
$
cell
[
1
, J
]
$}}
;
\node
[srcnode,anchor=north west]
(c6) at ([xshift=
1.5em,yshift=0.4em]c5.south west)
{
\small
{$
hypos
$
= Compose(
$
span
[
j, k
]
, span
[
k, j
+
l
_{
span
}
]
$
)
}}
;
\node
[srcnode,anchor=north west]
(c7) at ([yshift=0.4em]c6.south west)
{
\small
{$
span
[
j, j
+
l
_{
span
}
]
$
.update(
$
hypos
$
)
}}
;
\node
[srcnode,anchor=north west]
(c8) at ([xshift=-
4.5em,yshift=0.4em]c7.south west)
{
\small
{
\textbf
{
return
}
$
span
[
0
, J
]
$}}
;
\node
[srcnode]
(s1) at ([yshift=-2.5em]c8.south west)
{
\textbf
{
s:
}}
;
...
...
@@ -3784,8 +3784,8 @@ d = r_1 \circ r_2 \circ r_3 \circ r_4
\node
[srcnode]
(s7) at ([xshift=1em]s6.south east)
{$
s
_
6
$}
;
\node
[srcnode]
(s8) at ([xshift=1em]s7.south east)
{$
s
_
7
$}
;
\node
[srcnode,anchor=center]
(j1) at ([yshift=-1.4em]s3.south)
{$
j
_
1
$}
;
\node
[srcnode,anchor=center]
(j2) at ([yshift=-1.4em]s7.south)
{$
j
_
2
$}
;
\node
[srcnode,anchor=center]
(j1) at ([yshift=-1.4em]s3.south)
{$
j
$}
;
\node
[srcnode,anchor=center]
(j2) at ([yshift=-1.4em]s7.south)
{$
j
+
l
_{
span
}
$}
;
\node
[srcnode,anchor=center]
(k) at ([xshift=1.5em,yshift=-1.5em]s4.south)
{$
k
$}
;
...
...
@@ -3949,10 +3949,10 @@ d = r_1 \circ r_2 \circ r_3 \circ r_4
\begin{frame}
{
CYK解码(续)
}
% 看NiuTrans Manual
\begin{itemize}
\item
CYK解码提出了一种cell的数据结构,用来记录所有可能出现的翻译假设。
\item
实际上,在层次短语解码的时候,不能直接使用CYK算法,需要先转化为乔姆斯基范式,才能进行解码
\begin{itemize}
\item
<2-> 对于每个源语句子,使用短语规则表初始化它的
cell
\item
<3-> 自底向上对
cell中的每个子cell进行重新组合(正向
、反向)
\item
<2-> 对于每个源语句子,使用短语规则表初始化它的
span
\item
<3-> 自底向上对
span中的每个子span进行重新组合(正
、反向)
\item
<4-> 计算每个推导的得分并记录下来,最终选择最优推导所对应的译文作为输出
\end{itemize}
\end{itemize}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论