乐趣区

关于自然语言处理:斯坦福NLP课程-第5讲-句法分析与依存解析

  • 作者:韩信子 @ShowMeAI,路遥 @ShowMeAI,奇异果 @ShowMeAI
  • 教程地址:http://www.showmeai.tech/tutorials/36
  • 本文地址:http://www.showmeai.tech/article-detail/238
  • 申明:版权所有,转载请分割平台与作者并注明出处
  • 珍藏 ShowMeAI 查看更多精彩内容


ShowMeAI 为 斯坦福 CS224n《自然语言解决与深度学习 (Natural Language Processing with Deep Learning)》课程的全副课件,做了 中文翻译和正文,并制作成了 GIF 动图!


本讲内容的 深度总结教程 能够在 这里 查看。视频和课件等材料的获取形式见 文末


引言

授课打算

1. 句法结构:成分与依赖

1.1 语言构造的两种观点:无上下文语法

  • 句子是应用逐渐嵌套的单元构建的
  • 短语构造将单词组织成嵌套的成分

  • 起步单元:单词被赋予一个类别

    • part of speech = pos 词性
  • 单词 组合成不同类别的 短语
  • 短语 能够递归地组合成 更大的短语

  • Det 指的是 Determiner,在语言学中的含意为 限定词
  • NP 指的是 Noun Phrase,在语言学中的含意为 名词短语
  • VP * 指的是 Verb Phrase,在语言学中的含意为 动词短语 *
  • P 指的是 Preposition,在语言学中的含意为 介词
  • PP 指的是 Prepositional Phrase,在语言学中的含意为 介词短语

1.2 语言构造的两种观点:无上下文语法

1.3 语言构造的两种观点:依赖构造

  • 不是应用各种类型的短语,而是间接通过单词与其余的单词关系示意句子的构造,显示哪些单词依赖于 (润饰或是其参数) 哪些其余单词

补充解说

  • look 是整个句子的本源,look 依赖于 crate (或者说 cratelook 的依赖)

    • inthelarge 都是 crate 的依赖
    • in the kitchencrate 的润饰
    • inthe 都是 kitchen 的依赖
    • by the doorcrate 的依赖

1.4 为什么咱们须要句子构造?

  • 为了可能正确地解释语言,咱们须要了解句子构造
  • 人类通过将单词组合成更大的单元来传播简单的意思,从而交换简单的思维
  • 咱们须要晓得什么与什么相关联

    • 除非咱们晓得哪些词是其余词的参数或修饰词,否则咱们无奈弄清楚句子是什么意思

1.5 介词短语附丽歧义

San Jose cops kill man with knife

  • 警察用刀杀了那个女子

    • copskillsubject (subject 指 主语)
    • mankillobject (object 指 宾语)
    • knifekillmodifier (modifier 指 修饰符)

  • 警察杀了那个有刀的女子

    • knifemanmodifier (名词修饰符,简称为 nmod)

1.6 介词短语附丽歧义

补充解说

  • from space 这一介词短语润饰的是后面的动词 count 还是名词 whales

    • 这就是人类语言和编程语言中不同的中央

1.7 介词短语附加歧义成倍增加

  • 要害的解析决策是咱们如何“依存”各种成分

    • 介词短语、状语或分词短语、不定式、协调等。

补充解说

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

  • boardapproved 的主语,acquisitionapproved 的谓语
  • by Royal Trustco Ltd. 是润饰 acquisition 的,即董事会批准了这家公司的收买
  • of Toronto 能够润饰 approvedacquisitionRoyal Trustco Ltd. 之一,通过剖析能够得悉是润饰 Royal Trustco Ltd.,即示意这家公司的地位
  • for $27 a share 润饰 acquisition
  • at its monthly meeting 润饰 approved,即示意批准的工夫地点

补充解说

面对这样简单的句子构造,咱们须要思考 指数级 的可能构造,这个序列被称为 卡特兰数 /Catalan numbers

Catalan numbers

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

1.8 协调范畴含糊

补充解说

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

1.9 协调范畴含糊

  • 例句:Doctor: No heart,cognitive issues

1.10 形容词修饰语歧义

补充解说

Students get first hand job experience

  • first hand 示意 第一手的,间接的,即学生取得了间接的工作教训

    • firsthand 的形容词修饰语(amod)
  • first 润饰 experiencehand 润饰 job

1.11 动词短语 (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

2. 依赖语法与树库

2.1 #论文解读# 依赖门路辨认语义关系

2.2 依存文法和依存构造

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

Dependency Structure 有两种表现形式

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

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

  • 箭头通常标记 (type) 为语法关系的名称(主题、介词对象、apposition 等)
  • 箭头连贯头部 (head)(调速器,下级,regent) 和一个依赖(修饰词,上级,上司)

    • \(A \to\) 的事件
  • 通常,依赖关系造成一棵树(单头,无环,连贯图)

2.3 依存语法 / 解析历史

2.4 依存语法 / 解析历史

  • 依赖构造的概念能够追溯到很久以前

    • Paṇini 的语法(公元前 5 世纪)
    • 一千年,阿拉伯语的语法的根本办法

  • 选区 / 上下文无关文法是一个离奇的创造

    • 20 世纪创造(R.S.Wells,1947; then Chomsky)

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

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

      • 有利于更自在的语序语言

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

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

2.5 依存语法和依赖构造

  • 人们对箭头指向的形式不统一:有些人把箭头朝一个方向画;有人是反过来的

    • Tesnière 从头开始指向依赖,本课应用此种形式
  • 通常增加一个伪根指向整个句子的头部,这样每个单词都准确地依赖于另一个节点

2.6 带正文数据的衰亡:通用依存句法树库

补充解说

Universal Dependencies:咱们想要领有一个对立的、并行的依赖形容,可用于任何人类语言

  • 从前手工编写语法而后训练失去能够解析句子的解析器
  • 用一条规定捕获很多货色真的很有效率,然而事实证明这在实践中不是一个好主见

    • 语法规定符号越来越简单,并且没有共享和重用人类所做的工作
  • 句子构造上的 treebanks 反对构造更无效

2.7 带正文数据的衰亡

从一开始,构建 treebank 仿佛比构建语法慢得多,也没有那么有用

然而 treebank 给咱们提供了许多货色

  • 可重用性

    • 许多解析器、词性标记器等能够构建在它之上
    • 语言学的贵重资源
  • 宽泛的覆盖面,而不仅仅是一些直觉
  • 频率和散布信息
  • 一种评估零碎的办法

2.8 依赖条件首选项

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

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

    • [discussion → issues] 是看上去有情理的
  • 2.Dependency distance 依赖间隔

    • 次要是与相邻词
  • 3.Intervening material 介于两头的物质

    • 依赖很少逾越介于两头的动词或标点符号
  • 4.Valency of heads

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

2.9 依赖关系剖析

  • 通过为每个单词抉择它所依赖的其余单词 (包含根) 来解析一个句子

  • 通常有一些限度

    • 只有一个单词是依赖于根的
    • 不存在循环 A→B,B→A
  • 这使得依赖项成为树
  • 最初一个问题是箭头是否能够穿插(非投影的 non-projective)

    • 没有穿插的就是 non-projectice

2.10 射影性

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

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

    • 通过将每个类别的一个子类别作为头来造成依赖关系

  • 然而依赖实践通常容许非投射构造来解释移位的成分

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

2.11 依存分析方法

1.Dynamic programming

  • Eisner(1996)提出了一种复杂度为 O(n3) 的聪慧算法,它生成头部位于开端而不是两头的解析项

2.Graph algorithms

  • 为一个句子创立一个最小生成树
  • McDonald et al.’s (2005) MSTParser 应用 ML 分类器独立地对依赖项进行评分(他应用 MIRA 进行在线学习,但它也能够是其余货色)

3.Constraint Satisfaction

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

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

  • 良好的机器学习分类器 MaltParser(Nivreet al. 2008) 领导下的依存贪心抉择。已证实十分无效。

3. 基于转换的依存分析模型

3.1 #论文解读# Greedy transition-based parsing [Nivre 2003]

![# 论文解读# Greedy transition-based parsing [Nivre 2003]](https://img-blog.csdnimg.cn/i…)

  • 贪心判断依赖解析器一种简略模式
  • 解析器执行一系列自底向上的操作

    • 大抵相似于 shift-reduce 解析器中的“shift”或“reduce”,但“reduce”操作专门用于创立头在左或右的依赖项

  • 解析器如下

    • 栈 \(\sigma\) 以 ROOT 符号开始,由若干 \(w_i\) 组成
    • 缓存 \(\beta\) 以输出序列开始,由若干 \(w_i\) 组成
    • 一个依存弧的汇合 \(A\),一开始为空。每条边的模式是 \((w_i,r,w_j)\),其中 \(r\) 形容了节点的依存关系
    • 一组操作

3.2 根本的基于转换的依存关系解析器

  • 最终目标是 \(\sigma = [ROOT]\),\(\beta = \phi\),\(A\) 蕴含了所有的依存弧

补充解说

state 之间的 transition 有三类

  • 1.SHIFT:将 buffer 中的第一个词移出并放到 stack 上。
  • 2.LEFT-ARC:将 \((w_j,r,w_i)\) 退出边的汇合 \(A\),其中 \(w_i\) 是 stack 上的次顶层的词,\(w_j\) 是 stack 上的最顶层的词。
  • 3.RIGHT-ARC:将 \((w_i,r,w_j)\) 退出边的汇合 \(A\),其中 \(w_i\) 是 stack 上的次顶层的词,\(w_j\) 是 stack 上的最顶层的词。

咱们一直的进行上述三类操作,直到从初始态达到最终态。

  • 在每个状态下如何抉择哪种操作呢?
  • 当咱们思考到 LEFT-ARC 与 RIGHT-ARC 各有 \(\left|R\right|\)(\(\left|R\right|\)为 \(r\) 的类的个数)品种,咱们能够将其看做是 class 数为 \(2\left|R\right|+1\) 的分类问题,能够用 SVM 等传统机器学习办法解决。

3.3 基于 Arc 规范转换的解析器

  • 还有其余的 transition 计划
  • Analysis of I ate fish

3.4 #论文解读# MaltParser [Nivre and Hall 2005]

![# 论文解读# MaltParser [Nivre and Hall 2005]](https://img-blog.csdnimg.cn/i…)

  • 咱们须要解释如何抉择下一步口头

    • Answer:机器学习

  • 每个动作都由一个有区别分类器 (例如 softmax classifier) 对每个非法的挪动进行预测
  • 最多三种无类型的抉择,当带有类型时,最多 \(\left|R\right|×2+1\) 种
  • Features:栈顶单词,POS;buffer 中的第一个单词,POS;等等

  • 在最简略的模式中是没有搜寻的

    • 然而,如果你违心,你能够无效地执行一个 Beam search 束搜寻(尽管速度较慢,但成果更好):你能够在每个工夫步骤中保留 \(k\) 个好的解析前缀

  • 该模型的精度略低于依赖解析的最高程度,但它提供了十分快的线性工夫解析,性能十分好

3.5 传统特色示意

  • 传统的特色示意应用二元的稠密向量 \(10^6 \sim 10^7\)
  • 特色模板:通常由配置中的 \(1 \sim 3\)个元素组成
  • Indicator features

3.6 依赖剖析的评估:(标记)依赖准确性

  • UAS (unlabeled attachment score) 指无标记依存正确率
  • LAS (labeled attachment score) 指有标记依存正确率

3.7 解决非投影性

  • 咱们提出的弧规范算法只构建投影依赖树

头部可能的方向:

  • 1. 在非投影弧上发表失败
  • 2. 只具备投影示意时应用依赖模式[CFG 只容许投影构造]
  • 3. 应用投影依赖项解析算法的后处理器来辨认和解析非投影链接
  • 4. 增加额定的转换,至多能够对大多数非投影构造建模(增加一个额定的替换转换,冒泡排序)
  • 5. 转移到不应用或不须要对投射性进行任何束缚的解析机制(例如,基于图的 MSTParser)

3.8 为什么要训练神经依赖解析器?从新扫视指标特色

  • Indicator Features 的问题

    • 问题 1:稠密
    • 问题 2:不残缺
    • 问题 3:计算简单

  • 超过 95% 的解析工夫都用于特色计算

4. 神经网络依存分析器

4.1 #论文解读# A neural dependency parser [Chen and Manning 2014]

![# 论文解读# A neural dependency parser [Chen and Manning 2014]](https://img-blog.csdnimg.cn/i…)

  • 斯坦福依存关系的英语解析

    • Unlabeled attachment score (UAS) = head
    • Labeled attachment score (LAS) = head and label

  • 成果好,速度快

4.2 分布式示意

  • 咱们将每个单词示意为一个 d 维浓密向量(如词向量)

    • 类似的单词应该有相近的向量

  • 同时,part-of-speech tags 词性标签 (POS) 和 dependency labels 依赖标签也示意为 d 维向量

    • 较小的离散集也体现出许多语义上的相似性。

  • NNS(复数名词)应该靠近 NN(复数名词)

    • num(数值修饰语)应该靠近 amod(形容词修饰语)

4.3 从配置中提取令牌和向量示意

补充解说

  • 对于 Neural Dependency Parser,其输出特色通常蕴含三种

    • stack 和 buffer 中的单词及其 dependent word
    • 单词的 part-of-speech tag
    • 形容语法关系的 arc label

4.4 模型体系结构

4.5 句子构造的依存剖析

  • 神经网络能够精确地确定句子的构造,反对解释

  • Chen and Manning(2014)是第一个简略,胜利的神经依赖解析器
  • 密集的示意使得它在精度和速度上都优于其余贪心的解析器

4.6 基于转换的神经依存剖析的新进展

  • 这项工作由其他人进一步开发和改良,特地是在谷歌

    • 更大、更深的网络中,具备更好调优的超参数
    • Beam Search 更多的摸索动作序列的可能性,而不是只思考以后的最优
    • 全局、条件随机场 (CRF) 的推理出决策序列

  • 这就引出了 SyntaxNet 和 Parsey McParseFace 模型

4.7 基于图形的依存关系分析器

4.8 #论文解读# A Neural graph-based dependency parser [Dozat and Manning 2017; Dozat, Qi, and Manning 2017]

![# 论文解读# A Neural graph-based dependency parser [Dozat and Manning 2017; Dozat, Qi , and Manning 2017]](https://img-blog.csdnimg.cn/i…)

  • 为每条边的每一个可能的依赖关系计算一个分数

  • 为每条边的每一个可能的依赖关系计算一个分数

    • 而后将每个单词的边缘增加到其得分最高的候选头部
    • 并对每个单词反复雷同的操作

  • 在神经模型中为基于图的依赖剖析注入生机

    • 为神经依赖剖析设计一个双仿射评分模型
    • 也应用神经序列模型,咱们将在下周探讨

  • 十分棒的后果

    • 然而比简略的基于神经传递的解析器要慢
    • 在一个长度为 \(n\) 的句子中可能有 \(n^2\) 个依赖项

5. 视频教程

能够点击 B 站 查看视频的【双语字幕】版本

6. 参考资料

  • 本讲带学的 在线阅翻页本
  • 《斯坦福 CS224n 深度学习与自然语言解决》课程学习指南
  • 《斯坦福 CS224n 深度学习与自然语言解决》课程大作业解析
  • 双语字幕视频】斯坦福 CS224n | 深度学习与自然语言解决(2019·全 20 讲)
  • Stanford 官网 | CS224n: Natural Language Processing with Deep Learning

ShowMeAI 系列教程举荐

  • 大厂技术实现 | 举荐与广告计算解决方案
  • 大厂技术实现 | 计算机视觉解决方案
  • 大厂技术实现 | 自然语言解决行业解决方案
  • 图解 Python 编程:从入门到精通系列教程
  • 图解数据分析:从入门到精通系列教程
  • 图解 AI 数学根底:从入门到精通系列教程
  • 图解大数据技术:从入门到精通系列教程
  • 图解机器学习算法:从入门到精通系列教程
  • 机器学习实战:手把手教你玩转机器学习系列
  • 深度学习教程 | 吴恩达专项课程 · 全套笔记解读
  • 自然语言解决教程 | 斯坦福 CS224n 课程 · 课程带学与全套笔记解读

NLP 系列教程文章

  • NLP 教程(1)- 词向量、SVD 合成与 Word2vec
  • NLP 教程(2)- GloVe 及词向量的训练与评估
  • NLP 教程(3)- 神经网络与反向流传
  • NLP 教程(4)- 句法分析与依存解析
  • NLP 教程(5)- 语言模型、RNN、GRU 与 LSTM
  • NLP 教程(6)- 神经机器翻译、seq2seq 与注意力机制
  • NLP 教程(7)- 问答零碎
  • NLP 教程(8)- NLP 中的卷积神经网络
  • NLP 教程(9)- 句法分析与树形递归神经网络

斯坦福 CS224n 课程带学详解

  • 斯坦福 NLP 课程 | 第 1 讲 – NLP 介绍与词向量初步
  • 斯坦福 NLP 课程 | 第 2 讲 – 词向量进阶
  • 斯坦福 NLP 课程 | 第 3 讲 – 神经网络常识回顾
  • 斯坦福 NLP 课程 | 第 4 讲 – 神经网络反向流传与计算图
  • 斯坦福 NLP 课程 | 第 5 讲 – 句法分析与依存解析
  • 斯坦福 NLP 课程 | 第 6 讲 – 循环神经网络与语言模型
  • 斯坦福 NLP 课程 | 第 7 讲 – 梯度隐没问题与 RNN 变种
  • 斯坦福 NLP 课程 | 第 8 讲 – 机器翻译、seq2seq 与注意力机制
  • 斯坦福 NLP 课程 | 第 9 讲 – cs224n 课程大我的项目实用技巧与教训
  • 斯坦福 NLP 课程 | 第 10 讲 – NLP 中的问答零碎
  • 斯坦福 NLP 课程 | 第 11 讲 – NLP 中的卷积神经网络
  • 斯坦福 NLP 课程 | 第 12 讲 – 子词模型
  • 斯坦福 NLP 课程 | 第 13 讲 – 基于上下文的表征与 NLP 预训练模型
  • 斯坦福 NLP 课程 | 第 14 讲 – Transformers 自注意力与生成模型
  • 斯坦福 NLP 课程 | 第 15 讲 – NLP 文本生成工作
  • 斯坦福 NLP 课程 | 第 16 讲 – 指代消解问题与神经网络办法
  • 斯坦福 NLP 课程 | 第 17 讲 – 多任务学习(以问答零碎为例)
  • 斯坦福 NLP 课程 | 第 18 讲 – 句法分析与树形递归神经网络
  • 斯坦福 NLP 课程 | 第 19 讲 – AI 平安偏见与偏心
  • 斯坦福 NLP 课程 | 第 20 讲 – NLP 与深度学习的将来

退出移动版