句法分析方法transation based dependency parsing和graph based parsing

句法分析的几种主要方法: 
Deterministic parsing(specifically : Transition-based parsing) 
Dynamic programming(specifically : Graph-based parsing) 
Constraint satisfaction

1 什么是Transition-based基于转移的框架?

(1)队列I存放句子中word

(2)栈S中存放从队列I中移过来的需要进行判断的word

(3)动作Action则用来控制状态之间的转移

(4)记录不完整的预测结果A。

用在生成依存句法树上,则具体表示为从空状态开始,通过动作转移到下一个状态,一步一步生成依存句法树,最后的状态保存了一个完整的依存树。依存分析就是用来预测词与词之间的关系,现在转为预测动作序列。在基于转移的框架中,我们定义了4种动作(栈顶的元素越小表示离栈顶越近):

移进(shift):队列首元素q0出队列,压入栈成为s0。

左规约(arc_left_l):栈顶2个元素s1, s0规约,s1下沉成为s0的左孩子节点,l为弧上关系。它的具体意义是从I和S里面各取一个元素弹出来,画一条左弧把它们连起来,丢到最右边的A里面

右规约(arc_right_l):栈顶2个元素s1, s0规约,s0下沉成为s1的右孩子节点,l为弧上关系。

根出栈(pop_root):根节点出栈,分析完毕。

下图中在“she”和“bought”之间形成一条左弧,左弧的意义是,弧向哪边指,被指向的那个token是作为子节点,指别人的token是作为一个父节点,在这里,“bought”就作为一个父节点重新被压到站里面,之后的操作就是不断循环往复,一直做到I站为空,这时候过程终止。

句法分析方法transation based dependency parsing和graph based parsing_第1张图片

句法分析方法transation based dependency parsing和graph based parsing_第2张图片

句法分析方法transation based dependency parsing和graph based parsing_第3张图片

这个算法的意义主要是,“我永远只操作我这句话最前面的两个token”,可以这么理解,transition-based parser是通过基于局部词的组。

2 graph based parser

相比于上面局部的方法,graph-based parser就是一种全局的方法。

句法分析方法transation based dependency parsing和graph based parsing_第4张图片

它的核心思想是,不管每个词之间的距离,把词与词的关系密切性变成一个值,然后生成一个对角树,生成这个树的路径就是dependency parser的路径。它的优势是能够实现局部最优解,因此它不会因为之前的误差,导致全局最后的pass结果错误。

graph based dependency parsing深度学习方法:

这个模型是把之前构建数的问题变成距离计算的问题。它本质做的事情是建立一个矩阵,行和列都是这个句子里的token,每两个行列中的一个点表示a修饰b的概率或b修饰a的概率的一个得分,最后要形成树,我们就是在这个距离向量中找一棵最大生成树,生成出来的就是dependency parser。

https://juejin.im/post/5ab4b8b0f265da23830ad2c3

left-arc和right-arc只会操作栈顶的两个元素,加一条边,并把这两个元素pop出去,然后再加一个进来

https://blog.csdn.net/u014422406/article/details/53954823

https://blog.csdn.net/gaoborl/article/details/79624205

你可能感兴趣的:(自然语言处理)