笔记转载于GitHub项目:
12. 依存句法分析
语法分析(syntactic parsing )是自然语言处理中一个重要的任务,其目标是分析句子的语法结构并将其表示为容易理解的结构(通常是树形结构)。同时,语法分析也是所有工具性NLP任务中较为高级、较为复杂的一种任务。 通过掌握语法分析的原理、实现和应用,我们将在NLP工程师之路上跨越一道分水岭。 本章将会介绍短语结构树和依存句法树两种语法形式,并且着重介绍依存句法分析的原理和实现。
12.1 短语结构树
语言其实具备自顶而下的层级关系,固定数量的语法结构能够生成无数句子。比如,仅仅利用下列两个语法规律,我们就能够生成所有名词短语。
名词短语可以由名词和名词短语组成。名词短语还可以由名词和名词组成。
例如,“上海+浦东+机场+航站楼”,所以,汉语中大部分句子都可以通过这样的语法来生成。
在语言学中,这样的语法被称为上下文无关文法,它由如下组件构成:
终结符结合 Σ,比如汉语的一个词表。非终结符集合 V,比如“名词短语”“动词短语”等短语结构组成的集合。V 中至少包含一个特殊的非终结符,即句子符或初始符,计作 S。推到规则 R,即推到非终结符的一系列规则: V -> V U Σ。
基于上下文无关文法理论,我们可以从 S 出发,逐步推导非终结符。一个非终结符至少产生一个下级符号,如此一层一层地递推下去,我们就得到了一棵语法树。但在NLP中,我们称其为短语结构树。也就是说,计算机科学中的术语“上下文无关文法”在语言学中被称作“短语结构语法”。
1.短语结构树
短语结构语法描述了如何自顶而下的生成一个句子,反过来,句子也可以用短语结构语法来递归的分解。层级结构其实是一种树形结构,例如这句话“上海 浦东 开发 与 法制 建设 同步”,分解成如下图的短语结构树:
这样的树形结构称为短语结构树,相应的语法称为*短语结构语法**或上下文无关文法。至于树中的字母下面开始介绍。
2.宾州树库和中文树库
语言学家制定短语结构语法规范,将大量句子人工分解为树形结构,形成了一种语料库,称为树库( treebank )。常见的英文树库有宾州树库,相应地,中文领域有CTB。上图中叶子节点(词语)的上级节点为词性,词性是非终结符的一种,满足“词性生成词语”的推