CS224n-Lecture5-Linguistic Structure Dependency Parsing

综述

Linguistic Structure: Dependency parsing  语言结构:依存句法分析

1. Syntactic Structure: Consistency and Dependency (25 mins)

语法结构:一致性和依赖性

2. Dependency Grammar and Treebanks (15 mins)

依存语法和树库

3. Transition-based dependency parsing (15 mins)

基于转移的依存句法分析

4. Neural dependency parsing (15 mins)

神经网络依存句法分析

正文

依存语法是给定一个输入句子,分析句子的句法依存结构的任务。依存句法的输出是一棵依存语法树,其中输入句子的单词是通过依存关系的方式连接。

1.语言结构的两种方式

CFGs(context-free grammars) 上下文无关语法

核心在于短语结构将单词组织成嵌套成分。

其主要步骤是先对每个词做词性分析part of speech, 简称POS,然后再将其组成短语,再将短语不断递归构成更大的短语。其中N(Noun)名词,Det(Determiner)限定词,Adj(Adjective)形容词,, P(Preposition)介词,NP(Noun Phrase)名词短语,PP(Preposition Phrase)介词短语,类似的还有VP(Verb Phrase)动词短语(如talk to)。

Dependency structure 依赖结构

依赖结构展示了词语之间的依赖关系,一般两两之间使用有向边进行连接,同时会在边上标出具体的语法关系。

subj:subject mod:modifier

理解句子结构的原因

理论上,通过理解句子的结构,能够正确地解释语言,最主要就是为了防止歧义。

人类通过将单词组合成更大的单元来传达复杂的含义,从而传达复杂的思想。

我们需要知道具体与什么相关。

介词短语依从性歧义

 

介词短语附件多样性歧义

多个介词短语意味着更多的选择(卡特兰数通项式c(2n, n)/(n+1),数学系的可以出列)

 

协调范围歧义

 

形容词修饰语歧义

这里涉黄就不讲了。

 

动词短语附件歧义

修饰mutilated body还是Rio beach

 

2.依存语法和依存结构

依赖性语法假定语法结构由词汇项之间的关系组成,通常是称为依赖性的二进制非对称关系(“箭头”)。

箭头通常以语法关系的名称(主题,介词宾语,并置等)键入。

箭头将头(总督,上级,摄政)与从属(修饰语,下级,下属)联系起来。

通常,依赖关系形成一棵树(连接,无环,单头)。

(依存树)

或是另外种形式(依存语法)

回顾之前的两种表示形式,树形的带注释数据更为清晰,于是便有了通用依赖树库(一个带标注的数据集)

树库相比建立依存语法除了构建比较复杂比较缓慢之外,有以下几点好处:

• Reusability of the labor  可重用性

• Many parsers, part-of-speech taggers, etc. can be built on it  基于树库的词性标注等

• Valuable resource for linguistics  其他任务的重要资源

• Broad coverage, not just a few intuitions  覆盖范围广,不仅依赖于直觉,更专业

• Frequencies and distributional information  包含频率和分布信息

• A way to evaluate systems   也可用于评估

通常具有以下约束:

1.仅有一个单词与ROOT关联。

2.不允许循环结构,如A->B,B->A

Projectivity(投影性?)

定义:当单词以线性顺序排列时,没有相交的依赖弧,所有弧都在单词上方。

与CFG树平行的依赖项必定是投影的。

但是依存理论通常确实允许非射影结构解释被置换的成分。

依存分析的历史和方法,随便看看。

3.Transition-Based Parsing

Transition-Based Parsing

Transition-based Dependency Parsing可以看做是state machine,对于S=w0w1w2...wn,state由三部分构成(σ,β,A)。

σ是S中若干wi构成的stack。

β是S中若干wi构成的buffer。

A是dependency arc 构成的集合,每一条边的形式是(wi,r,wj),其中r描述了节点的依存关系如动宾关系等。

初始状态时,σ仅包含ROOT w0,β包含了所有的单词w1~wn,而A是空集∅。最终的目标是σ包含ROOT w0,β清空,此时A包含了所有的dependency arc。不断的进行三类操作,直到从初始态达到最终态。

state之间的transition三类操作:

SHIFT:将buffer中的第一个词移出并放到stack上。

LEFT-ARC:将(wj,r,wi)加入边的集合A,其中wi是stack上的次顶层的词,wj是stack上的最顶层的词。将wi从stack移除。(stack至少包含两个元素且wi不是ROOT)

RIGHT-ARC:将(wi,r,wj)加入边的集合A,其中wi是stack上的次顶层的词,wj是stack上的最顶层的词。将wj从stack移除。(stack至少包含两个元素)

 

MaltParser

机器学习的部分在每个步骤中产生。当我们考虑到LEFT-ARC与RIGHT-ARC各有|R|(|R|为r的类的个数)种class,我们可以将其看做是class数为2|R|+1的分类问题,可以用SVM等传统机器学习方法解决。从而有接近线性时间的快速解析效果。

 

Evaluation of Dependency Parsing

有两个metric,一个是LAS(labeled attachment score)即只有arc的箭头方向以及语法关系均正确时才算正确,以及UAS(unlabeled attachment score)即只要arc的箭头方向正确即可。

 

Handling non-projectivity

回顾之前所说的投影性,目前arc标准的依赖树仅构建投影性依赖树,如何解决非投影性的问题。

Possible directions to head:

1. Just declare defeat on nonprojective arcs   在非投影弧上声明失败

2. Use dependency formalism which only has projective representations

• CFG only allows projective structures; you promote head of violations

3. Use a postprocessor to a projective dependency parsing algorithm to

identify and resolve nonprojective links   后续处理

4. Add extra transitions that can model at least most non-projective

structures (e.g., add an extra SWAP transition, cf. bubble sort)  添加额外的转移过程

5. Move to a parsing mechanism that does not use or require any

constraints on projectivity (e.g., the graph-based MSTParser)  换个支持的算法...

 

4.Neural Dependency Parsing

为什么用神经网络呢?主要解决以下三个问题:

1.稀疏性。一个是关系类别较多维度会变得很大,另外就是词汇特征表示较稀疏。

2.不完整。几乎不可能包含所有可能的单词的有效组合。

3.计算量大。特征计算消耗了大量的时间,导致解析时间较长。

 

基于图的依存句法分析

为每个单词的每个可能依赖计算得分,将最高分作为其依赖,添加边。

前提是每个单词需要有非常良好的特征表示且包含上下文位置信息。

优点是准确率很高。

缺点是计算量太大,n个词要计算n^2个可能依赖项(仅考虑最高阶)

 

A Fast and Accurate Dependency Parser using Neural Networks

也许看过视频的同学会问,其实这篇论文只算是神经网络实现句法依存解析发展中部的一篇论文,也不是最高准确率的,为什么只讲这个呢?

是不是因为他在ppt上篇幅多点?是不是因为论文作者是女生啊?是不是看不起男生啊?

是的,原因就是她很强,推荐大家顺便抽空看一下《NEURAL READING COMPREHENSION AND BEYOND》(别人的毕业论文,完整的阐释了对于阅读理解任务的见解和研究),当然我可以推荐个别人的读后感:https://blog.csdn.net/cindy_1102/article/details/88714390

回归正题,论文介绍:

 

Abstract

就是上文所述为何使用神经网络取代传统机器学习,解决了问题,提高了多少精度和效率。

I Introduction

介绍谁谁的贡献,发展历史等等,其实就是之前我所说的最主要的基于转移的依存树的解析过程。

The main contributions of this work are:

 (i) showing the usefulness of dense representations that are learned within the parsing task,

(ii) developing a neural network architecture that gives good accuracy and speed, and

(iii)introducing a novel activation function for the neural network that better captures higher-order interaction features.

本工作的主要贡献是:

(i)展示在解析任务中学习到的密集特征表示的有效性

(ii)开发一种神经网络架构,提供良好的准确性和速度,和

(iii)为神经网络引入一种新的激活函数,能更好地捕捉高阶交互特性。

II Transition-based Dependency Parsing

没错,她的论文中也详细介绍了基于转移的依存树解析的原理和训练过程。并且详细描述了上面那三个问题。

III Neural Network Based Parser

特征选择:对给定句子S包含一些子集:

1.Sword:在堆σ的顶部和缓冲区β的S中一些单词的词向量(和它们的依存)。

2.Stag:在S中一些单词的词性标注(POS)。词性标注是由一个离散集合组成:

3.Slabel:在S中一些单词的依存标签。依存标签是由一个依存关系的离散集合组成:

对每种特征类型,我们都有一个对应的将特征的one-hot编码映射到一个d维的稠密的向量表示的嵌入矩阵。

Sword、Stag、Slabel的完全嵌入矩阵分别入下图所示,其中Nw是字典/词汇表的大小,Nt是词性标志数量的大小,Nl是依存标签的个数,R表示实数集,d*N表示维度大小。定义从每组特征中选出的元素的数量分别为nword,ntag,nlabel。

训练时损失函数:交叉熵+L2正则化部分

 

TIPS:

1.选取立方体激活函数是因为在这个函数能够包含三个部分各种乘积组合,理论上覆盖全部特征。

2.会使用预训练的embedding层,即图中从configura中获取特征的步骤,从而减少特征计算的时间。

对于参数的初始化,我们使用预训练的词嵌入来初始化Ew,对Et和El使用(-0.01,0.01)内的随机初始化。(E表示嵌入向量矩阵)

IV Experiments及以后

实验效果和部分内容详解以及参考资料等,不细讲了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值