赞
踩
对于句法结构分析,主要有两种方式:Constituency Parsing(成分句法分析)与Dependency Parsing(依存句法分析)。本节课的句法分析以英文为例,其他语言也有类似的结构。
Constituency Parsing称为成分句法分析,主要思想是通过短语语法来不断的将词语整理成嵌套的组成成分,又被称为context-free grammers,简写为CFG。
成分句法分析的主要步骤为:
举例来说,如图所示,进行如下处理:
首先进行词性判别(POS)
the是限定词,用Det(Determiner)表示,cuddly是形容词,用Adj(Adjective)代表,cat和door是名词,用N(Noun)表示, by是介词,用P(Preposition)表示。
然后依据语法关系对这些词语进行组合
the cuddly cat构成名词短语NP,这里由Det(the)+Adj(cuddly)+N(cat)构成,by the door构成介词短语PP,这里由P(by)+NP(the door)构成。
之后可以继续递归的组合下去
整个短语the cuddly cat by the door 是NP,由NP(the cuddly cat)+ PP(by the door)构成。
Dependency Parsing不是使用各种类型的短语,而是直接通过单词与其他的单词关系表示句子的结构,显示哪些单词依赖于(修饰或是其参数)哪些其他单词。
如图所示,
那么我们为什么需要句子结构呢?
Dependency Structure展示了词语之前的依赖关系,通常用箭头表示其依存关系,有时也会在箭头上标出其具体的语法关系,如是主语还是宾语关系等。
Dependency Structure有两种表现形式,一种是直接在句子上标出依存关系箭头及语法关系,如:
另一种是将其做成树状机构(Dependency Tree Graph)
箭头通常标记(type)为语法关系的名称(主题、介词对象、apposition等)。
依赖关系标签的系统,例如 universal dependency 通用依赖
箭头连接头部(head)(调速器,上级,regent)和一个依赖(修饰词,下级,下属)
通常,依赖关系形成一棵树(单头 无环 连接图)
人们对箭头指向的方式不一致:有些人把箭头朝一个方向画;有人是反过来的
通常添加一个伪根(root)指向整个句子的头部,这样每个单词都精确地依赖于另一个节点
Dependency Parsing可以看做是给定输入句子 [公式] (其中 [公式] 常常是fake ROOT,使得句子中每一个词都依赖于另一个节点)构建对应的Dependency Tree Graph的任务。
构建这个树一个有效的方法是Transition-based Dependency Parsing。
state之间的transition有三类:
我们不断的进行上述三类操作,直到从初始态达到最终态。
在每个状态下如何选择哪种操作呢?当我们考虑到LEFT-ARC与RIGHT-ARC各有|R|(|R|为r 的类的个数)种类,我们可以将其看做是class数为 2|R|+1 的分类问题,可以用SVM等传统机器学习方法解决。
对于这个任务的评估,我们有metric,一个是LAS(labeled attachment score)即只有arc的箭头方向以及语法关系均正确时才算正确,以及UAS(unlabeled attachment score)即只要arc的箭头方向正确即可。
示例如下:
图中,在评价UAS时可以看到,只有第三行的5->3预测错误为4->3,所以UAS=80%;而在评价LAS时,由于第3行箭头预测错误、第4,5行标签预测错误。所以LAS=40%。
传统的Transition-based Dependency Parsing对feature engineering要求较高,我们可以用神经网络来减少human labor。
对于Neural Dependency Parser,其输入特征通常包含三种:
我们根据堆栈/缓冲区位置提取一组token:
我们将其转换为embedding vector并将它们联结起来作为输入层,再经过若干非线性的隐藏层,最后加入softmax layer得到每个class的概率。
利用这样简单的前馈神经网络,可以减少feature engineering并提高准确度。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。