论文赏析[EMNLP18]用序列标注来进行成分句法分析(二)

简介: 本文定义了一种新的树的序列化方法,将树结构预测问题转化为了序列预测问题。该序列用相邻两个结点的公共祖先(CA)数量和最近公共祖先(LCA)的label来表示一棵树,并且证明了这个树到序列的映射是单射但不是满射的,但是提出了一系列方法来解决这个问题。

理论证明

主要证明两个性质,一个就是充分性(即每个句法树都能映射为一个序列),另一个就是单射性(即每个序列只能唯一对应一个句法树)。

充分性:这个显而易见,对于每个句法树,相邻两个单词一定存在唯一的LCA,且它的label也是唯一的,所以充分性肯定能保证的。

单射性:为了简便,首先证明不包含非终结符的树结构映射的单射性,再证明加上非终结符也是单射的。

如果用 image.png 表示第 i 个叶子结点,那么句法树可以表示成如下的括号表达式:

image.png

更进一步,每个 image.png 形式肯定是 image.png ,因为如果存在一个闭合的括号对,那么中间肯定还存在着一个叶子结点,这显然不可能。所以我们可以用 image.png 来替代 image.png ,用 image.png 来替代 image.png ,将 image.png 改写为 image.png ,括号表达式可以重写为:

image.png

注意到首尾两个元素一定是空的,接下来用 image.png 替换 image.png ,得到序列:

image.png

更进一步,可以证明 image.png 一定只含有 image.png 中的一个。因为如果两个都含有的话,说明存在 image.png 这种一元产生式,但是因为一元产生式都提前处理过了,所以不可能存在。

接下来可以给每个 image.png 分配一个值 image.png ,如果 image.png 左右两边都没有括号,那这个值就是0,如果左边有 k 个括号,那值就是 image.png ,如果右边有 k 个括号,那值就是 -k 。如果将这些值写成序列:

image.png

这个序列正好对应了之前的第二种编码,也就是编码成LCA的个数之差。这是为什么呢?可以看出,一直到  结束,没有闭合的括号数量正好就是 image.pngimage.png 的LCA数量。所以  image.png就是 image.pngimage.png 的LCA数量与 image.pngimage.png  的LCA数量的差值。

最后这就验证了括号序列和之前的编码是一一对应的,单射性得证。解码的时候只需要将数字直接转化成对应的括号序列就行了。

而加上了非终结符之后,单射性不会受到影响。因为虽然两棵相同结构但是拥有不同非终结符的句法树,转化成括号序列后是相同的。但是因为之前的定义中,还有一个变量 image.png 来表示这个非终结符了,所以还是能够唯一对应过去的。

限制

上面定义的序列化函数有两个缺点:一是非满射,二是不能处理一元产生式,下面介绍一下解决方法。

对于一元产生式: 有两种一元产生式,一种是中间结点,还有一种是叶子结点的label。

对于中间结点,直接将一条链上的label合并成一个新的label就行了,方法和之前文章介绍的一样。

而对于叶子结点的label,一个方法是在解码之前先用一个函数预测一下每个叶子结点的label,如果为空,说明没有label,否则就加上这个label,然后再进行正常的解码。另一个方法是将之前的序列化的二元组扩展为三元组 image.png ,其中第三个元素就是每个叶子结点的label。

非满射: 非满射会导致的问题就是产生出来的序列可能无法映射到某一棵句法树。根据文中所说,一共有两种无法映射的情况。

一种情况是对于多叉树,相邻两对叶子结点的LCA的label预测不同。比如在最上面一张图中,“the red toy”如果预测为两个不同的label,那么就会产生矛盾。这种情况很好解决,只要在解码的时候只取第一个label,忽略后一个就行了。

另一种情况是序列可能会产生一元产生式,如下图所示:

image.png

根据图中序列,会产生下面那棵句法树,一元结点X并没有预测到。但其实因为一元结点已经提前合并了,所以如果预测到了一元结点,直接删掉不要就行了。

序列标注


这里就不细讲了,用的就是基本的BiLSTM + CRF序列标注模型,具体可以看这篇论文:

End-to-end Sequence Labeling via Bi-directional LSTM-CNNs-CRFarxiv.org


实验


这篇论文最大的卖点不是效果,而是速度快,下面是和其他模型的速度对比,可以看出,速度的确快了不少,达到了大几百句每秒。但是还是存在序列标注模型的老毛病,效果并不好,虽然比之前的高了,但是还是只有90%的F1。

image.png

结论与展望


这篇论文定义了一种新的句法树序列化方法,将句法树序列化为长度减1的序列,其中每个值就是相邻两个单词的CA个数和LCA的label。

看完这篇,我仔细想了想,其实之前的chart-based方法也都可以转化成序列,只不过都得特别处理一下一元产生式和多叉树,比较麻烦。以后可以考虑在这方面有所突破,速度快还是很nice的。

相关文章
|
4月前
|
机器学习/深度学习 编解码 定位技术
【论文速递】ECCV2022 - 密集高斯过程的小样本语义分割
【论文速递】ECCV2022 - 密集高斯过程的小样本语义分割
|
4月前
|
机器学习/深度学习 自动驾驶 机器人
【论文速递】CVPR2022 - 泛化的小样本语义分割
【论文速递】CVPR2022 - 泛化的小样本语义分割
|
4月前
|
机器学习/深度学习 计算机视觉
【论文速递】ICCV2019 - 基于特征加权和增强的小样本分割
【论文速递】ICCV2019 - 基于特征加权和增强的小样本分割
19 0
|
4月前
|
机器学习/深度学习 计算机视觉
【论文速递】CVPR2022 - 学习 什么不能分割:小样本分割的新视角
【论文速递】CVPR2022 - 学习 什么不能分割:小样本分割的新视角
|
机器学习/深度学习
论文赏析[EMNLP18]用序列标注来进行成分句法分析(一)
本文定义了一种新的树的序列化方法,将树结构预测问题转化为了序列预测问题。该序列用相邻两个结点的公共祖先(CA)数量和最近公共祖先(LCA)的label来表示一棵树,并且证明了这个树到序列的映射是单射但不是满射的,但是提出了一系列方法来解决这个问题。
140 0
论文赏析[EMNLP18]用序列标注来进行成分句法分析(一)
|
机器学习/深度学习 自然语言处理 算法
论文赏析[COLING18]两种成分句法分析的局部特征模型(一)
论文地址:Two Local Models for Neural Constituent Parsing 代码地址:github 今天要介绍的论文来自COLING 2018,本文主要探讨了局部特征对成分句法分析到底有多大的影响,并同时提出了两种局部特征模型,在PTB上面取得了92.4的F1值。
244 0
论文赏析[COLING18]两种成分句法分析的局部特征模型(一)
|
机器学习/深度学习 算法
论文赏析[COLING18]两种成分句法分析的局部特征模型(二)
论文赏析[COLING18]两种成分句法分析的局部特征模型
117 0
论文赏析[COLING18]两种成分句法分析的局部特征模型(二)
|
机器学习/深度学习 自然语言处理
论文赏析[ACL18]直接到树:基于神经句法距离的成分句法分析(二)
今天要讲的这篇论文发表在ACL18上面,一句话概括,本文就是将句法树序列化,通过预测序列进行句法分析。
论文赏析[ACL18]直接到树:基于神经句法距离的成分句法分析(二)
|
自然语言处理 并行计算 算法
论文赏析[ACL18]直接到树:基于神经句法距离的成分句法分析(一)
今天要讲的这篇论文发表在ACL18上面,一句话概括,本文就是将句法树序列化,通过预测序列进行句法分析。
121 0
论文赏析[ACL18]直接到树:基于神经句法距离的成分句法分析(一)
|
机器学习/深度学习 自然语言处理
论文赏析[TACL18]隐式句法树模型真的能学到句子中有意义的结构吗?(二)
本文是一篇分析类论文,主要对近年来几种无监督句法分析模型(RL-SPINN和ST-Gumbel)进行了分析,得出了如下三个结论: 在句子分类任务上,只有一种模型效果好于传统的树结构模型。 这些模型随机性很大,初始化不同,结果也都差距很大。 这些模型产生的句法树的平均深度比PTB数据集的平均深度浅。
495 0
论文赏析[TACL18]隐式句法树模型真的能学到句子中有意义的结构吗?(二)