【笔记3-1】CS224N课程笔记 - 深度自然语言处理
【笔记3-2】CS224N课程笔记 - 词向量表示 word2vec
【笔记3-3】CS224N课程笔记 - 高级词向量表示
【笔记3-4】CS224N课程笔记 - 分类与神经网络
【笔记3-6】CS224N课程笔记 - RNN和语言模型
【笔记3-7】CS224N课程笔记 - 神经机器翻译seq2seq注意力机制
【笔记3-8】CS224N课程笔记 - 卷积神经网络
CS224n:深度学习的自然语言处理(2017年冬季)1080p https://www.bilibili.com/video/av28030942/
涉及到的论文:
Globally Normalized Transition-Based Neural Networks (Daniel Andor, Chris Alberti, DavidWeiss, Aliaksei Severyn, Alessandro Presta, Kuzman Ganchev, Slav Petrov and Michael Collins,2016)
https://arxiv.org/pdf/1603.06042.pdf
A Fast and Accurate Dependency Parser using Neural Networks (Danqi Chen, Christopher D. Manning,2014)
https://cs.stanford.edu/people/danqi/papers/emnlp2014.pdf
Incrementality in Deterministic Dependency Parsing (Joakim Nivre,2004)
https://www.aclweb.org/anthology/W04-0308
依存语法和依存结构
与编译器中的解析树类似,NLP中的解析树用于分析句子的句法结构。使用的结构主要有两种类型——constituency和dependency。
Constituency Grammar:使用短语结构语法将单词放入嵌套的组件中。
Dependency Parsing:句子的从属结构显示哪些词依赖于(修饰或是)哪些词。这些单词之间的二元非对称关系称为依赖关系,并被描述为从head到dependent。通常这些依赖关系形成一个树结构。经常用语法关系的名称进行分类(主语,介词宾语,同位语等)。有时会将假根节点作为head添加到树中,所以每个单词都依赖于一个节点。
依存分析
依存分析:分析给定输入句的语法依赖结构。依存解析器的输出是依赖树,其中输入句的单词通过类型化依赖关系连接。在形式上,依存关系问题要求从输入语句(包含单词 S = w 0 w 1 . . . w n S=w_0w_1...w_n S=w0w1...wn)到依存关系树创建一个映射。
依存分析有两个子问题:
- 学习:给定一组用依赖关系图标注的句子训练集D,导出一个解析模型M,该模型可用于解析新句子。
- 解析:给定一个解析模型M和一个句子S,根据M推导出S的最优依赖关系图D。
基于转换的依存分析
基于转换的依存解析依赖于状态机,状态机定义可能的转换,以创建从输入语句到依赖项树的映射。学习问题是根据状态机的过渡历史,建立预测状态机下一个过渡的模型。解析问题是根据前面推导的模型,构造输入句子的最优转换序列。大多数基于转换的系统不使用正式语法。
贪婪转换依存分析
这个转换系统是一个状态机,它由状态以及这些状态之间的转换组成。该模型推导一系列从某种初始状态到几种终端状态之一的转换。
- 状态 state:
对于任意一个句子 S = w 0 w 1 . . . w n S=w_0w_1...w_n S=w0w1...wn,状态是以下三者的组合 c = ( σ , β , A ) c=(\sigma,\beta,A) c=(σ,β,A)
σ \sigma σ是一个包含 S S S 中的 w i w_i wi 的堆栈(stack); β \beta β 是包含 w i w_i wi的缓冲区(buffer);A是依存弧 ( w i , r , w j ) (w_i,r,w_j) (wi,r,wj)的集合,其中 w i , w j w_i,w_j wi,wj来自于句子S, r r r表示依存关系。
对于任意一个句子 S = w 0 w 1 . . . w n S=w_0w_1...w_n S=w