Nlp 将依赖关系树转换为弧形过渡序列

Nlp 将依赖关系树转换为弧形过渡序列,nlp,syntaxnet,dependency-parsing,Nlp,Syntaxnet,Dependency Parsing,目前,我正在尝试构建语法感知的NMT模型。 在这个项目中,我需要三个转换操作(SHIFT、REDUCE-L、REDUCE-R)之一的顺序 与图像中的内容类似 此区块表示两个句子的基于转换的依赖关系(1:1区块被空行分割) 我使用Syntaxnet首先获取依赖项解析树,但它没有直接提供转换操作序列 其结果如下: 有可能得到类似于此图像的动作序列吗?是否可以将从该图像获得的内容转换为原始图像的格式。将依赖关系树转换为转换序列的函数称为oracle。它是统计解析器的必要组件。 您所描述的转换(sh

目前,我正在尝试构建语法感知的NMT模型。
在这个项目中,我需要三个转换操作(SHIFT、REDUCE-L、REDUCE-R)之一的顺序

与图像中的内容类似

此区块表示两个句子的基于转换的依赖关系(1:1区块被空行分割)

我使用
Syntaxnet
首先获取依赖项解析树,但它没有直接提供转换操作序列
其结果如下:


有可能得到类似于此图像的动作序列吗?是否可以将从该图像获得的内容转换为原始图像的格式。

将依赖关系树转换为转换序列的函数称为oracle。它是统计解析器的必要组件。 您所描述的转换(shift、reduce-l、reduce-r)是arc标准转换系统的转换(不是arc急切系统,即:shift、left arc、right arc、reduce)

arc标准oracle的伪代码:

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
它们展示了两种解析算法及其预言

“”“Reduce left,Reduce right通常在依赖项解析上下文中命名为right arc和left arc