[发明专利]一种基于Seq2seq框架的关键词提取方法有效
| 申请号: | 201910313279.1 | 申请日: | 2019-04-18 |
| 公开(公告)号: | CN110119765B | 公开(公告)日: | 2021-04-06 |
| 发明(设计)人: | 孟利民;郑申文;蒋维;应颂翔;林梦嫚 | 申请(专利权)人: | 浙江工业大学 |
| 主分类号: | G06K9/62 | 分类号: | G06K9/62;G06F40/205;G06F40/289 |
| 代理公司: | 杭州天正专利事务所有限公司 33201 | 代理人: | 王兵;黄美娟 |
| 地址: | 310014 浙*** | 国省代码: | 浙江;33 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 seq2seq 框架 关键词 提取 方法 | ||
1.一种基于Seq2seq框架的关键词提取方法,包括如下步骤:
(1)收集司法领域的不同类别的裁判文书数据,并对不同类别的裁判文书数据进行预处理,得到训练数据;具体步骤如下:
(1.1)收集数据:收集司法领域的不同类别的裁判文书,有婚姻家庭类、交通事故类以及劳动纠纷类;
(1.2)数据初步预处理:由于数据文本质量对训练出的模型产生重大的影响,需对相似的文本去重,低质量文本过滤,较短的文本删除处理;
(1.3)关键词提取:由于采用的是基于Seq2seq框架进行关键词提取,故需要在人工干预的情况下,用相关的关键词提取算法对裁判文书进行关键词提取,并对提取的关键词进行复检,形成满足训练所需的文本关键词对;
(1.4)对文本进行分词:利用结巴分词对司法文本进行中文分词,并建立停用词典和自定义词典,提高分词质量;将分词过后的文本关键词对划分为三个部分,按照8:1:1的比例将其分为训练集样本A1、验证集样本A2以及测试集样本A3;
(1.5)统计词频并排序:统计文本内容和关键词中每个单词出现的频率,并对词频进行降序排序,生成词表;
(1.6)文本向量化:将词表中的词语转化为词向量word embedding的形式;其中词向量是根据步骤(1.5)得到的词表对其进行one-hot编码得到的矩阵M,利用word2vec训练词向量,构建|V|*d的向量矩阵,其中权值的矩阵用N表示,V代表词表的大小,d代表词向量的维度;最后得到每个词语的词向量:Q=M*N;
(2)采用Seq2seq框架创建序列模型,引入注意力机制,提取文本中关键词的特征,同时在解码端融入指针网络模型和Coverage机制来提高潜在关键词的注意力分布,并利用交叉熵损失函数度量神经网络的预测值,计算与实际值的差距,利用梯度下降法不断进行迭代优化,得到一个最佳的模型并保存;具体步骤如下:
(2.1)encoder-decoder框架:编码器-解码器的序列转换框架是一种应用于Sequenceto Sequence这一类序列转换问题的神经网络框架,其中编码器就是将输入的文本序列转化为语义向量,解码器就是将编码器转化出的语义向量再次转化成文本序列;假设输入文本序列[w0,w1,…,wn,EOS],将该输入序列用词向量进行表示得到[x0,x1,…,xn,EOS],其中EOS为句末标记;循环神经网络(RNN)作为基本的神经网络对输入序列和输出序列进行学习,在编码端,RNN通过不断地将上一次的输出作为当前时刻的输入,共享神经网络单元和参数,每一个时刻使用同一个网络单元,将长度不一的输入序列转化为固定维度的向量;RNN每一个时刻神经网络单元的计算公式如下所示:
h(t)=f(h(t-1),yt-1,c) (1)
其中h(t)为隐藏层的状态,h(t-1)为上一时刻隐藏层的状态,yt-1为上一时刻的输出作为当前时刻的输入,c为编码后的语义向量,f是一个非线性的激活函数,f可以是双曲正切函数tanh或者sigmoid函数,取值为0-1之间;
在解码端,由编码器最终输出的语义编码c和前一次生成的输出序列[y0,y1,…,yt-1]计算本次的输出yt;解码器需要经过一个输出层softmax,来计算解码时刻对应于词表中每个单词的概率;其表达式为:
P(yt|yt-1,yt-2,…,y1,c)=g(h(t),yt-1,c) (2)
对于整个输入编码和解码过程中,使用梯度优化算法以及最大似然条件概率为损失函数来进行模型的训练和优化;其表达式为:
其中θ为相应模型中的参数,xn为输入序列,yn为输出的序列;
(2.2)引入注意力机制:由步骤(2.1)中编码端得到最终的语义向量c,是作为编码和解码直接的唯一桥梁,当输入序列为较长的文本向量时,在编码解码时会造成数据特征丢失严重和细节信息缺失问题,故引入注意力机制Attention Mechanism;假设在预测当前i时刻的词语时,在注意力机制的作用下,不仅会关注在相对应的时刻下编码最终生成的语义向量c,还会关注原输入序列所有单词,并生成每个单词的上下文向量ci在相对应的时刻的概率分布;其词语权重表达式为:
eij=a(si-1,hj) (4)
其中si-1为解码器上一个隐藏层的状态,hj是源输入文本中第j个单词的语义编码;
所有词语权重计算出来之后,需要对其进行归一化处理,其表达式为:
最后对它们的结果进行求和传送给ci;其表达式如下:
其中Tx代表源输入文本的长度,hj是源输入文本中第j个单词的语义编码,aij代表在目标输出第i个词语时源输入文本中第j个单词的注意力分配系数,ci为上下文向量;
(2.3)融合解码器注意力的指针网络模型:由步骤(2.2)得到的结果,其提取的关键词局限于词表的规模,对于不在词表中且出现在原文本中词语,通常会被标记为unknownword,这些未登录词无法被正确解码;为了解决未登录词OOV的问题,故融合解码器注意力的指针网络模型,将解码端最后输出预测序列的概率,分为生成模式和拷贝模式,对OOV词采用拷贝模式;解码器注意力中包含了两个部分,第一个部分是词表,用one hot向量表示,第二部分是encoder的隐藏状态,即输入的句子,之所以用隐藏状态是因为里面包含有位置信息,这个对词语生成很重要;其公式表达为:
p(yt|ht,yt-1,ct,M)=p(yt,c|ht,yt-1,ct,M)+p(yt,g|ht,yt-1,ct,M) (7)
其中M是输入隐藏层状态的集合,ct是注意力权重,ht是输出的隐藏状态,g代表生成模式,c代表拷贝模式;生成模式还是拷贝模式是取决于概率大小来进行选择,加了一个简单的规则限制,如果yt在输入中没有出现,则p(yt,c|st,yt-1,ct,M)=0,会选择生成模式;如果yt在输入中有出现且词表中没有,则p(yt,g|st,yt-1,ct,M)=0,会选择拷贝模式;
(2.4)融合覆盖机制:由于模型的局限性,即使引入了注意力机制,也无法很好的关注到已生成的关键词,它会忘记之前的信息,会重复性的关注相同的部分,从而提取的关键词会有重复现象;对于较长的文本序列,这一现象会更加严重;为了解决关键词提取重复性问题,故融合覆盖机制,对注意力机制部分做了一些改动;其表达式如下:
其中c不是编码端最终输出的语义向量,是一个新的参数:
其中ct是一个长度为输入长度的向量,at是注意力权重;加这个参数是为了让注意力机制知道其之前生成词的信息,如果之前生成过的单词那么需要对其进行抑制,主要通过loss函数加惩罚项进行抑制实现;其表达式为:
如果该词之前出现过,则就会变得很大,为了减小loss,需要变小,因为loss是取两者间较小值,越小即这个词的位置被关注的概率就越小;
(2.5)在训练过程中,利用交叉熵损失函数度量神经网络的预测值,计算与实际值的差距,利用梯度下降法不断的优化函数,不断的进行迭代优化,得到一个最佳的模型MA1并保存;
(3)在模型测试阶段,采用集束搜索算法Beam Search生成一个最大概率的关键词序列作为关键词结果集;具体步骤如下:
(3.1)设置解码测试模式,然后将会加载步骤(2.5)训练得到的最佳模型MA1,使用测试集作为测试数据并开始进行测试;
(3.2)利用Beam Search算法,在每一个时间步都取出最优的前K个词语;
(3.3)生成第一个词的时候,经过softmax层计算词表中各个词语的概率后,选择概率最高的前K个单词,则当前新序列为这K个单词组成的序列;
(3.4)不断循环迭代,直至已产生结束符号序列已达到K个或者达到设定的时间步则停止循环,取概率最高的序列最为最终的关键词序列,并将生成的关键词序列写入TXT文件,否则回到步骤(3.3);
(4)采用准确率、召回率以及F1值对提取好的关键词进行评估;准确率计算公式如下:
召回率以及F1的计算公式如下:
其中,N为文档数量,Pi为文档i所提取的关键词,Ti是由步骤(1.3)得到的关键词;F1值为准确率和召回率评估指标的调和值,用于综合反应整体指标。
2.根据权利要求1所述的一种基于Seq2seq框架的关键词提取方法,其特征在于:步骤(2.1)中的输入序列[x0,x1,…,xn]作为一个batch,但输入的文本肯定会有长短不一,又要求编码成相同的文本长度,则将每个batch中的最大序列max_seq作为每一批次的固定文本长度,不足的文本则在样本后面用PAD进行标记,batch取值为L。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江工业大学,未经浙江工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910313279.1/1.html,转载请声明来源钻瓜专利网。





