【CS224n】(lecture4)Dependency Parsing 依存句法分析

本文涉及的产品
NLP自然语言处理_基础版,每接口每天50万次
NLP 自学习平台,3个模型定制额度 1个月
全局流量管理 GTM,标准版 1个月
简介: 句法分析(syntactic parsing)是NLP的关键技术,对input句子进行分析得到对应的句法结构;语义分析通常以句法分析的输出,作为input,以获得更多的指示信息。

零、 句法分析基础

句法分析(syntactic parsing)是NLP的关键技术,对input句子进行分析得到对应的句法结构;语义分析通常以句法分析的输出,作为input,以获得更多的指示信息。


0.0 NLP基础任务

(1)语音、图像和文本

自然语言处理系统的输入源一共有3个,即语音、图像与文本。语音和图像这两种形式一般经过识别后转化为文字,转化后就可以进行后续的NLP任务了。


(2)中文分词、词性标注和命名实体识别

这3个任务都是围绕词语进行的分析,所以统称词法分析。词法分析的主要任务是将文本分隔为有意义的词语(中文分词),确定每个词语的类别和浅层的歧义消除(词性标注),并且识别出一些较长的专有名词(命名实体识别)。对中文而言,词法分析常常是后续高级任务(如句法分析等)的基础。


(3)信息抽取

词法分析之后,文本已经呈现出部分结构化的趋势,根据分析出来的每个单词和附有自己词性及其他标签的数据,抽取出一部分有用的信息,关键词、专业术语等,也可以根据统计学信息抽取出更大颗粒度的文本。


(4)文本分类与文本聚类

将文本拆分为一系列词语之后,就可以对文本进行分类和聚类操作,找出相类似的文本。


(5)句法分析

词法分析只能得到零散的词汇信息,计算机不知道词语之间的关系。在一些问答系统中,需要得到句子的主谓宾结构,这就是句法分析得到的结果,如下图所示:

image.png

不仅是问答系统或搜索引擎,句法分析还经常应用有基于短语的机器翻译,给译文的词语重新排序。


(6)语义分析与篇章分析

相较于句法分析,语义分析侧重语义而非语法。它包括词义消歧(确定一个词在语境中的含义,而不是简单的词性)、语义角色标注(标注句子中的谓语与其他成分的关系)乃至语义依存分析(分析句子中词语之间的语义关系)。


(7)其他高级任务

自动问答、自动摘要、机器翻译


注意,一般认为信息检索(Information Retrieve,IR)是区别于自然语言处理的独立学科,IR的目标是查询信息,而NLP的目标是理解语言。


0.1 句法分析任务分类

根据句法结构的表示形式不同,最常见的句法分析任务可以分为以下三种:


句法结构分析(syntactic structure parsing),又称短语结构分析(phrase structure parsing),也叫成分句法分析(constituent syntactic parsing)。作用是识别出句子中的短语结构以及短语之间的层次句法关系。


依存关系分析,又称依存句法分析(dependency syntactic parsing),简称依存分析,作用是识别句子中词汇与词汇之间的相互依存关系。依存句法分析属于浅层句法分析。


深层文法句法分析,即利用深层文法,例如词汇化树邻接文法(Lexicalized Tree Adjoining Grammar, LTAG)、词汇功能文法(Lexical Functional Grammar, LFG)、组合范畴文法(Combinatory Categorial Grammar, CCG)等,对句子进行深层的句法以及语义分析。


句法分析语料库:

汉语中常用的句法分析语料库有CTB(Chinese Treebank,中文树库),其中一个句子可视化后如下图所示。中文单词上面的英文标签标示词性,而箭头表示有语法联系的两个单词,具体是何种联系由箭头上的标签标示。

image.png


0.2 依存句法分析

依存句法假设:句法结构包含相互之间是双边不对称关系的词典(lexical)元素,这种不对称的关系成为依存(dependency),在图中的表现是单向箭头。

箭头通常还会打上这种语法关系的名字(主语,前置宾语等等)

箭头一边连接中心词head (governor, superior, regent),一边则连接依存词dependent (modifier, inferior, subordinate)。

这种关系表现为树结构

0.3 依存分析方法分类

基于规则的方法: 早期的基于依存语法的句法分析方法主要包括类似CYK的动态规划算法、基于约束满足的方法和确定性分析策略等。


基于统计的方法:统计自然语言处理领域也涌现出了一大批优秀的研究工作,包括生成式依存分析方法、判别式依存分析方法和确定性依存分析方法,这几类方法是数据驱动的统计依存分析中最为代表性的方法。


基于深度学习的方法:近年来,深度学习在句法分析课题上逐渐成为研究热点,主要研究工作集中在特征表示方面。传统方法的特征表示主要采用人工定义原子特征和特征组合,而深度学习则把原子特征(词、词性、类别标签)进行向量化,在利用多层神经元网络提取特征。


一、Syntactic Structure: Consistency and Dependency 语言结构的两种角度

依存分析一般有两个视角:

(1)组成关系(Consistency):Constituency Grammar。使用短语结构语法将单词放入嵌套的组件中。

(2)依赖关系(Dependency):Dependency Parsing。句子的从属结构显示哪些词依赖于(修饰或是)哪些词。这些单词之间的二元非对称关系称为依赖关系,并被描述为从head到dependent。通常这些依赖关系形成一个树结构。经常用语法关系的名称进行分类(主语,介词宾语,同位语等)。有时会将假根节点作为head添加到树中,所以每个单词都依赖于一个节点。


1.1 角度1:Constituency Parsing

语言结构的两种角度:

Constituency = phrase structure grammar = context-free grammars (CFGs)

这里的CFG即无上下文语法,也称为短语结构语法。

PS:不过该句法分析器准确率不高,现在研究较少,现在用角度2的依存句法树比较多。


通过短语结构,可以组织出嵌套的consistent:

image.png

如果标注上对应的词性:


image.png

Det 指的是 Determiner,在语言学中的含义为 限定词

NP 指的是 Noun Phrase ,在语言学中的含义为 名词短语

VP 指的是 Verb Phrase ,在语言学中的含义为 动词短语

P 指的是 Preposition ,在语言学中的含义为 介词

PP 指的是 Prepositional Phrase ,在语言学中的含义为 介词短语


image.png

1.2 角度2:Dependency Parsing

依存语法理论:


认为词与词之间存在主从关系,这是一种二元不等价的关系。

修饰词为从属词( dependent ),被修饰的词语称为支配词(head),两者之间的语法关系称为依存关系( dependency relation)。

比如句子“大梦想”中形容词“大”与名词“梦想"之间的依存关系如下图,被修饰词——>修饰词

image.png


依赖结构显示了哪些单词依赖于(修改、附加或作为参数)哪些其他单词。


image.png

look是整个句子的root,look依赖于crate

in,the,large都是crate的依赖

in,the都是kitchen的依赖

by the door是crate的依赖

小结:理解句子结构才能语言,要知道哪些词是哪些词的修饰词。


(0)基于LTP依存句法分析

利用哈工大的LTP中文工具集。

注意:在依存句法当中,虚节点ROOT占据了0位置,因此节点的下标从1开始。

from ltp import LTP
ltp = LTP()
# 对句子进行分词
# 分词结果用segment访问,hidden用于访问每个词的隐含层向量
seg, hidden = ltp.seg(["他叫汤姆去拿外衣。"])
dep = ltp.dep(hidden)
print(dep)

结果:

# [['他', '叫', '汤姆', '去', '拿', '外衣', '。']]
# [
#     [
#         (1, 2, 'SBV'),
#         (2, 0, 'HED'),    # 叫 --|HED|--> ROOT
#         (3, 2, 'DBL'),
#         (4, 2, 'VOB'),
#         (5, 4, 'COO'),
#         (6, 5, 'VOB'),
#         (7, 2, 'WP')
#     ]
# ]

(1)上面结果的第1、2行为例:(1, 2, 'SBV')(2, 0, 'HED'),依存句法树会有默认的虚拟root节点,其索引为0,分词后的索引是从1开始的:image.png

(2)第二行的(2, 0, 'HED')第二列为0,代表索引为2的结点(叫)的父节点是索引为0的虚拟root节点。

(3)第一行的(1, 2, 'SBV')的SBV是表示两个节点的依存关系是主谓关系,即“叫”和“他”是主谓关系。


利用hanlp工具可以对上面那句话进行语法分析的可视化:

image.png

语义分析的可视化:


image.png

(1)Prepositional phrase attachment ambiguity

介词短语依附歧义。

San Jose cops kill man with knife.


cops用knife kill了那个男子。

cops 是 kill 的 subject (subject 指 主语)

man 是 kill 的 object (object 指 宾语)

knife 是 kill 的 modifier (modifier 指 修饰符)

cops kill了那个有knife的男子

knife 是 man 的 modifier (名词修饰符,简称为 nmod )

Scientists count whales from space.

image.png

from space 这⼀介词短语修饰的是前面的动词 count 还是名词 whales。


PP attachment ambiguities multiply

介词短语依附歧义。

关键的解析决策是我们如何 “依存” 各种成分:介词短语、状语或分词短语、不定式、协调等。

image.png

上述句子中有四个介词短语


board 是 approved 的 主语, acquisition 是 approved 的谓语

by Royal Trustco Ltd. 是修饰 acquisition 的,即董事会批准了这家公司的收购

of Toronto 可以修饰 approved, acquisition, Royal Trustco Ltd. 之⼀,经过分析可以

得知是修饰 Royal Trustco Ltd. 即表示这家公司的位置

for $27 a share 修饰 acquisition

at its monthly meeting 修饰 approved ,即表示批准的时间地点

这样复杂的句子结构,需要考虑指数级个可能结构,即卡特兰数:

C n = ( 2 n ) ! / [ ( n + 1 ) ! n ! ] C_{n}=(2 n) ! /[(n+1) ! n !]

C

n

=(2n)!/[(n+1)!n!]


一个指数增长的序列,出现在许多类似树的情况中。

ex:一个n+2边的多边形可能的三角形数,三角形概率图模型(CS228课程有提)。

(2)Coordination scope ambiguity

协调范围模糊。


例句:Shuttle veteran and longtime NASA executive Fred Gregory appointed to board


一个人:[[Shuttle veteran and longtime NASA executive] Fred Gregory] appointed to board

两个人:[Shuttle veteran] and [longtime NASA executive Fred Gregory] appointed to board


例句:Doctor: No heart, cognitive issues


(3)Adjectival/Adverbial Modifier Ambiguity

形容词修饰语歧义。


例句:Students get first hand job experience


first hand 表示 第一手的,直接的,即学生获得了直接的工作经验

first 是 hand 的形容词修饰语(amod)

first 修饰 experience, hand 修饰 job

(4)Verb Phrase (VP) attachment ambiguity

动词短语(VP)依存歧义。


例句:Mutilated body washes up on Rio beach to be used for Olympic beach volleyball.


to be used for Olympic beach volleyball 是 动词短语 (VP)

修饰的是 body 还是 beach

(5)Dependency paths identify semantic relations

依赖路径识别语义关系。

image.png

通过依赖路径确定语义关系,如可以研究蛋白质之间的交互作用。


二、Dependency Grammar and Treebanks (15 mins)

2.1 Dependency Grammar and Dependency Structure

关联语法假设句法结构包括词汇项之间的关系,通常是二元不对称关系(“箭头”),称为依赖关系

Dependency Structure有两种表现形式


一种是直接在句子上标出依存关系箭头及语法关系

另⼀种是将其做成树状机构(Dependency Tree Graph)

image.png

2.2 Dependency Grammar/Parsing History

依赖结构的概念可以追溯到很久以前

Pāṇini的语法(公元前5世纪)

一千年 阿拉伯语的语法的基本方法

选区/上下文无关文法是⼀个新奇的发明

20世纪发明(R.S.Wells,1947; then Chomsky)

现代依赖工作经常源于 L. Tesnière(1959)

是20世纪“东方”的主导方法(俄罗斯,中国,…)

有利于更自由的语序语言

NLP中最早类型的解析器在美国

David Hays 是美国计算语言学的创始人之一,他很早就构建了依赖解析器(Hays 1962)

2.3 Dependency Grammar and Dependency Structure

大家对箭头指向的方式不⼀致:有些人把箭头朝⼀个方向画;有人是反过来的

ps:Tesnière 从头开始指向依赖,cs224也是用这种方式(即箭头指向依赖者dependent)。

通常添加⼀个伪根指向整个句子的头部,这样每个单词都精确地依赖于另⼀个节点。



在哈工大车万翔老师的《自然语言处理》书里,依存结构句法树(如下图),也是有添加一个虚拟根结点。



2.4 The rise of annotated data: Universal Dependencies treebanks

标记数据集的崛起:Universal Dependencies treebanks 树库

[Universal Dependencies: http://universaldependencies.org/ ; cf. Marcus et al. 1993, The Penn Treebank, Computational Linguistics]



Universal Dependencies:我们想要拥有⼀个统一的、并行的依赖描述,可用于任何人类语言


从前手工编写语法然后训练得到可以解析句子的解析器

用⼀条规则获得所需信息虽然有效,但是随着语法规则符号越来越复杂,这样做并没有共享和重用人类所做的工作

句子结构上的treebanks 支持结构更有效

The rise of annotated data:从一开始,构建 treebank 似乎比构建语法慢得多,也没有那么有用,但是 treebank 给我们提供了许多东西


劳动力的可重用性

许多解析器、词性标记器等可以构建在它之上

语言学的宝贵资源

广泛的覆盖面,而不仅仅是⼀些直觉

频率和分布信息

一种评估系统的方法

2.5 Dependency Conditioning Preferences

依赖项解析的信息来源是什么?


Bilexical affinities (两个单词间的密切关系)

[discussion 和 issues] 是看上去有道理的

Dependency distance 依赖距离

主要是与相邻词

Intervening material 介于中间的物质

依赖很少跨越介于中间的动词或标点符号(即如果中间的词语是动词或者标点,则两边的词语不太可能有依存)

Valency of heads

How many dependents on which side are usual for a head?



2.6 Dependency Parsing

依存关系句法分析。


通过为每个单词选择它所依赖的其他单词(包括根)来解析⼀个句子。


通常有⼀些限制

只有一个单词是依赖于根的

不存在循环

这使得依赖项成为树

最后一个问题是箭头是否可以交叉(非投影的 non-projective);没有交叉的就是non-projectice



2.7 Projectivity

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

与CFG树并行的依赖关系必须是投影的

通过将每个类别的⼀个子类别作为头来形成依赖关系

但是依赖理论通常允许非投射结构来解释移位的成分

如果没有这些非投射依赖关系,就不可能很容易获得某些结构的语义



2.8 Methods of Dependency Parsing

Dynamic programming

Eisner(1996)提出了一个复杂度为O ( n 3 ) O(n^3)O(n

3

)的算法,它生成头部位于末尾而不是中间的解析项

Graph algorithms

为一个句子创建一个最小生成树

McDonald et al.’s (2005) MSTParser 使用ML分类器独立地对依赖项进行评分(他使用MIRA进行在线学习,但它也可以是其他东西)

Constraint Satisfaction

去掉不满足硬约束的边 Karlsson(1990), etc.

“Transition-based parsing” or “deterministic dependency parsing“

良好的机器学习分类器 MaltParser(Nivreet al. 2008) 指导下的依存贪婪选择。已证明非常有效。

三、Methods of Dependency Parsing

Transition-based dependency parsing (15 mins)


3.1 Greedy transition-based parsing

3.2 Basic transition-based dependency parser

利用一个栈和队列:初始时栈为空,队列中存储未处理的词,算法结束后栈中存储依存结构子树序列。


转移算法定义三种转移动作:

SH:将队列中的第一个元素移入栈顶,形成一个仅包含一个节点的依存子树;

RL:将栈顶的两棵依存子树采用左弧合并;

RR:将栈顶的两棵依存子树采用右弧合并;


3.3 Arc-standard transition-based parser

标准弧(Arc-standard)转移算法。



中文句子的栗子:他喜欢下象棋。



图源自 车万翔《基于预训练模型的自然语言处理》

3.4 MaltParser

我们需要解释如何选择下⼀步行动

Answer:机器学习

每个动作都由⼀个有区别分类器(例如softmax classifier)对每个合法的移动进行预测

最多三种无类型的选择,当带有类型时,最多∣ R ∣ × 2 + 1 |R| \times 2+1∣R∣×2+1 种

Features:栈顶单词,POS;buffer中的第⼀个单词,POS;等等

在最简单的形式中是没有搜索的

但是,如果你愿意,你可以有效地执行⼀个 Beam search 束搜索(虽然速度较慢,但效果更好):你可以在每个时间步骤中保留 k个好的解析前缀

该模型的精度略低于依赖解析的最高水平,但它提供了非常快的线性时间解析,性能非常好

3.5 传统的特征表示

Conventional Feature Representation

传统的特征表示使用二元(0和1表示)的稀疏向量,维度为1 0 6 − 1 0 7 10^6- 10^710

6

−10

7

之间。

特征模板:通常由配置中的1 ~ 3个元素组成

Indicator features



3.6 依存分析的评价和表现

Evaluation of Dependency Parsing: (labeled) dependency accuracy:


对每个单词标上序号,列出每个依存关系对应的序号和类型。分为两种正确率的计算:


UAS (unlabeled attachment score) 指 无标记依存正确率 ,不考虑依存关系的类型,只考虑依存关系的对应单词是否正确,如父节点被正确识别的准确率;

LAS (labeled attachment score) 指有标记依存正确率,同时考虑依存关系的对应单词以及依存关系类型,即词的父节点,以及与父节点的句法关系都被正确识别的概率。

3.6 Handling non-projectivity

提出的弧标准算法只构建投影依赖树

头部可能的方向

在非投影弧上宣布失败

只具有投影表示时使用依赖形式

CFG只允许投影结构

使用投影依赖项解析算法的后处理器来识别和解析非投影链接

添加额外的转换,至少可以对大多数非投影结构建模(添加⼀个额外的交换转换,冒泡排序)

转移到不使用或不需要对投射性进行任何约束的解析机制(例如,基于图的MSTParser)

四、Neural dependency parsing

Indicator Features的问题


稀疏

不完整

计算复杂:超过95%的解析时间都用户特征计算


相关文章
|
7月前
|
机器学习/深度学习 自然语言处理 对象存储
[wordpiece]论文分析:Google’s Neural Machine Translation System
[wordpiece]论文分析:Google’s Neural Machine Translation System
94 1
|
7月前
|
自然语言处理 算法 Python
[SentencePiece]论文解读:SentencePiece: A simple and language independent subword tokenizer...
[SentencePiece]论文解读:SentencePiece: A simple and language independent subword tokenizer...
110 0
|
机器学习/深度学习 人工智能 自然语言处理
【论文精读】AAAI 2022 - Unified Named Entity Recognition as Word-Word Relation Classification
到目前为止,命名实体识别(NER)已经涉及三种主要类型,包括扁平、重叠(又名嵌套)和不连续NER,它们大多是单独研究的。
252 0
【论文精读】AAAI 2022 - Unified Named Entity Recognition as Word-Word Relation Classification
|
人工智能 自然语言处理 算法
【论文精读】AAAI 2022 - OneRel Joint Entity and Relation Extraction with One Module in One Step
联合实体和关系提取是自然语言处理和知识图构建中的一项重要任务。现有的方法通常将联合提取任务分解为几个基本模块或处理步骤,以使其易于执行
243 0
|
机器学习/深度学习 自然语言处理 数据可视化
EventGraph:Event Extraction as Semantic Graph Parsing 论文解读
事件抽取涉及到事件触发词和相应事件论元的检测和抽取。现有系统经常将事件抽取分解为多个子任务,而不考虑它们之间可能的交互。
85 0
|
机器学习/深度学习 人工智能 自然语言处理
One SPRING to Rule Them Both Symmetric AMR Semantic Parsing and Generation without Complex Pipeline
在文本到AMR解析中,当前最先进的语义解析器集成了几个不同模块或组件的繁琐管道,并利用图重新分类,即在训练集的基础上开发的一组特定内容的启发式方法。
138 0
|
自然语言处理
【论文速递】ACL 2022 - Prompt for Extraction? PAIE: Prompting Argument Interaction for Event Argument Extr
在本文中,我们提出了一个既有效又高效的模型PAIE,用于句子级和文档级的事件论元抽取(EAE),即使在缺乏训练数据的情况下也能很好地泛化。一方面,PAIE利用抽取目标的提示调优,以充分利用预训练语言模型(PLMs)的优势。
92 0
|
存储 自然语言处理 测试技术
LASS: Joint Language Semantic and Structure Embedding for Knowledge Graph Completion 论文解读
补全知识三元组的任务具有广泛的下游应用。结构信息和语义信息在知识图补全中都起着重要作用。与以往依赖知识图谱的结构或语义的方法不同
140 0
|
机器学习/深度学习 自然语言处理 算法
Re4:读论文 CGSum: Enhancing Scientific Papers Summarization with Citation Graph
Re4:读论文 CGSum: Enhancing Scientific Papers Summarization with Citation Graph
Re4:读论文 CGSum: Enhancing Scientific Papers Summarization with Citation Graph
|
算法 数据挖掘 TensorFlow
Re3:读论文 PGE A Representation Learning Framework for Property Graphs
Re3:读论文 PGE A Representation Learning Framework for Property Graphs
Re3:读论文 PGE A Representation Learning Framework for Property Graphs