一种基于递归神经网络的隐式篇章关系分析方法与流程

文档序号:12887235阅读:374来源:国知局

本发明涉及一种隐式篇章关系分析方法,特别涉及一种基于递归神经网络的隐式篇章关系分析方法,属于自然语言处理应用技术领域。



背景技术:

作为自然语言处理应用技术领域中的一项重要任务,篇章关系分析,尤其是隐式篇章关系分析,一直为学者们所不懈研究着,并在统计机器翻译、信息抽取、情感分析等领域发挥着重要的作用。随着自然语言的语义分析逐渐成为学术和应用的主流,针对一篇文章,如何高效正确地理解其结构与内容,引起了越来越多研究人员的重视。如今又恰逢大数据时代,海量且无结构的信息层出不穷,将这些数据应用在隐式篇章关系分析上,能对现有的结果有较大的提升。然而,之前很多基于特征工程的隐式篇章关系分析方法存在普遍的数据稀疏性问题,而普通的深度学习方法,虽然应用到深度语义表示,但是并没有考虑到句子本身的连贯性顺序和句子内部的句法结构,因此,需要一种基于递归神经网络的方法,能够结合深度语义表示和句法结构树,训练出一个高效的隐式篇章关系分析模型,这是一项既有学术意义又有实用价值的研究课题。

隐式篇章关系分析,顾名思义,旨在篇章级别对没有篇章连接词连接的句际关系进行识别与归类。由于篇章连接词的缺失,整个隐式篇章关系的识别与分类过程,便从单个篇章连接词的语义分析转变为篇章论元结构的语义分析。目前,关于隐式篇章关系分析方面的研究并不充分,仍处于探索阶段;另外,没有篇章连接词这一特征的帮助,也使得隐式篇章关系分析的研究更加难以深入。主流的隐式篇章关系分析方法着眼于用特征或浅层语义表征隐式篇章关系论元对,针对句内与句际的深度语义挖掘和深度句法结构鲜有尝试。



技术实现要素:

本发明的目的是为解决以往在隐式篇章关系分析中存在的下述问题:1)针对特征工程的方法无法有效利用深度语义信息以及数据稀疏的问题;2)针对普通神经网络的方法没有考虑句子原有连贯性的问题;3)针对普通的深度学习方法没有考虑句子原有的句法结构信息的问题;4)针对单词本身存在的一词多义问题。本发明提出使用词的分布式表示解决稀疏性问题,使用双向lstm网络解决词的多义性问题,使用递归神经网络融合句法结构信息,从而在理解深度语义的基础上进行隐式篇章分析。

为实现上述目的,本发明所采用的技术方案如下:

本发明技术方案的思想是:首先,根据大规模语料库,训练表示单词语义的词向量;其次,根据pdtb2.0标注语料,训练bi-lstm模型,提取每个lstm模型中的隐层变量并进行合成,用得到的向量表示每个单词的语义以获取该单词所在的上下文信息,从而消除歧义性;再次,根据pdtb2.0人工标注的句法树,递归地合成每个论元,合成函数采用神经张量法,在句法树的根节点得到对于每个论元的向量表示;最后,将两个向量拼接后输入多层感知机进行分类,使用随机梯度下降法拟合隐式篇章关系类别标签,找到使性能达到最优的模型参数完成隐式篇章关系的分析。

本发明的具体技术方案如下:

一种基于层次深度语义的隐式篇章关系分析方法,该方法包括以下步骤:

步骤一、语料预处理:统计pttb2.0中每个单词出现的频率,保留出现频率最高的20000个单词,将其他单词标记为<unk>,将句法树中标注的词性进行删除,并将其二叉化;

步骤二、词的embedding表示:使用大规模语料库训练word2vec,将论元中每个单词映射为向量空间的低维向量,从而表示每个单词的语义;

步骤三、构建双向lstm层:对于每个论元,分别按从头到尾和从尾到头的顺序构建lstm模型,将两个模型的隐层向量拼接后表示每个单词,作为下一层的输入;

(1)对于训练语料中的每个论元,即标注有篇章关系类别的句子,首先用步骤二中训练的词向量对其进行编码,即把每个单词映射为维度为50的向量;

(2)对于每个论元,分别构建前向和后向的lstm网络,lstm过程的合成函数如下:

ht=ot×tanh(ct),(3)

其中,xt是第t个位置的单词的向量表示,it,ft,ot分别表示输入门、记忆门和输出门,ta,b表示在网络参数a和b之下的非线性变换,ct和ct-1分别表示当前时刻和上一时刻的状态变量,为候选状态变量,ht和ht-1分别表示当前时刻和上一时刻的隐藏变量。经过足够次数的迭代以后,ht中将包含单词xt所所在的上文信息。本模型中,使用两个方向的lstm模型对论元进行编码,所得隐变量分别为我们将其拼接作为第t个单词的向量表示:

步骤四、构建递归神经网络:按照步骤一处理过的句法树,递归地合成每个单词,由递归神经网络的输出得到每个论元的向量表示,将两个论元的向量拼接,作为下一层的输入;

递归神经网络构建过程为:

(1)获取句法树:我们使用pdtb2.0所标注的成分句法树,首先将其二叉化,即保证树中每个节点最多只有两个子节点,然后去掉词性,最终得到由左右括号和单词所组成的句法序列,比如((thecat)(satdown));

(2)确定合成顺序:对于第一步所得句法序列,我们从左至右进行遍历,读取到左括号’(’时,不采取任何操作,读取到右括号’)’时,执行reduce操作,读取到单词时,执行shift操作。现将shift和reduce操作定义如下:

shift:对于读取到的单词w,将其在步骤一中所得的向量表示ht压入堆栈s。

reduce:从堆栈s中弹出两个元素xi和xj,将xi和xj按照(3)中所述合成函数进行合成,并将合成结果压入堆栈s;

(3)确定合成函数:对于从堆栈s中弹出的元素xi和xj,按照如下方式合成:

其中,v∈r2d×2d×d是合成张量,w∈rd×2d是合成矩阵,b∈rd是和合成偏置,向量维度d=100,f是relu激活函数,产生的新向量y将会重新被压入堆栈s作为新的合成函数的输入。

步骤五、构建多层感知机分类器:将步骤四中的得到的向量输入多层感知机中,在全连接的网络之后接入softmax函数,最终得到分类预判结果,利用语料库真实标注结果与预判结果计算交叉熵作为损失函数,采用随机梯度下降法更新模型中的参数,迭代一定次数后达到收敛。

步骤六、进行篇章关系识别:将待识别论元对作为训练后神经网络的输入,利用多层感知机的输出得到每个类别上的分类概率,选取其中概率最大值对应的篇章关系作为最终的篇章关系识别结果。

有益效果

本发明对比现有技术,通过采用双向lstm和递归神经网络,将深度语义信息和句子本身的句法结构信息相结合,同时根据上下文内容解决了词的多义性问题,在隐式篇章关系类别标签的指导下提升分析精度的同时,实现了各层次语义向量的互相优化,弥补了基于特征选取的机器学习方法导致的错判,能够有效地利用未标注语料及不同层次语义信息进行分析,使用户能够更快速而准确地获得隐式篇章关系的分析结果。

附图说明

图1为本发明方法的系统架构图。

具体实施方式

下面结合附图和实施例,对本发明的具体实施方式作进一步详细说明。

图1为本发明方法的系统架构图。本实施例首先介绍bi-lstm的构建过程,然后介绍基于句法树递归神经网络的合成过程,最后介绍整个模型的训练方法。

根据步骤一进行语料预处理,实现步骤如下:

(1)统计pdtb2.0语料中每个单词的出现频数,并按照频数排序,取频数最高的前20000个单词存储为词典,对于其他单词统一标记为<unk>;

(2)对于pdtb2.0语料标注的句法树,使用stanfordparser中的binarization方法进行二叉化,之后删除其中的词性标注作为后续输入。

根据步骤二进行词的embedding表示,实现步骤如下:

(1)获取训练语料:爬虫获取giga新闻语料,在每一句最后加入句子结尾标记<end>,作为后续输入;

(2)使用word2vec工具训练词向量,选择cbow模型,输出维度为50,学习率设置为1e-3,窗口大小设置为5,训练之后得到词向量文件。

根据步骤三,构建双向lstm层,实现步骤如下:

(1)对于训练语料中的每个论元,即标注有篇章关系类别的句子,首先用步骤二中训练的词向量对其进行编码,即把每个单词映射为维度为50的向量;

(2)对于每个论元,分别构建前向和后向的lstm网络,lstm过程的合成函数如下:

ht=ot×tanh(ct),(3)

其中,xt是第t个位置的单词的向量表示,it,ft,ot分别表示输入门、记忆门和输出门,ta,b表示在网络参数a和b之下的非线性变换,ct和ct-1分别表示当前时刻和上一时刻的状态变量,为候选状态变量,ht和ht-1分别表示当前时刻和上一时刻的隐藏变量。经过足够次数的迭代以后,ht中将包含单词xt所所在的上文信息。本模型中,使用两个方向的lstm模型对论元进行编码,所得隐变量分别为我们将其拼接作为第t个单词的向量表示:

根据步骤四构建递归神经网络,实现步骤如下:

(1)获取句法树:我们使用pdtb2.0所标注的成分句法树,首先将其二叉化,即保证树中每个节点最多只有两个子节点,然后去掉词性,最终得到由左右括号和单词所组成的句法序列,比如((thecat)(satdown));

(2)确定合成顺序:对于第一步所得句法序列,我们从左至右进行遍历,读取到左括号’(’时,不采取任何操作,读取到右括号’)’时,执行reduce操作,读取到单词时,执行shift操作。现将shift和reduce操作定义如下:

shift:对于读取到的单词w,将其在步骤一中所得的向量表示ht压入堆栈s。

reduce:从堆栈s中弹出两个元素xi和xj,将xi和xj按照(3)中所述合成函数进行合成,并将合成结果压入堆栈s;

(3)确定合成函数:对于从堆栈s中弹出的元素xi和xj,按照如下方式合成:

其中,v∈r2d×2d×d是合成张量,w∈rd×2d是合成矩阵,b∈rd是和合

成偏置,向量维度d=100,f是relu激活函数,产生的新向量y将会重新

被压入堆栈s作为新的合成函数的输入。

根据步骤五构建多层感知机分类器,其实现步骤如下:

(1)对于待分类的论元对(arg1,arg2),分别使用步骤二所述合成方式进行合成,最后得到包含论元语义信息和句法信息的向量(x1,x2),将两个向量拼接后输入多层感知机进行分类,得到预测的类别概率

(2)对于语料中标注的关系类别,编码成一维one-hot的表示l,然后计算损失函数:

其中x1,x2表示论元1和论元2,c表示要分类的类别数,和l分别表示预测标签和真实标签,lj和分别表示在第j个类别下的真实标签值和预测概率值。

(3)对于步骤五(2)中所得损失函数,使用随机梯度下降法的一个变种adagrad更新模型中的参数,迭代至收敛,模型构建完成。

根据步骤六进行篇章关系识别,其实现步骤如下:

(1)对于每对待识别的论元,输入到上述步骤所述网络结构,得到最后多层感知机的输出

(2)将作为本次篇章关系的识别结果,即为所求。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1