论文地址: What's Going On in Neural Constituency Parsers? An Analysis
代码地址: github
摘要
最近几年,成分句法分析的方法发生了巨大的变化。传统的有基于PCFG的CKY算法,最近几年随着神经网络的兴起又产生了基于转移的方法、CRF句法分析、重排序方法等等。
本文是伯克利大学在NAACL18提出的一种基于神经网络的句法分析方法,和传统的方法不同的是,完全不使用语法规则和词汇特征,只需要用神经网络学习出短语的表示即可。通过实验可以发现,神经网络的确也很好的隐式学习出了传统的方法显式用到的语法规则和其他一些特征。在PTB数据集上,该方法达到了92.08%的F1值,这也直接超过了传统的大多数方法。而在下一篇伯克利的ACL18论文中,他们提出的基于Multi-Head Attention的成分句法分析方法更是达到了95.13%的F1值。
介绍
在过去几年,成分句法分析方法发生了巨大的变化。最大的变化就是语法规则和人工的词汇特征变得越来越不那么重要,取而代之的用循环神经网络学习短语的表示,但是还没有什么人对这种神经网络表示的有效性做研究分析。本文提出了一种用RNN学习表示用来句法分析的模型,并对模型的各个方面进行了分析。
句法分析模型
模型总览
和传统的CKY算法一样,该模型还是采用动态规划的算法求解每个短语的最大得分对应的类别以及分割点。只不过这里的短语得分不再是产生式概率之积,而是用RNN训练出来的短语得分。
单词表示
首先采用Char-BiLSTM训练出每个单词的字符级别的表示,这种表示方法已经很常见了,优点是可以捕捉到单词的前缀后缀等信息,还可以解决未登录词的表示问题。
最后将字符级别的词表示和预训练的词向量拼接起来作为最终的单词表示。也可以用外部序列标注器预测出单词的词性,并拼接上去作为输入,但是在这里只要Char-BiLSTM训练的足够好,就不需要词性标注了。
短语表示
图1是一个具体的例子:
短语类别得分
最后将短语表示输入到一个单层前馈神经网络中,输出得分向量,其中得分向量每个维度就对应了每个类别的概率。具体计算公式如下:
模型训练