当前位置:   article > 正文

cs224n 笔记6 依存分析_句法分析模型评价标准uas/las

句法分析模型评价标准uas/las

前言

此篇博客是cs224n的第六讲的课程笔记,主要对依存分析进行了讲解,用于备忘。

两种语法结构工具

上下文无关文法

描述句子结构有两种主要工具,一种是上下文无关文法(context-free grammars,CFGs)的方法,这种方法也被引申为短语结构文法(phrase structure grammar)和句子成分(constituency)的概念。所谓的上下文无关文法,个人理解就是根据一定的规则构成的句子结构,规定一定文法,在该文法下进行部分结构替换。如下图所示, N P s g NP_{sg} NPsg可以被替换成DT NN PP,该条规则就是 N P s g → D T N N P P NP_{sg} \rightarrow DT NN PP NPsgDTNNPP
在这里插入图片描述

依存句法结构

另外一种就是依存句法结构,如果一个词A修饰另外一个词B,那么A就是B的依赖。比如barking dog 中的barking就是dog的依赖。通常,用箭头来表示这种依赖,箭头的方向根据自身习惯决定。如下图所示
在这里插入图片描述

歧义

依存句法分析可以解决句子的歧义性
在这里插入图片描述
from space 用来修饰whales还是study,对句子就会有不同的解读。

标注数据库

在上世纪90年代,人们开始耗费大量人力物力对句子进行标注。标注好的数据如下图所示
在这里插入图片描述
在当时上下文无关文法流行的时代背景下,这种效率低且速度慢的方法很无厘头,而书写语法规则才具有普适性。但是,对于现在的机器学习,构建一个标注好的树库十分的有用。

树库的优点:

  • 可被重复利用,每个人的书写规则不一,所以所谓的语法规则不具有重复利用性,而树库具备这种特性。
  • 树库具有真实的覆盖面广的数据,而人们书写规则知识依靠对语法的直觉判断
  • 数据能够给出各种可能性及不同可能性同时发生的概率
  • 树库能够评估我们构建的任何系统

依存句法分析

通常,我们进行依存句法分析的时候会对依存关系的类型进行标注
在这里插入图片描述
图中,Bills是submitted的辅修饰项,submitted称为head,Bills称为dependent。介词没有任何dependent,比如这里的by

依存句法可用信息

  • 词语相关性,比如discussion与issues
  • 词语间距,因为一般相邻的词语才具有依存关系
  • 中间词语,如果中间词语是动词或标点,则两边的词语不太可能有依存关系
  • 词语数量,一个词语最多有几个依赖者

依存句法分析条件

约束条件:

  • root只有一个dependent
  • 无环
    满足两个条件就能生成一个依存树。英语中大部分句子是projective(无交叉)的,少数是non-projective(有交叉)的。

依存句法分析方法

  • Dynamic programming

  • Graph algorithms

  • Constraint Satisfaction

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

第四种方法是我们需要关注的,主要思想是基于贪心决策动作拼装句法树。

Arc-standard transition-based parser

这种基于弧标准转换的依存分析方法的核心思想如下图所示, σ \sigma σ代表堆,初始值是ROOT, β \beta β代表缓冲,初始值为句子集合。下面Shift、Left-Arc和Right-Arc是三中可选操作。
Shift:将缓冲区内的单词 w i w_i wi移动到堆中
Left-Arc:从堆中移动左边的单词
Right-Arc:从对中移动右边的单词
终止条件是堆中只剩ROOT一个词,缓冲为空
在这里插入图片描述
课程中提到的例子是“I ate fish”,左边代表堆,右边代表缓冲。
Shift操作:
在这里插入图片描述
Left-Arc和Right-Arc
在这里插入图片描述
以上是介绍了各种操作代表什么,还没有提到什么时候该进行什么操作。
事实上,我们已经有了树库对句子的已有分析,可以利用该信息训练分类器来决定每一步应该进行哪种操作。

神经网络依存句法分析器

训练神经网络作为分类器来判断需要进行哪种操作,这种神经网络的训练的第一个问题就是这么构建特征。课程中提到的方法是根据堆和缓冲中的词、词性、依存标签进行组合得到成千上万的特征。如下图所示, s 2. w s2.w s2.w的意思是堆中的第二个词是has,而且被标为现在时,顶端词是good,这就是一个特征。通过这种方法可以得到一个稀疏的特征向量。
在这里插入图片描述

依存分析的评估

评价指标主要是两种:UAS和LAS,前者不考虑标签的只考虑弧的准确性,后者同时考虑标签和弧
在这里插入图片描述

问题及解决

以上提到的构建特征向量的方法存在很多问题:

  • 稀疏性:构成的特征向量过于稀疏
  • 不完整:不会将所有可能的特征都构建出来
  • 计算代价大:95%的时间用于特征的计算上

解决方法
将输入替换为单词、词性和依存的向量表示,将这些向量表示进行拼接,如下图所示
在这里插入图片描述
然后构建一个常见的三层神经网络
在这里插入图片描述
这是课程中提到的效果对比
在这里插入图片描述

为什么需要非线性

老生常谈,简单记录一下课程提到的常见的激活函数形式
在这里插入图片描述
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/369030
推荐阅读
相关标签
  

闽ICP备14008679号