[发明专利]一种基于多任务学习的标题生成方法在审
申请号: | 202011258676.2 | 申请日: | 2020-11-11 |
公开(公告)号: | CN112417149A | 公开(公告)日: | 2021-02-26 |
发明(设计)人: | 刘博;胡志超 | 申请(专利权)人: | 北京工业大学 |
主分类号: | G06F16/35 | 分类号: | G06F16/35;G06F40/216;G06F40/242;G06F40/284;G06N3/04;G06N3/08 |
代理公司: | 北京思海天达知识产权代理有限公司 11203 | 代理人: | 刘萍 |
地址: | 100124 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 任务 学习 标题 生成 方法 | ||
1.一种基于多任务学习的标题生成方法,其特征在于,包括以下步骤:
步骤1、获取需要标题生成的源文本数据,进行文本数据处理,得到预处理结果;
步骤2、对预处理后的文本进行词典构建,词和id唯一对应,自定义词向量的维度,对词向量进行初始化;
步骤3、将文章的输入向量输入基于BiLSTM的Self-Encoder端进行特征提取,并且通过关键词分类器获得文章的对应关键词权重序列,同时对分类器进行训练;
步骤4、提取文章中的关键词,并将关键词向量输入到基于BiLSTM的Keywords-Encoder端进行特征提取;
步骤5、将步骤3和步骤4生成的特征向量送入基于LSTM的Decoder端进行解码,生成文章的标题。
2.根据权利要求1所述的方法,其特征在于,步骤3具体包括以下步骤:
步骤3.1、统计文章和标题的长度分布,选取文章中长度的最大值为m,标题长度最大值为n;
步骤3.2、将文章输入模型的Embedding层获取词向量,维度为m,本发明中m取值为300;
步骤3.3、将获取的词向量输入到基于BiLSTM的Self-Encoder端进行特征提取
步骤3.4、通过关键词分类器对每个输入词向量判断是否为关键词,生成关键词权重序列,并且对该多任务学习模块进行训练。
3.根据权利要求1所述的方法,其特征在于,步骤4具体包括以下步骤:
步骤4.1、利用TextRank算法对文章中词语进行权重计算,生成关键词权重序列
步骤4.2、将步骤3和步骤4计算出的关键词权重序列进行线性组合,得到最终的关键词权重序列并选取前k个词作为关键词;
步骤4.3、将关键词向量输入到基于BiLSTM的Keywords-Encoder端进行特征提取。
4.根据权利要求1所述的方法,其特征在于,步骤5具体包括以下步骤:
步骤5.1、步骤3和步骤4生成的特征向量通过全连接网络进行维度转换,使其符合Decoder端输入标准;
步骤5.2、通过Decoder端的Dual-attention机制,结果步骤3和步骤4中生成的特征向量,分别计算出注意力权重,作用于Decoder端输入的queries矩阵分别生成文章语义向量和关键词语义向量;再将二者进行特征融合
步骤5.3、根据Decoder解码生成的语义向量,经过Softmax层之后生成对应词汇。
5.根据权利要求1所述的方法,其特征在于,
步骤1,获取用于训练网络模型的源文本数据,进行文本数据预处理,去除特殊符号,去停用词,去除频率低于百分之一的低频词得到预处理结果,之后构建训练所用到的字典;字典中key为词,value为词的id;
步骤2,通过Embedding层对词向量进行初始化,根据字典中的id选择每个词对应的词向量;
步骤3,根据输入的原文本内容X=[x1,x2,…,xT]在构造的词典里索引获得对应的词向量,然后按照顺序输入基于BiLSTM的Self-Encoder端进行特征提取,并且通过关键词分类器获得文章的对应关键词权重序列We(Vi)=(p1,p2,…,pn),其中p1,p2,…,pn分别代表句子序列第n个词为关键词的概率,同时对分类器进行训练;
步骤3.1,输入为l*300的文本,其中句子长度为l,词向量维度为300;
步骤3.2,输入到基于BiLSTM的Self-Encoder,生成隐状态向量表达序列hi;计算公式如下:
E[xi]为第i个输入词的embedding向量xi;最终的隐向量hi表示为两个方向的向量拼接:
步骤3.3,在隐状态向量
表示hi上添加一层Softmax分类器作为关键词分类器,即多任务学习模块,用来生成文章的对应关键词权重序列We(Vi)=(p1,p2,…,pn),并且对该分类器进行训练;
步骤4,提取文章关键字,输入到Keywords-Encoder端;
步骤4.1,利用TextRank算法对摘要中词语的权重进行计算,词语权重计算方法为:
其中,Vi表示第i个词;wij表示点Vi到点Vi链接的权重;Out(Vj)表示点Vi指向所有点的集合;In(Vj)表示指向点Vj的所有点集合;W(Vi)表示第i个词的权重;d是阻尼因数,表示某一特定点指向其他任意点的概率,取值范围为0到1之间;最终得到关键词权重序列Wt(Vi)=(p1,p2,…,pi);其中pi表示句子序列第i个词计算出的权重即W(Vi);
步骤4.2,将步骤3计算出的关键词权重序列We(Vi)以及步骤4.1计算出的Wt(Vi)进行线性组合得到最终关键词权重序列W(Vi),计算公式如下:
W(Vi)=wt*Wt(Vi)+we*We(Vi) (7)
其中wt,we为可训练的参数,初始值均为0.5;
步骤4.3,通过对文章-标题数据集中的标题以及其标题中的关键字个数进行统计,得到关键词个数平均为8个,故选择关键词权重序列中的前8个作为关键词;
步骤4.4,将8*300的关键词向量K=[k1,k2,…,k8]作为输入输入到Keywords-Encoder端进行特征提取;
步骤5、将步骤3和步骤4分别生成的特征向量通过拼接进行特征融合,输入模型的Decoder端进行解码生成标题序列;
步骤6.1,待网络模型收敛以后,保存训练好的模型,采用损失函数为交叉熵损失函数(Cross Entropy Loss):
其中y(i)为真实值,为预测值;
步骤6.2,将用于标题生成的原文本Xt=[x1,x2,…,xT]输入到训练好的模型中,并且生成对应的论文标题Yt=[y1,y2,…,yM],其中M为标题的长度。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京工业大学,未经北京工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011258676.2/1.html,转载请声明来源钻瓜专利网。