
1.本发明涉及一种基于子主题建模的关键词生成方法,该方法可用于互联网新闻内容等自动生成关键词,属于互联网和人工智能技术领域。
背景技术:2.随着互联网技术的飞速发展,人们能够快捷的查找和阅读各大网络媒体网站发布的新闻。相较于传统的新闻报刊需要订阅等待和手持纸质文档的不便,人们更习惯于通过手机等移动设备查阅时事新闻。然而,随之而来的网络新闻数据量呈指数型增长,也给人们从中甄别有价值和满足需求的信息带来不便。因此,如何利用人工智能技术对新闻内容进行压缩提炼,能够帮助读者在短时间内了解新闻内容大意,再决定是否继续阅读,从而能节约读者的时间成本。
3.根据短语是否在原文中存在完全匹配的单词序列,关键词可分为存在关键词和缺失关键词。与此相对应,获取文本关键词的方法被分为抽取式方法和生成式方法。抽取式方法首先从输入文档中截取单词序列,再通过打分或分类等机制判断是否为关键词。通过这种方法只能得到已存在关键词,然而有研究人员在相关工作中指出,缺失关键词在总关键词中占比接近一半。因此,需要更为先进的关键词方法,用于预测新闻内容的缺失关键词。随着自然语言处理技术的进步,以及基于序列到序列(sequence-to-sequence,seq2seq)框架在文本生成任务中应用的启发,基于该框架的生成式关键词方法在近些年得到了越来越多的关注。
4.基于seq2seq的关键词生成模型通常采用编码器-解码器的结构。seq2seq模型首先通过编码器将输入的文本序列,映射为一个能够表征文本语义的中间向量,然后通过解码器将语义向量解码并逐字生成目标输出序列。然而,标准的seq2seq模型通常采用“一对一”生成模式,在解决需要“一对多”生成的关键词任务时存在局限性,容易导致生成的关键词多样性欠缺。此外,确定性建模方法,也会影响模型的多样性表达能力。
5.为此,本发明在seq2seq模型的基础上,尝试将完整的新闻文本语义信息进行分解,提出一种子主题感知机制,采用基于聚类的方法为输出文本产生若干子主题,并以子主题为解码单位生成目标关键词。此外,为了提高模型对变化性信息的建模能力,引入子主题潜在变量网络进行采样实现具体关键词的生成。通过子主题建模和采样方式提高生成关键词的多样性。
技术实现要素:6.为了解决现有技术中存在的问题与不足,本发明提出一种基于子主题建模的关键词生成方法,该方法利用子主题感知机制为输入文本提供可选择的子主题,从而提高模型对“文本-关键词”的一对多关系建模的能力,在此基础上通过子主题潜在变量网络生成关键词。
7.为了实现上述目的,本发明的技术方案如下:一种基于子主题建模的关键词生成
方法,包括如下步骤:
8.步骤1:新闻文本数据采集。通过爬虫工具采集多个新闻平台新闻文本,积累样本数据集,数据集中的一个样本包括新闻文本和其对应的参考关键词;
9.步骤2:数据预处理。对数据集中每一个样本进行预处理,并构造二元组数据,一个二元组数据包括文本和标准关键词;
10.步骤3:模型训练。在输入层对文本进行分句,再将文本和关键词进行分词处理,并利用word2vec进行向量初始化,生成词嵌入向量。在编码层,首先利用bi-gru编码器对文本句子和关键词进行编码,获得单词上下文语义信息,然后利用池化得到句子的向量表示和关键词的表示,接着利用多头自注意力机制获得句子在整个文本语境下的特征向量。在子主题发现层,获得文本的若干子主题,并通过采样获得子主题的向量表示。最后在关键词生成层,设计了一种子主题感知的多解码器组,利用子主题为解码单元的模式,并行生成目标关键词集合。最后利用训练损失函数训练所述模型;
11.步骤4:模型测试与关键词生成,根据训练所得到的最佳模型,对待预测关键词的文本进行关键词的生成。先对测试文本进行预处理,然后根据步骤2构建模型的输入形式,最后根据步骤3中训练好的关键词生成模型,生成测试文本的关键词。并对生成的关键词与参考的关键词进行比较,利用准确性f1值和多样性评价指标进行评价,检验生成关键词的质量。
12.一种基于子主题建模的关键词生成方法,所述方法文本输入层、编码层、子主题感知层、关键词生成层。相对于现有技术,本发明的优点如下:
13.(1)本发明采用的基于子主题建模的关键词生成技术,构建子主题发现机制,对完整文本语义进行分解,显示的建模“文本-关键词”的一对多映射,通过多解码器聚焦不同子主题,实现关键词在多样性方面的提高;
14.(2)本发明采用基于子主题潜在空间采样子主题特征表示,提高模型对关键词因对自然语言中措辞变化的建模能力,为输入的新闻文本提供更加多样化的关键词预测结果。
附图说明
15.图1为本发明实施例的方法流程图。
16.图2为本发明实施例的整体模型图。
具体实施方式
17.为了加深对本发明的认识和理解,下面结合具体实施例,进一步阐明本发明。
18.实施例1:一种基于子主题建模的关键词生成方法。该方法首先对互联网中的新闻文本进行采集和预处理;接着,采用一个双层编码方法,对输入文本中单词进行向量化表示,并利用多头注意力机制获得在全文语境下的句子特征表示;然后,通过子主题发现层产生输入文本的子主题;随后,子主题通过采样网络提取用于解码的子主题特征表示;最后,为了提高关键词生成过程对子主题的感知,利用子主题感知的多解码器组生成目标关键词。具体模型参见图2,详细实施步骤如下:
19.步骤1,新闻文本数据采集。为了保证数据的多样性与普适性,本实施首先从新闻
媒体平台中抓取大量的文本样本,并根据人工标注产生标准关键词。新闻文本和对应的标准关键词共同构成样本数据集d。标准关键词的生成规则主要是利用“众包”技术对新闻文本进行标注,形成标准关键词。最后将所有得到的数据按照6:2:2进行分割形成训练集、验证集和测试集。
20.步骤2,数据预处理。为了能保证数据更适用于所设计的模型训练。首先对数据进行数据清洗,保留包含新闻文本以及参考关键词的数据并过滤重复数据,利用nltk库对样本文本进行分句处理,通过jieba库实现分词处理,以便后续模型对数据进行向量化表示。最后,将数据集分别处理为二元组的形式,其中多个关键词通过分号连接,以便于后续步骤的应用。
21.步骤3,模型训练。利用步骤2处理后的数据集对基于自主体建模的关键词生成模型进行训练,该步骤的实施可以分为以下子步骤:
22.子步骤3-1,构建输入层。首先选择训练集中出现频率靠前的50k单词构建词汇表,若该词在word2vec中存在,则选择word2vec中向量作为其训练初始化向量,否则将其向量随机初始化。然后将输入文本单词序列根据词汇表映射为索引序列,并转化为词向量表示。
23.子步骤3-2,构建文本编码层。本实施采用一个双层bi-gru循环神经网络编码器分别对原文词向量序列e
si
和参考词的词向量序列e
yj
进行语义编码提取。计算上下文语义表示的公式如(1)和(2):
[0024][0025][0026]
其中,e
si
表示原文第i个句子词向量矩阵,e
yj
表示第j个短语的词向量矩阵,s表示输入文档,y表示关键词,mean表示平均池化。
[0027]
采用多层transformer编码器对句子向量进行编码,定义编码器输入为并定义m为句子数目。transformer对向量更新如公式(3):
[0028][0029]
其中,表示第i层transformer的输出结果。
[0030]
子步骤3-3,构建子主题发现层。基于k-means聚类算法为输入文档构建k个子主题。具体实施如下:
[0031]
5)随机选择k个句子表示初始的簇中心;
[0032]
6)计算句子到各个中心的距离,并将其分配给距离最小的簇。其中距离为两个向量表示之间的余弦距离;
[0033]
7)根据簇中所有句子的平均值计算一个新的中心;
[0034]
8)重复步骤2和3,直到中心向量不再更新或达到最大迭代次数。
[0035]
通过上述步骤,可以得到文本的子主题集合。可形式化表示公式(4):
[0036]
{e1,e2,
…
,ek}=k
–
means(hs)
ꢀꢀ
(4)
[0037]
其中,ei为m维二元向量,m为文本句子的数目。
[0038]
子步骤3-4,构建关键词解码层。主要通过设计一种聚焦不同子主题的多解码器组并行生成关键词。解码器组中每个解码器采用结合复制机制的单向gru实现。具体实施如
下:
[0039]
首先,计算第i个子主题的向量表示的公式(5):
[0040]ci
=mean(hs,ei)
ꢀꢀ
(5)
[0041]
在训练时需通过距离函数为每个子主题分配目标关键词,如公式(6)所示:
[0042][0043]
其中,表示第j个关键词的向量表示,在得到和所有短语的距离之后,选在距离最短的作为解码时的目标。
[0044]
由于解码器组中各个解码器生成过程相同,后续将具体描述其中一个解码器的工作过程。假设第a个子主题分配的关键词序号也为a。
[0045]
假设潜变量服从多元高斯分布,并通过公式(7)和公式(8)计算高斯分布参数:
[0046][0047][0048]
通过重参技巧采样潜变量z,训练阶段测试时
[0049]
在解码时间步t时,利用公式(9)输入前一单词u
t-1
和状态s
t-1
,得到当前隐藏状态。公式(10)表示解码器的初始化。
[0050]st
=gru(u
t-1
,s
t-1
)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(9)
[0051]
s0=z
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(10)
[0052]
之后,基于注意力机制,利用公式(11)计算输入文本中每个单词的注意力权重,并通过公式(12)加权求和得到当前上下文表示向量:
[0053]
α
t
=attention(hs,s
t
)
ꢀꢀꢀꢀꢀꢀꢀꢀ
(11)
[0054][0055]
其中,hs为原文单词特征向量构成的特征矩阵。
[0056]
然后,通过公式(13)得到单词在词表上的分布:
[0057]
pvocab=generation(s
t
,c
t
)
ꢀꢀꢀꢀꢀꢀꢀꢀ
(13)
[0058]
在复制机制中,可以将单词的注意力权重视为当前时刻,生成的单词在源文本中的分布。
[0059]
最终,时间步t时,预测单词的最后分布如公式(14)和公式(15)所示:
[0060]
p
final
=(1-λ
t
)
·
p
vocab
+λ
t
·
p
copy
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(14)
[0061]
λ
t
=copyrate(s
t
,c
t
)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(15)
[0062]
其中p
copy
=α
t
,λ
t
表示从原文复制单词的概率。
[0063]
子步骤3-5,联合训练损失。本实例采用随机初始化的方式对所有的参数进行初始化,采用adam优化器进行梯度反向传播更新模型参数,初始学习率设置为0.01,并使用最大梯度范数为5的梯度进行剪切。生成的关键词长度控制在10个单词以内。当训练损失不再下降或训练轮数超过20轮,模型训练结束,并保存在验证集上表现最好的模型。
[0064]
步骤4,模型测试与关键词生成。根据步骤3所得到的最佳验证模型,对待预测的新
闻文本数据集进行关键词生成。首先对数据进行步骤2的数据处理,并构建模型的输入形式,输入训练好的模型中,从而生成测试文本的关键词,并对生成的关键词与参考关键词进行f1和重复率的计算,检验生成关键词的质量。具体的计算公式如式(16)-(19)所示:
[0065][0066][0067][0068][0069]
其中,@k表示选择模型生成的前k个关键词和参考关键词集合比较,p表示精准率precision,r表示召回率recall。
[0070]
基于相同的发明构思,本发明所述的一种基于自主体建模的关键词生成方法,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,该计算机程序被加载至处理器时实现上述的用于关键词生成的基于子主题建模的生成方法。
[0071]
本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的原理,应理解实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本技术权利要求所限定的范围。