基于PCA-CNN的动态短文本分析研究
2022-04-28林寒冰金秀玲林云霞
林寒冰,金秀玲,王 婷,林云霞
(闽江学院 数学与数据科学学院(软件学院),福建 福州 350108)
目前,人们的阅读途径已不局限于纸质媒体,博客、微博等社交网络平台成为人们获取信息的重要来源,但其中的短文本信息繁杂、无序且多样,不易获取。本文帮助人们挖掘海量数据中的潜在联系并筛选信息,提高阅读效率。通过“人机对话”让枯燥的阅读更具有趣味性,加强人们阅读体验感。因此,动态短文本是十分具有研究意义的。
近年来,国内外学者关于话题信息获取方面有大量研究。对于信息检索、信息挖掘和信息抽取等自然语言处理技术可追随到话题检测与跟踪(Topic Detection and Tracking,TDT)[1]的话题跟踪任务阶段。传统文本信息的话题抽取研究最重要的环节是文本聚类的过程。在国内,尉景辉等[2]用传统的K-means聚类算法对长文本聚类进行研究,解决了传统的K-means聚类算法对长文本聚类导致的计算复杂度增加、聚类结果混乱等一系列问题。高长元等[3]利用CURE算法针对存储网络用户的大型数据库进行基于实际应用的改进。蔡岳等[4]利用最小二乘法降低文本向量的维度,创建了应用于DBSCAN算法的簇关系树结构来文本聚类。李云红等[5]建立了BGRU-CNN模型对长文本提取语义关键特征,提高了中文长文本的分类准确率。张昱等[6]用组合-卷积神经网络模型对新闻文本进行分析,提高了新闻文本分类精确率。在国外,Kim提出了TextCNN[7]算法,使用卷积神经网络(CNN)来对英文长文本建模,在公有数据集上超过了传统方法的表征。卡内基梅隆大学的人员提出了HAN(层次注意力网络)[8]算法建模更加复杂的文档,使用词、句、段落之间3种的注意力表示一篇文档。对于微博短文本的研究,史伟等[9]采用情感圈的方法结合不同语境,对文本语义进行进一步挖掘,在精度、召回率、准确率方面比传统基于词典的方法都得到了提升。张佩瑶等[10]基于词向量和BTM结合K-means算法对微博文本进行主题融合,该方法在主题模型提取效率上提高了10%。
综上文献分析,自然语言处理中,在研究内容上,CNN算法多用于英文文本、固定长文本的分析,长文本词句间的联系易把握,以往的研究缺乏对于当今热门平台如微博、知乎等用户发布的情感态度强但词句联系较弱的短文本信息的研究。研究方法上,文本聚类方法有基于划分K-means聚类算法、基于层次的CURE算法、基于密度的DBSCAN算法及CNN算法,在最新的研究中对于短文本的研究用到情感圈方法、基于词向量和BTM结合K-means聚类算法。以上方法无法同时获取文本中的词语之间关联性及上下文的情感表述,且聚类结果会受到特征向量的影响。
因此,本文对动态短文本关键词提取方面的空缺展开研究,引入PCA算法,进一步融合CNN模型提出PCA-CNN模型,探讨动态短文本的关键词抓取与情感表述问题。该模型既考虑到中文语义复杂、情感多样的特点,又有降维的作用,提高CNN模型的运行速度,PCA算法与CNN的结合能快速捕捉短文本中的上下词联系,在其他文本中搜索到目标事件关键词并提取出来,提高短文本信息的理解性及关键词的抓取速度,使用户快速把握事件发展关键信息。
1 基础算法介绍
1.1 PCA降维技术
PCA(Principal Component Analysis)[11]即主成分分析方法,是广泛使用的一种数据降维算法,通过析取主成分将关系紧密的众多特征提取出尽可能少的相互独立的新特征,新特征能够独立代表各个部分的内容,使数据更易理解。PCA算法降维[12]计算如下:
(1)将原始数据按列组成n行d列矩阵X;
(2)再将每一维(代表一个属性的每一列数据)去零均值化;
(3)然后计算协方差矩阵,并对协方差矩阵特征值和特征向量进行计算,
(4)接着对特征值进行排序,取前k行组成矩阵P,用数据矩阵乘以k个特征向量组成的矩阵P,得到降到k维的数据,
PCA降维后,高维数据的重要特征在数据中能更明确显示出来,降低算法开销。
1.2 卷积神经网络模型(CNN)
CNN模型[13]是一种由输入层、卷积层、池化层、全连接层和输出层构成的自然语言处理模型,每一层的神经元呈宽度、高度、深度三维排列。多层的卷积、池化操作能够捕捉到模型的全局语义信息和更高级的特征。其中,卷积层作为CNN模型构建的核心,对矩阵卷积计算获取其特征。池化层进行一种降采样操作(subsampling),以降低特征图(feature maps)的特征空间,简化计算复杂度,减少计算资源耗费。CNN的架构图如图1所示。
图1 卷积神经网络(CNN)架构图
CNN中每一层实施的操作就是把上一层的输出加权求和,加上偏置并输入激活函数,激活函数输出的所在层如果不是最后一层,则该输出是下一层的输入。计算公式如下:
其中,hi表示作用后的向量,S为输入的句子,W表示一个窗口为m的卷积核,ci表示输出的特征映射向量,bi表示偏置项,α表示非线性激活函数。
1.3 PCA-CNN模型构建
(1)数据获取,在输入目标关键词后,通过网络爬虫技术爬取网页相关的文本内容、链接、ID号等目标数据。
(2)数据预处理,提取目标数据的文本内容,进行文本清洗,包括去重及去除空格空行、去除停用词过滤、数据降噪等操作后,使用jieba中文分词,进行文本切分后计算生成特征向量矩阵。采用PCA算法过滤掉非重点特征项,去掉特征之间的无关性并保留语义特征,实现向量矩阵的初步降维。
(3)在输入层结合训练好的CNN模型将文本数据向量化。一方面,将分词完成的测试集数据使用Word2Vec训练[14],选择skip-gram跳字模型[15]用Softmax函数作上下文词分类,转化文本数据为大小相同的情感特征词向量矩阵。另一方面,采用TF-IDF关键词提取法[16],构造出文本矩阵再将词语转化为词频矩阵。
(4)卷积层对向量矩阵卷积运算,对词向量矩阵选定卷积核大小为2、3、4,卷积核数量为64的3层卷积操作。
(5)池化层降低文本特征维度,在对卷积后的特征图降采样,进行最大池化Max pooling[17]处理,将特征图的各个维度全部降为1,以便后续最大特征地提取和聚类。
(6)输出层文本聚类,分类输出特征词。结合池化层输出的词向量的最大池化结果,先输入全连接层,对经过多次卷积和池化得来的高级特征采用全连接结合Softmax函数[18]进行分类后输出。
(7)特征结构可视化。用Matplotlib绘制分类结果矩阵的散点图,采用WordCloud[19]生成文本数据的词云图,使结果更加直观。
(8)应用测试集数据对模型进行检验及模型对比,判断其准确率,不断提升模型的准确度。
PCA-CNN模型构建流程图如图2所示。
图2 PCA-CNN模型构建流程图
2 实证分析
2.1 实验数据准备——以“河南暴雨”为例(事件已经结束,已构成完整数据)
本文通过python编程语言,采用训练集和测试集进行研究。
突发极端事件会打破人们正常的生活节奏,往往是大众的关注点,随着短文本阅读的普及,如微博等信息交流平台的数据所包含的社会视角、话题影响力逐渐增大,足以反映大众态度。本文借助网络爬虫技术,从微博网页花费21 min爬取2021年7月20日至2021年7月27日的3 830条关于“河南暴雨”的微博话题。该话题事件现已结束,相关的数据较为完备,且该突发事件的相关话题持续1周位于热搜榜首,其数据内容包含正面负面、消极积极多维度融合情感态度的信息。此外,该事件可以充分反映面对极端突发事件时,大众的舆情倾向,国家和人民采取的紧急响应措施,具有代表性。
2.2 “河南暴雨”数据预处理
提取“河南暴雨”的详细信息文本,在卷积操作前进行文本清洗,去除文本停用词、无意义词等冗余信息,降低数据噪声。通过分词,划分地点、时间、事件为具体的词组,得出郑州、自然灾害等词语,进一步生成特征向量矩阵,将每条微博转化为一个特征向量。转化后得到628个特征向量,数量过多,需采用PCA降维。
2.3 PCA处理
使用PCA算法,对生成的m*n维特征矩阵,通过多重组合特征提取方法,计算协方差矩阵,每个向量对应的特征值,排列后选定的前k维正交化的特征项,提取出具有代表性的特征项,对特征向量矩阵进行初步特征降维处理。如图3所示,在628个特征中选取特征值大于1、方差累积贡献率超过80%的前256个主成分,确定所采用的维度为256。通过PCA降维,仅保留主要信息令词特征向量间相互独立,提炼语义信息,防止卷积出现过拟合。
图3 “河南暴雨”相关数据PCA处理碎石图
2.4 “河南暴雨”数据的CNN模型建立
将分词完成的测试集文本数据转化为大小相同的情感特征词向量矩阵,采用HowNet构建情感词典,建立词向量矩阵。河南暴雨训练数据的情感特征可分为积极和消极2个方面,表示积极和正面的赋值为1,表示消极和负面的赋值为0,得到词汇向量的映射表。
利用CNN的滑动窗口对所有可能的词向量组合进行卷积操作,得到交互的初步矩阵表示,保留词矩阵中的特征向量。通过反复对比,发现使用两层卷积时,关键词分类结果中会出现如“灾害”“灾难”等大量语义相似的词汇,占用特征空间;使用四层卷积时,部分基础语义相同但具有特征的词汇如“铁路损毁”“农田损毁”等被过滤,导致过拟合,影响关键词提取的真实性。因此选择三层卷积。具体卷积层和池化层的参数见表1。
表1 卷积层和池化层各参数设置
将“河南暴雨”微博评论数据词向量矩阵数值化后,进行一次卷积和池化操作,得到尺寸为(8,8,256)的特征矩阵图,对文本特征进行初步增强。对此特征矩阵图进行卷积层Conv2、Conv3的特征融合,输出特征矩阵图尺寸为(4,4,128),降维处理Maxpool2层的输出,得到(128,128)的二维矩阵。
输出层对特征矩阵与词矩阵匹配后输出,关于“河南暴雨”的目标关键词分类。该信息可分为负面积极、负面消极、正面积极、正面消极,但由于在现实生活中的表达习惯和客观性,正面的事物普遍属于积极一面,主要将处理后的数据分成3类,第1类表示对受灾地区捐款,八方支援等的正面积极词汇;第2类表示河南暴雨是一大地质灾害,由于气候变化对人类生活产生较客观的负面影响;第3类则表示受灾严重的地区受灾情况等消极信息。关键词分类结果见表2。
表2 关于“河南暴雨”部分关键词分类表
2.5 “河南暴雨”数据结果可视化
绘制“河南暴雨”话题、分类结果矩阵散点图,每个点对应1个词2个维度的情感特征值。在重复训练后,关于“河南暴雨”不同类别的情感特征值聚集,没有散落的错误向量。采用WordCloud模块生成“河南暴雨”文本数据的词云图,以直观的精炼文字内容传达信息。如图4所示的词云图解释了本次“河南暴雨”的发展态势,让用户快速观察到“河南暴雨”的关注点在于暴雨发生受灾的具体地点、人们在暴雨中的应对方法、暴雨产生的原因和性质、暴雨的发展状态等内容,体现了人们对极端突发事件的密切关注,展现国家以人民生命财产安全为先的坚定,同时用户提出的一些负面的文本信息可以给相关部门以建议和启示。
图4 “河南暴雨”热点词云图
研究PCA-CNN模型的优化程度,将支持向量机算法、TextCNN算法的中文模型与PCA-CNN模型对相同的微博话题“河南暴雨”短文本数据集进行关键词抓取后的情感分类,其中TextCNN模型的卷积参数与PCA-CNN模型保持一致。模型情感聚类结果见表3及图5,各类计算值的后缀1、2、3,分别代表正面积极、负面积极、负面消极3类文本,Accuracy表示短文本分类的准确率。
图5 “河南暴雨”的TextCNN,SVM,PCA-CNN模型情感聚类结果
表3 TextCNN,SVM,PCA-CNN模型测试结果
对照图表中数据对比,TextCNN模型分类的准确率最低,SVM模型次之,PAC-CNN模型的准确率最好。PCA-CNN模型的短文本情感分类性能最好,主流关键词准确度达86.85%,实现了对“河南暴雨”微博短文本数据的准确分类及关键词抓取。较之传统的TextCNN模型,添加了PCA对词特征降维后准确率提升了10.14%,对SVM增加了更深层学习的CNN模型后准确率提升了6.11%。
3 结束语
随着科技的发展,人们频繁通过阅读新闻、电子书、新媒体平台等方式获取信息。针对实时话题,在繁杂多样化的数据信息中提取关键信息,借助网络爬虫技术获取中文短文本数据,PCA算法降维处理数据,数据特征初步提取后,结合CNN模型进行情感分析及文本分类,构建了PCA-CNN模型,在语义分析的基础上加强了词句情感把控,该模型结果的准确率高于TextCNN和SVM模型,达到86.85%。通过反馈目标事件的最新发展状况和大众关注点,让用户快速获取信息,抓住情感重点,节省时间,提高阅读关注度。动态短文本的研究在当今快节奏的生活中促进了人们的生活效率和生活水平的提高。智能阅读也会在未来拥有更好的发展条件和环境,并不断完善和提升。