将依赖树转换为 Arc-eager 转换序列
Converting Dependency tree into sequence of Arc-eager transitions
目前我正在尝试构建语法感知 NMT 模型。
在这个项目中,我需要三个转换动作(SHIFT、REDUCE-L、REDUCE-R)之一的序列
与图片中的相似
a
这个块表示 2 个句子的基于转换的依赖性(1 个为 1 个块,由空行分割)
我使用 Syntaxnet
首先获取依赖分析树,但它不直接提供转换动作序列。
结果如下,
b
是否可以得到与此图像相似的动作序列?是否可以将从该图像获得的内容转换为原始图像的格式。
将依赖树转换为转换序列的函数称为 oracle。它是统计解析器的必要组件。
您描述的转换(shift、reduce-l、reduce-r)¹ 是 arc-standard 转换系统(不是 arc-eager 系统,即:shift, left-arc, right-arc, reduce).
弧标准预言机的伪代码:
stack = [] # stack[0] is the top of the stack
buffer = [w1, w2, ..., wn]
while len(buffer) > 0 or len(stack) != 1:
if stack[0] is the head of stack[1]:
apply left-arc
if stack[1] is the head of stack[0]:
if there is a token in the buffer whose head is stack[0]
# (i.e not all children of stack[1] have been attached to it)
apply shift
else:
apply right-arc
这些 slides 介绍了两种解析算法及其预言。
¹Reduce-left、reduce-right 在依赖解析的上下文中经常被命名为 right-arc 和 left-arc。
目前我正在尝试构建语法感知 NMT 模型。
在这个项目中,我需要三个转换动作(SHIFT、REDUCE-L、REDUCE-R)之一的序列
与图片中的相似 a
这个块表示 2 个句子的基于转换的依赖性(1 个为 1 个块,由空行分割)
我使用 Syntaxnet
首先获取依赖分析树,但它不直接提供转换动作序列。
结果如下,
b
是否可以得到与此图像相似的动作序列?是否可以将从该图像获得的内容转换为原始图像的格式。
将依赖树转换为转换序列的函数称为 oracle。它是统计解析器的必要组件。 您描述的转换(shift、reduce-l、reduce-r)¹ 是 arc-standard 转换系统(不是 arc-eager 系统,即:shift, left-arc, right-arc, reduce).
弧标准预言机的伪代码:
stack = [] # stack[0] is the top of the stack
buffer = [w1, w2, ..., wn]
while len(buffer) > 0 or len(stack) != 1:
if stack[0] is the head of stack[1]:
apply left-arc
if stack[1] is the head of stack[0]:
if there is a token in the buffer whose head is stack[0]
# (i.e not all children of stack[1] have been attached to it)
apply shift
else:
apply right-arc
这些 slides 介绍了两种解析算法及其预言。
¹Reduce-left、reduce-right 在依赖解析的上下文中经常被命名为 right-arc 和 left-arc。