依存句法分析 Dependency Parsing

任务介绍

句子的依存结构表达了词与词之间的依赖关系,这种关系称依存关系。它是一种二元的非对称关系(binary asymmetric relation),从依存关系的支配者head指向从属者dependent。

依存句法分析旨在将输入的句子转化成依存分析树(或图),依存树中自上而下任意父子结点之间用依存关系连接。在自然语言处理中,依存句法分析属于句法层次的任务,它一般需要词法层次的词性标注(POS)的结果作为辅助信息。

有趣的是,词性标注这个任务又需要分词结果作为辅助信息,可通过分词和词性标注联合任务来规避分词带来错误传播,当然这是题外话。

以LTP为例,依存句法分析中的依存关系包括:

关系类型 标签 描述 样例
主谓关系 SBV subject-verb 我送她一束花 (我 <-- 送)
动宾关系 VOB 直接宾语,verb-object 我送她一束花 (送 --> 花)
间宾关系 IOB 间接宾语,indirect-object 我送她一束花 (送 --> 她)
前置宾语 FOB 前置宾语,fronting-object 他什么书都读 (书 <-- 读)
兼语 DBL double 他请我吃饭 (请 --> 我)
定中关系 ATT attribute 红苹果 (红 <-- 苹果)
状中结构 ADV adverbial 非常美丽 (非常 <-- 美丽)
动补结构 CMP complement 做完了作业 (做 --> 完)
并列关系 COO coordinate 大山和大海 (大山 --> 大海)
介宾关系 POB preposition-object 在贸易区内 (在 --> 内)
左附加关系 LAD left adjunct 大山和大海 (和 <-- 大海)
右附加关系 RAD right adjunct 孩子们 (孩子 --> 们)
独立结构 IS independent structure 两个单句在结构上彼此独立
标点 WP punctuation
核心关系 HED head 指整个句子的核心

实际上,也不必严格遵守这个表格,最终还是得按照语料的来,毕竟tag都是标注规范说了算。

以“他叫汤姆去拿外衣。”为例,得到如下的依存句法分析结果:

一般句子的核心都是谓词。

依存句法分析可以帮助理解文本语义,并且具有可解释性。

基于贪心的确定性转移的依存句法分析[1]

将依存句法分析的分析过程看成状态机的状态转移过程。给定一个初始状态(init state)和一个终止状态(terminate state),状态机从初始状态出发,在每个时刻都贪心地选择一个转移方式,从而实现状态的转移。到达终止状态后,可根据整个过程中的转移序列可以还原出依存分析树。

用三元组((sigma), (eta), A)表示状态,其中(sigma)是一个栈(ROOT位于栈底),(eta)是缓存(buffer),A表示解析的结果。对于句子(s=(w_1, w_2, ..., w_n)),起始状态为([ROOT], [(w_0) (w_1) (w_2) ... (w_n)], (emptyset)),终止状态为([ROOT], [], A)

每个时刻的转移方式有三种,shift、left_arc和right_arc。

  • shift:将buffer中的一个词添加到栈顶;即 (sigma), (w_i)|(eta), A ( ightarrow) (sigma)|(w_i), (eta), A
  • Left-Arc(l):栈[ROOT w1 w2 ...]生成一个方向向左、依存关系标签为l的弧边((w_1 leftarrow w_2))加入到A中,然后将(w_1)移出栈;
  • Right-Arc(l):栈[ROOT w1 w2 ...]生成一个方向向右、依存关系标签为l的弧边((w_1 ightarrow w_2))加入到A中,然后将(w_2)移出栈;

以“He has good control.”为例,整个转移过程为:

最终可根据A得到如下解析树:

于是每个时刻如何选择转移方式成为方法的关键。考虑到状态机在每个时刻的转移方式有(2*N_l+1)[2],其中(N_l)是依存关系的数量。而状态机在每个时刻都只贪心地做出选择,所以简单构建一个分类器即可实现整个系统。当然,在解码过程中也可以换成beam search。

A Fast and Accurate Dependency Parser using Neural Networks中使用的是DNN模型,从stack和buffer中抽取出一些词,然后将这些词的词嵌入、POS标签嵌入、依存关系标签嵌入作为输入,输出则是预测状态转移的方式。考虑到2014年的模型拿到现在肯定不中用,无论是网络结构还是优化器,都过时了,所以这里不打算介绍了。

度量

度量包括两种,UAS(unlabeled attachment scores)和LAS(labeled attachment scores),其中LAS可参考CoNLL 2017 Shared Task: Multilingual Parsing from Raw Text to Universal Dependencies.

后记

相比于传统的语义理解,如今大数据+大算力直接训练端到端的模型成为主流,语义依存分析渐渐变得不再那么重要了。


  1. A Fast and Accurate Dependency Parser using Neural Networks. Danqi Chen, Christopher D. Manning. EMNLP 2014. ↩︎

  2. left-arc和right-arc各有(N_l)个转移方式,再加shift就是(2*N_l+1)了。 ↩︎

原文地址:https://www.cnblogs.com/YoungF/p/13827660.html