APP下载

基于卷积神经网络和K-means的中文新闻事件检测与主题提取

2020-04-08张秀华云红艳

科学技术与工程 2020年3期

张秀华, 云红艳*, 贺 英, 胡 欢

(1.青岛大学计算机科学技术学院 青岛 266071;2.青岛大学电子信息学院,青岛 266071)

伴随着大数据时代的互联网发展,人们被大量的新闻信息环绕并且来源广泛,比如报纸、网络等。其中新闻最常见的载体是文本,文本是最容易获取有价值信息的方式。由于,不同来源产生的新闻信息方式各种各样,新闻文本的格式和蕴含的信息也往往杂乱无章,同时,产生新闻信息的数量也极其庞大,完全依赖人工实现中文新闻事件的检测是几乎不可能的。

中文新闻事件检测与主题提取旨在从非结构化新闻数据流中,对中文新闻事件进行检测对已知事件给出事件主题。对于检测为未知中文新闻事件的文本进行后续处理,提取未知中文新闻事件的主题词,最终实现将未知中文新闻事件与主题词结合完成中文新闻事件检测与主题提取。

传统的中文新闻事件检测方法主要有K-means聚类[1-2]、凝聚类[3]、及在线增量聚类[4],Single-pass聚类等[5]方法。张斌等[6]提出基于时间片的Single-pass增量聚类方法用于事件检测。龙志禕等[7]提出基于词聚类的方法检测新事件,本质是利用词之间的相似性检测新事件。聚类方法在中文新闻事件检测过程为,当有新的新闻文本文件到来时,会计算新文本事件与已有事件的相似程度,并为相似度设定一个阈值,当新文本事件与已有事件的相似度阈值小于给定的阈值,会将其判定为新事件,否则为已有事件。对于相似度较高的众多的中文新闻事件,采用聚类算法进行检测时,会带来新闻事件混淆、新事件识别精度不高或者新闻事件识别错误的问题。

近年来,卷积神经网络在图像领域取得了一系列的成果[8],表现出卷积神经网络强大的特征学习与分类能力。基于卷积神经网络的良好的表现,针对聚类在新事件检测方面的问题,提出卷积神经网络构建中文新闻事件检测模型,充分发挥卷积神经网络的特征提取优势。在中文新闻事件主题抽取中,提出TF-IDF(term frequency/inverse document frequency)+K-means的方法提取中文新闻事件的主题词,最终完成中文新闻事件的检测与主题的提取。

1 文本预处理与表示方法

1.1 文本预处理

在中文新闻事件检测与主题提取前,对获得的文本进行文本预处理的工作。文本预处理是后续工作的基础,模型的性能以及结果都依赖于文本预处理的结果,可以说良好的文本预处理结果是中文新闻事件检测与主题提取的关键一步。文本预处理包括规范文本,中文分词,去停用词等。对文本数据的规范包括统一编码格式,规范文本数据的内容,去除无效的标记例如HTML,XML标记,图片信息等。规范文本之后采用结巴分词对中文新闻文本进行分词,然后去除如常见的“的”、“在”、“和”、“接着”等中文停用词以减少噪声干扰。

1.2 文本向量化表示

经过前期的预处理,新闻文本格式已经符合要求。但是要放入模型进行训练还要转换成计算机能够识别的数字格式的方法。传统的文本表示方法有词袋模型和One-Hot编码(独热编码)。上述传统文本向量化表示方法维度高,语义稀疏,忽略了文本中的上下文联系。

采用Google开源的word2vec[9]词向量生成工具训练新闻文本的词向量模型。word2vec[10]本质上是一个三层神经网络,包括输入层,隐藏层,输出层,作用就是利用深度学习的思想将自然语言中的字词转为计算机可以理解的K维空间稠密向量。word2vec主要分为CBOW(continuous bag of words)和Skip-gram两种模式。CBOW是从原始语句推测目标字词;而Skip-gram是从目标字词推测原始语句。采用word2vec中的Skip-gram[11]模式训练词向量。Skip-gram的结构如图1所示。

图1 Skip-gram结构

Skip-gram模型由输入层、隐藏层、输出层组成,根据当前词预测上下文的方法。Skip-gram模型根据负采样的思想进行设计,其在神经网络的目标优化函数如式(1)所示:

(1)

式(1)中:L为某一时刻损失函数值;c表示新闻文本语料;context(w)表示词w的上下文,即w周围词的集合。训练的词向量维度为50维,窗口大小为1,即考虑每个词的上下文关系。

2 中文新闻事件检测模型

中文新闻事件检测模型采用卷积神经网络,利用卷积神经网络实现对文本特征的提取并实现对中文新闻事件的检测。卷积神经网络在图像领域获得了成功,这也启发了卷积神经网络在文本研究方面的应用。卷积神经网络在文本领域的应用由Kim[12]提出,其结构如图2所示。

图2 TextCNN结构

卷积神经网络在中文新闻事件检测中的主要思想是对一句话的k个词滑动窗口的每个实例应用一个非线性函数。该函数将k个词的窗口转换成一个是数值。使用多个这样的滤波器,得到l维向量捕获窗口内词的重要属性。然后,使用一个池化操作,将不同窗口的向量通过l维中的每一维取最大值或平均值的方式,组合成一个l维向量。池化操作目的在于聚焦句子中的最重要的特征,而忽略它们的位置。

2.1 一维卷积

与图像领域不同的是,在中文新闻事件检测中的卷积神经网络采用一维卷积。考虑一个词序列w1∶n=wi,wi+1,…,wn,其中Wi为词序列中的词。每一个对应着它们的d维度的词向量E[wi]=wi。宽度为k的一维卷积在句子上移动一个大小为l的滑动窗口,对序列中的每个窗口使用相同的一个滤波器,其中的滤波器是一个与权重向量u的内积,其后通常会使用一个非线性激活函数。定义操作符⊕(wi+k-1)为拼接向量wi,…,wi+k-1。第i个窗口的拼接向量为xi=⊕(wi∶i+k-1=[wi,wi+1,…,wi+k-1])如式(2)所示。然后将每一个窗口向量应用到滤波器上,得到标量值pi如式(3)所示:

xi=⊕(wi∶i+k-1)

(2)

pi=g(xiu)

(3)

式(3)中:g为非线性激活函数;u为权重向量的内积。

使用L个不同的滤波器u1,u2,…,uL将其排列成矩阵U,并增加一个偏置向量b,如式(4)所示。

pi=g(xiU+b)

(4)

每一个向量pi是代表了第i个窗口的L个值得集合。这样每一维捕捉了不同中文新闻事件的指示性信息。

2.2 向量池化

在文本上进行卷积得到的m个向量。然后这些向量被池化成为一个向量c表示整个序列。因此池化得到的向量c捕获了序列重要信息的实质内容。而需要编码进向量c的句子的重要信息的实质内容是任务相关的。例如,进行中文新闻事件检测的过程中,实质内容是指示事件的最具有信息量的事件描述。

在训练过程中,向量c被送给网络中的后续层中,最终到达用于中文新闻事件检测的输出层。网络的训练程序根据预测任务计算损失,误差梯度通过所有的池化卷积个词嵌入层反向传播。训练程序调整卷积矩阵U、偏置向量b、后续网络和可选择性调整的词嵌入矩阵E,使得卷积和池化处理得到的向量c能够对当前的相关任务进行编码。

在语言任务中池化操作通常选择Max-pooling,即对每一个维度取最大值,如式(5)所示:

(5)

式(5)中:pi[j]表示pi的第j个元素。Max-pooling的作用是获取整个窗口位置中最显著的信息。每一个维度会专一化一个特定的事件检测器。

2.3 全连接层

经过池化层处理的向量作为输入,输入到全连接层。全连接层中的每个神经元与前一层的所有神经元进行全连接。全连接层可以整合卷积层或者池化层中具有区分性的局部信息,在语言任务中卷积神经网络的全连接层每个神经元的激励函数采用ReLU函数。最后将经过全连接层操作得到的向量通过一个softmax函数得到,如式(6)所示:

(6)

将y转换为正数,和为1,得到中文新闻事件的概率分布,最终得出中文新闻事件的检测结果。

2.4 中文新闻事件检测模型

中文新闻事件检测模型采用word2vec训练的词向量为词嵌入层,然后依次将词嵌入输入到卷积层、池化层、全连接层。中文新闻事件检测模型的网络结构如图3所示,其中Wi为新闻文本内容。

(1)词嵌入层:采用word2vec对中文新闻事件文本训练词向量,词向量的维度为50维,窗口大小为1,采用Skip-gram模型,基准词频设为1。

(2)卷积层:在中文新闻事件检测任务中采用一维卷积捕捉中文新闻事件中的指示性信息。在卷积层中设置卷积核的个数为256,卷积核的大小为5。

(3)池化层:在中文新闻事件检测中,池化层采用max-pooling。进行一维最大池化,突出中文新闻事件指示性信息中最重要的描述。

(4)全连接层:在中文新闻事件检测中,采用两层全连接层,全连接层的神经元个数分别为256、128,神经元保留率为0.5,全连接层采用ReLU作为激活函数,整合在中文事件检测中的关键信息。

(5)softmax层:经过全连接层后,将数据输入到softmax层,根据新闻文本中的关键信息输出中文新闻事件的检测结果。

(6)网络优化:在中文新闻事件检测模型中采用梯度下降以优化卷积神经网络,优化函数为最小化交叉熵损失函数。

3 中文新闻事件主题提取

在中文新闻事件主题提取部分,提出TF-IDF+K-means的方法对中文新闻事件检测模型中检测出的未知新事件进行分析。通过TF-IDF对未知中文新闻事件文本进行量化表示,利用K-means聚类分析并获取中文新闻事件的主题。

3.1 TF-IDF

TF-IDF意为词频、逆文本频率,是一种统计方法,用于评估一个词对于一个文件集或一个语料库中的其中一份文件的重要程度[13]。一篇文本由若干的词组成,停用词是与文本主题不相关的词。经过去停用词后得到的文本中的词为文本的关键词。但是剩下的关键词也不是同等重要,通过确定关键词在文章中的权重,可以确定文章的主题。

TF(词频)指的是某一个词语在文本文件中的出现次数,但是通常会被归一化,以防止其偏向长的文件。然而,一些通用的词语对于主题并无较大的作用,而一些出现频率较少的词才能够表达文章的主题。权重设计要满足一个词预测主题的能力越强,权重越大,反之权重越小。假设文章词的个数为N,某一词w出现的次数为count(w)如式(7)所示:

(7)

IDF(逆文档率)如果一个词在很少在文本中出现,那么该词对文章的主题作用很大,这样的词权重设计较大。IDF就是完成这项工作。某一特定词的IDF,可以由总文件数目除以包含该词文件数,再取商的对数得到式(8):

(8)

式(8)中:D表示全的文章数;Dw表示关键词w出现的文章数;TF-IDF=TF*IDF。

3.2 K-means

经过TF-IDF将未知中文新闻事件集进行表示,下一步通过聚类对未知中文新闻事件进行分析,分析出未知中文新闻事件的主题。与中文新闻事件检测模型不同的是聚类是无监督学习过程,在此过程中不需要指定事件标签,因此在事件分析中采用无监督的聚类方法实现对未知中文新闻事件的分析。聚类方法是将未知中文新闻事件样本划分为若干个不相交的子样本,每个样本为一个簇。通过聚类的划分,每个簇都对应一个主题,结合TF-IDF提取出每个簇的主题。

K-means又称K均值聚类[2],K-means聚类是一种迭代型聚类方法,采用簇与簇之间的距离作为指标,从而发现文档集中的k个簇,且每个簇的中心根据簇中所有值的均值得到,每个簇用聚类的中心表示。对于给定的一个包含n个d维的数据集X以及要聚类的个数k,选取欧式距离作为指标,聚类的目标是最小化聚类的平方和,如式(9)所示:

(9)

式(9)中:n表示元素个数;k表示簇数;x表示元素;uk表示第k簇的质心。

结合最小二乘法和拉格朗日原理,聚类中心为对应类别中各数据点的平均值,同时为了使得算法收敛,在迭代过程中,应使最终的聚类中心尽可能不变。

3.3 未知中文新闻事件主题提取过程

对于未知中文新闻事件文本首先利用TF-IDF对未知中文新闻事件进行量化表示。设置max_df=0.5, min_df=2,设置最大特征词汇数为1 000,然后训练TF-IDF量化未知中文新闻事件文本,将训练完成的结果输入到K-means进行聚类分析。

K-means中文新闻事件分析是一个反复迭代的过程,分为四个步骤,首先选取新闻文本集中的k个对象作为初始中心,每个对象代表着一个聚类簇中心;其次,对于样本中的数据对象,根据它们与这些聚类中心的欧氏距离,按距离最近的原则将它们分到距离它们最近的聚类中心所对应的类;然后,将每个类别中所有对象所对应的均值作为该类别的聚类中心,计算目标函数的值;最后,判断聚类中心和目标函数的值是否发生改变,若不变,则输出结果,若改变,则返回第二步。最终聚类完成后结合TF-IDF对未知新闻文本的表示,抽取出每个事件类别的关键词。

4 实验与分析

4.1 数据收集

实验数据的获取是通过构建爬虫系统从互联网中获取,通过搜索关键词,并对结果页面进行解析爬取需要的实验数据。实验数据包括中兴事件在内的共2 258条数据,对获取的数据集首先进行规范化操作,去除HTML标记,图片等无效信息,对原始数据集采用半人工标注形成规范化数据。在数据预处理方面采用结巴分词对文本数据集进行分词,去停用词操作。采用word2vec对文本集向量化表示,采用Skip-gram模型,词向量的维度为50维训练词向量模型。

4.2 实验过程

采用word2vec对文本进行向量化处理,提出卷积神经网络作为中文新闻事件的检测模型。对检测出的未知中文新闻事件集,提出TF-IDF+K-means的方法对未知中文新闻事件集进行分析,并且提取出关键词作为未知中文新闻事件的主题,具体流程如图4所示。

评价指标:采用神经网络中常用的准确率(Precision),召回率(Recall),F1值为准确率和召回率的调和平均数,对模型效果进行评价,具体表示为式(10):

(10)

式(10)中:TP为模型预测为预测正确的样本数;FP为模型预测错误的样本数;FN将其他样本预测为不同主题的样本数。不同于中文新闻事件检测,无监督聚类分析没有样本输出,因此没有直接的聚类评估方法。但是可以从簇内的稠密程度和簇间的离散程度来评估聚类的效果。采用Calinski-Harabasz Index进行计算,得到的Calinski-Harabasz 分数值越大则聚类效果越好,如式(11)所示:

(11)

式(11)中:m为训练集样本数;k为类别数;Bk为类别之间的协方差矩阵;Wk为类别内部数据的协方差矩阵;tr为矩阵的迹。

图4 实验流程

4.3 实验结果

在训练过程中,共设置300轮训练,若中间模型准确率不在上升则自动终止训练。最终模型在训练集获得90.4%的训练集准确率,在验证集获得92.3%的准确率。最终模型在测试集获得的准确率为91.3%,P、R、F1与其他模型的对比如表1所示。

表1 卷积神经网络模型与其他模型试验结果对比

由表1可知,传统机器学习方法,如SVM、KNN,在中文新闻事件检测中表现较差,测试结果只有50%的正确率。新事件检测模型的最佳性能是CNN模型。 其F1得分为0.9。CNN模型的准确率和召回率高于其他模型约1.8倍,说明卷积神经网络模型优于所有其他模型。 结果表明,卷积核心和窗口滑动方法影响事件分类模型的性能。 卷积神经网络具有强大的特征学习能力,可以从新闻文本中获取每个事件的重要局部特征,从而实现事件的准确识别。

深色线表示模型在训练集的收敛情况;浅色线为模型在验证集的收敛情况

传统的中文新闻事件检测采用聚类的方法发现新事件,但是该方法精度差,收敛慢。图5所示为卷积神经网络模型训练过程的收敛情况。由图5可知,模型的收敛速度非常快当,当模型训练近300步时,模型收敛,这也验证了卷积神经网络在中文新闻事件检测中的优越性。

对在中文事件检测模型检测出未知事件的文本数据集,经过中文分词,去停用词,利用TF-IDF对文档集进行表示表示,采用K-means聚类分析。根据文本数据集分析结果设置中文新闻事件的聚类数为5,开始训练K-means模型,批量提取每个类别的主题。根据聚类的分析结果,校验主题的提取结果,对于主题关键词的个数可以自定义设定。最终的结果如表2所示。

表2 中文新闻事件主题提取结果

Calinski_harabaz_score为1 747,从表2中可以得出word2vec+CNN+TF-IDF+K-means从中文新事件检测到新事件的主题提取的结果。表2中第一列为类别,第二列为每类事件的主题词,从表2中可以得出各个簇的具体情况,依据Calinski_harabaz_score的评价指标,聚类分析的结果达到了主题提取的效果。

5 结论

介绍了文本预处理的过程、word2vec中的skip-gram模型、卷积神经网络模型、TF-IDF文本表示方法、K-means聚类分析方法。首先完成对数据集的预处理然后送入word2vec+卷积神经网络训练中文新闻事件检测模型进行训练,实验证明卷积神经网络在中文新闻事件检测方面简单而且高效。对未知中文新闻事件采用TF-IDF+K-means实现聚类分析,最终批量实现了中文新闻事件的主题提取。实验表明在中文新闻事件检测和主题提取中采用的方法高效且实用。