句法是指句子的各个组成部分的相互关系。
句法分析分为
句法结构分析又称短语结构分析(phrase structure parsing),也叫成分句法分析(constituent syntactic parsing),用于获取整个句子的句法结构;
依存分析用于获取词汇之间的依存关系。
深层文法句法分析,即利用深层文法,例如词汇化树邻接文法(Lexicalized Tree Adjoining Grammar, LTAG)、词汇功能文法(Lexical Functional Grammar, LFG)、组合范畴文法(Combinatory Categorial Grammar, CCG)等,对句子进行深层的句法以及语义分析。
目前的句法分析已经从句法结构分析转向依存句法分析。
依存语法通过分析语言单位内成分之间的依存关系揭示其句法结构,主张句子中核心动词是支配其它成分的中心成分,而它本身却不受其它任何成分的支配,所有受支配成分都以某种依存关系从属于支配者。
在20世纪70年代,Robinson提出依存语法中关于依存关系的四条公理:
依存关系是一个中心词与其从属之间的二元非对称关系,一个句子的中心词通常是动词(Verb),所有其他词要么依赖于中心词,要么通过依赖路径与它关联。
一些重要概念:
依存结构是加标签的有向图,箭头从中心词指向从属,具体来说,箭头是从head指向child,从该解析树可以看出,每个Token只有一个Head。
如上图所示,和成分句法分析相比,依存句法分析更加直接的分析出句子的主语谓语等成分。另外一点,依存句法分析的结果里,词的关系更加直接。比如上面的例子中动词prefer的直接宾语是flight,在依存句法分析树中,直接有prefer到flight的边,而在成分句法分析中这种关系是不直接的(但是也是有的)。
关系标签
标签表示从属的语法功能,名词性的标签是:
其他常用的标签:
依存分析器的性能评价:
arc-standard配置(configuration)定义为c=(s, b, A)。
其中s是一个栈,b是一个buffer(队列),A是已经parse得到的边(依存关系,包括label)。初始配置的s=[ROOT], b=[w1,…,wn]b=[w1,…,wn],A=ΦA=Φ。一个配置是终止(terminal)配置的条件是:buffer为空并且s里只有ROOT。sisi从栈顶往下的第i个元素,因此s1s1是栈顶的元素。bibi是buffer的第i个元素。arc-standard算法定义了3种操作:
对于带label的版本,总共有|T|=2Nl+1|T|=2Nl+1个不同的操作,这里NlNl是不同label的数量。下图是一个例子,左上是正确的依存关系;右上是parse过程中的一个配置。下边是一个正确的操作序列和配置的变化。
对于贪心的parser来说,输入是一个配置,输出是|T||T|中的一个。这是一个分类问题,输入的配置里有很多有用的信息,传统的机器学习会手工提取很多特征,就像我们在前面的例子里介绍的那样,它们的缺点我们也介绍过来,那么接下来就是怎么用神经网络来改进这个分类器了。
对于一个配置,我们首先抽取一些相关的词、词性和已经parse的关系的label。词的集合是Sw,词性的集合是St,label的集合是Sl。并且假设这些集合的大小分别是nw,nt,nl。假设Sw=[w1,…,wnw],我们对这nw个词都进行Embedding,这样得到xw=[eww1,eww2,…,ewwnw],类似的,我们可以得到xt和xl,然后我们把xw,wt,wl接入全连接网络,并且使用3次方的激活函数得到:
然后再加一个全连接层,激活是softmax,得到分类的概率:
通常我们会对词进行Embedding,但是作者认为对词性和label进行Embedding也是有必要的,比如词性,NN和NNS会有相似的性质。SwSw有18个词,分别是栈顶和buffer头部的3个词:s1,s2,s3,b1,b2,b3;s1和s2最左的2个孩子,最右的2个孩子;s1和s2最左孩子的最左孩子(这是孩子的孩子!),最右孩子的最右孩子。6+8+4=18。
为了方便,我们用记号lc1(s1)表示栈顶(s1)元素的最左的孩子,而lc2(s1)示栈顶(s1)元素的第二左的孩子。类似的用rc1,rc2表示最右和第二右的孩子。因此最左孩子的最左孩子可以这样表示lc1(lc1(s1))。
St有18个词性,是和SwSw对应的。而Sl有12=8+4个,因为s1,s2,s3,b1,b2,b3并没有label。我们抽取的label是来自与边(孩子),比如s1和它最左的2个孩子会对应两条边。因此label总共可以抽取8+4=12个。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。