赞
踩
句法分析的几种主要方法:
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站为空,这时候过程终止。
这个算法的意义主要是,“我永远只操作我这句话最前面的两个token”,可以这么理解,transition-based parser是通过基于局部词的组。
2 graph based parser
相比于上面局部的方法,graph-based parser就是一种全局的方法。
它的核心思想是,不管每个词之间的距离,把词与词的关系密切性变成一个值,然后生成一个对角树,生成这个树的路径就是dependency parser的路径。它的优势是能够实现局部最优解,因此它不会因为之前的误差,导致全局最后的pass结果错误。
graph based dependency parsing深度学习方法:
这个模型是把之前构建数的问题变成距离计算的问题。它本质做的事情是建立一个矩阵,行和列都是这个句子里的token,每两个行列中的一个点表示a修饰b的概率或b修饰a的概率的一个得分,最后要形成树,我们就是在这个距离向量中找一棵最大生成树,生成出来的就是dependency parser。
https://juejin.im/post/5ab4b8b0f265da23830ad2c3
left-arc和right-arc只会操作栈顶的两个元素,加一条边,并把这两个元素pop出去,然后再加一个进来
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。