Chapter7-9_Deep Learning for Dependency Parsing

文章目录

  • 1 什么是Dependency Parsing
  • 2 模型结构

本文为李弘毅老师【Deep Learning for Dependency Parsing】的课程笔记,课程视频youtube地址,点这里(需)。

下文中用到的图片均来自于李宏毅老师的PPT,若有侵权,必定删除。

文章索引:

上篇 - 7-8 Deep Learning for Constituency Parsing

下篇 - 7-10 Deep Learning for Question Answering (1/2)

总目录

1 什么是Dependency Parsing

上一节中,学习了Constituency Parsing,Constituency Parsing要讨论的是两个相邻的单词或是constituents之间能否构成一个新的constituent。而Dependency Parsing则是要讨论任意两个单词之间能否构成dependency,比如下图中下半部分的"book"和"flight"虽然不相邻,但是"book"的目标就是"flight",所以两者之间构成了一个dependency。在这个dependency中,"book"是出发点,"flight"是箭头的终点,所以"book"被叫做head,“flight"被叫做"dependent”。
Chapter7-9_Deep Learning for Dependency Parsing_第1张图片

有关联的两个单词才可以构成一个dependency,单词和单词间的关系可参见下表。
Chapter7-9_Deep Learning for Dependency Parsing_第2张图片

我们最终的目的是把一个句子变成一个树结构的有向图。有向图的每个节点就是一个单词,每条边就是相连的两个节点之间的关系,比如下图就是把"I want to study a PhD"解析成了一个有向图。这里有两个规则,其一是所有的词都有一条指向它的边,没有边指向的词,我们会用一个额外的"ROOT"节点去指向它,“ROOT"是不需要箭头指向它的;其二是每个词都有唯一的路径可以回到"ROOT”。
Chapter7-9_Deep Learning for Dependency Parsing_第3张图片

2 模型结构

训练Dependency Parsing模型的方法,出乎意料地简单,它和训练Consitituency Parsing模型的方法非常相似。Consitituency Parsing就是输入一个span,然后有两个classifiers,一个判断这两个是不是consitituent,另一个判断这两个是何种consitituent。而Dependency Parsing则是输入两个单词,然后有两个classifiers,一个判断这两个单词是不是dependency,另一个判断dependency的relation是什么。
Chapter7-9_Deep Learning for Dependency Parsing_第4张图片

实际的操作中也是如此的,真的就是把需要比较的两个单词,都放进classifiers当中的跑一跑就可以了。但是这样会面临一个问题,就是如果产生矛盾的结果该怎么办?比如下图中, w 1 w_1 w1指向了 w 2 w_2 w2,同时 w 3 w_3 w3也指向了 w 2 w_2 w2,但我们有一条规则是一个节点只能有一个箭头指向它,这样一来就矛盾了。
Chapter7-9_Deep Learning for Dependency Parsing_第5张图片

解决这个问题的办法很简单,就是把模型预测的概率记录下来,然后用最大生成树的演算法去找最优路径即可。
Chapter7-9_Deep Learning for Dependency Parsing_第6张图片
除此之外,也有Transition-based Approach,和Constituency Parsing中介绍过的Transition-based Approach大同小异,最有名的就是2016谷歌提出的SyntaxNet,这里就不细讲了。

你可能感兴趣的:(课程笔记,自然语言处理,机器学习,深度学习,李宏毅)