【CS224n】Neural-Dependency-Parsing

CS224n系列:
【CS224n】Neural Networks, Backpropagation
【CS224n】Neural-Dependency-Parsing
【CS224n】Language Models, RNN, GRU and LSTM
【CS224n】Neural Machine Translation with Seq2Seq
【CS224n】ConvNets for NLP

1.1 Dependency Parsing

依存句法分析就是表示句子中词与词之间的关系,如下图所示:
在这里插入图片描述
有向弧表示两个词有依存关系,箭头表示父节点指向子节点,弧上的标签表示具体的依存关系。
除了根节点(此处为submitted),其他词都有词作为它的父节点,根节点的父节点为ROOT。
依存句法树的数据表示如下图:
在这里插入图片描述

1.2 Transition-Based Dependency Parsing

基于转移的依存句法解析器
包括两个部分:状态和动作,状态用来记录中间变化过程,动作用来控制状态的变化(转移)。
定义以下三个状态:
在这里插入图片描述
状态之间的转移包括以下三个类型:
在这里插入图片描述
在这里插入图片描述
转移过程可以参照下图进行理解:
在这里插入图片描述
在这里插入图片描述

堆从空状态开始,通过动作转移到下一个状态,直到堆和缓冲区都没有元素结束,一步步生成依存句法树。
从网上找了一张图可以清楚地了解整个转移过程(图片来源:详解Transition-based Dependency parser基于转移的依存句法解析器):
在这里插入图片描述
通过以上分析,我们可以看到,整个生成依存句法树的任务变成了一个预测动作的过程,这个动作包括下一步的转移以及转移过程中涉及到的两个词之间的依存关系。
因此,我们可以很直接地想到用神经网络来预测下一步动作:
在这里插入图片描述

参考:https://blog.csdn.net/Despacit0/article/details/92835286

1.3 作业

1.3.1 Machine Learning & Neural Networks

(a)给定以下依存句法树,写出状态转移过程。
在这里插入图片描述

Stack Buffer New dependency Transition
[ROOT] [I,parsed,this,sentence,correctly] Initial Configuration
[ROOT,I] [parsed,this,sentence,correctly] SHIFT
[ROOT,I,parsed] [this,sentence,correctly] SHIFT
[ROOT,parsed] [this,sentence,correctly] parsed\rightarrowI LEFT-ARC
[ROOT,parsed,this] [sentence,correctly] SHIFT
[ROOT,parsed,this,sentence] [correctly] SHIFT
[ROOT,parsed,sentence] [correctly] sentence\rightarrowthis LEFT-ARC
[ROOT,parsed] [correctly] parsed\rightarrowsentence RIGHT-ARC
[ROOT,parsed,correctly] SHIFT
[ROOT,parsed] parsed \rightarrow correctly RIGHT-ARC
[ROOT] ROOT\rightarrowparsed RIGHT-ARC

(b)一个长度为n的句子,需要多少步进行解析?
答:2*n+1。理由:需要进行n次移位(SHIFT)+n次左规约/右规约(LEFT-ARC/RIGHT-ARC)+1次初始化。

1.3.2 Coding

代码: https://github.com/sfeng-m/Neural-Dependency-Parsing

结果:训练10个epoch,在小数据集上(small subset of the data),Loss=0.0928(要求<0.2); dev UAC(Unlabeled Attachment Score)=71.26(要求>65).
训练10个epoch,在全量数据集上,Loss=0.0282(要求<0.08); dev UAC=89.15(要求>87).

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章