基于多输入模型及句法结构的中文评论情感分析方法
2021-11-22张宝华张华平厉铁帅商建云
张宝华,张华平,厉铁帅,商建云
1.北京理工大学计算机学院,北京 100081;2.中央军事委员会政法委员会,北京 100120
1 引言
随着智能电子设备的普及和网络的发展,大量的社交媒体及电商平台开始走入人们的生活,人们在日常使用过程中会产生海量的评论数据。合理利用观点挖掘技术可以从这些数据中获取巨大的价值,如对电商评论数据进行观点挖掘,可以分析得出商品的优缺点,商家可以对其进行修改;对影评数据进行挖掘,可以看到当前电影的缺点和优点,方便用户进行选择,也方便出版方的宣传工作;对新闻评论区等数据进行挖掘,可以掌握当前群众的态度。情感分析作为观点挖掘的主要技术之一,面临着巨大的挑战。
新词频出、长短不一、结构不定是网络评论数据的主要特点。严重依赖情感词典的传统规则情感分析方法一方面由于情感词典中缺少网络新词,无法得到新词的正确情感权重,在计算时只能忽略这部分词;另一方面又因为网络文本的结构不定,使用现有的规则对网络文本结构进行分析会出现一定的误差,导致该方法对这类数据的分析效果很差。而基于深度学习的分析方法虽然在分析效果上较好,但也存在一些问题。首先,单一的神经网络模型在处理文本数据时会因为模型本身存在的结构缺陷,造成部分情感特征的损失,从而导致分析准确率较低;其次,现有神经网络模型需要将文本数据映射到向量空间,构建文本向量矩阵之后进行模型运算,但是在这个过程中丢失了在传统方法中对句子情感有很大影响的结构信息;最后,现有的情感分析模型已经开始研究如何将规则方法中使用的一些特征加入深度学习方法中,但是其仍然以输入全部文本数据为主,缺少对其他特征的提取。
虽然基于规则的方法的分析效果要弱于深度学习方法,但是基于规则的方法中的句法规则特征在深度学习方法中仍然具有很重要的作用。因此,需要构建一种新的模型,将这部分句法规则特征融入神经网络模型。为了结合不同模型的优点,并将句法结构规则引入深度学习模型中,本文构建了基于多输入模型及句法结构的神经网络模型。该模型同时将文本向量、情感词向量和语法规则向量输入独立的神经网络模型中,并对模型提出的特征进行拼接,从而得到更加全面的文本特征。实验证明,本文提出的神经网络模型较其他模型的效果更好。
本文主要有以下贡献:
● 本文提出了一种结合多通道卷积神经网络(multi-channel convolutional neural network,MCNN)、长短期记忆(long short-term memory,LSTM)网络和全连接神经网络的合并模型MCNN_S_LSTM_NN,该模型可以结合单个模型的优势,从文本评论中获取更全面的情感特征,从而提高情感分析的准确率;
● 本文针对每部分模型的特点,设计了不同的模型输入,可以从不同的角度对文本进行特征提取;
● 本文首先将句法结构、标点符号等在基于情感词典的情感分析方法中会用到的分析规则应用到深度学习中。同时,本文构建了句法规则提取器,可以直接对文本规则进行提取,并映射到向量空间,作为深度学习模型的输入。
2 相关工作
深度学习方法最早由Collobert R等人[1]在2011年应用到自然语言处理领域,用于解决词性标注等问题。2014年,Kim Y[2]首先在文本分类方面使用卷积神经网络(convolutional nearal network,CNN),并且取得了很好的分类效果。之后Kalchbrenner N 等人[3]提出了一种宽卷积模型,并选择用k-max池化代替传统CNN的最大池化来保留更多的特征。Zhang Y L等人[4]通过多次重复实验,比较了不同超参数对CNN模型结构在性能和稳定性方面的影响。Gao J等人[5]和She n Y L等人[6]介绍了如何将句子表示成包含语义的结构。Zha ng R等人[7]提出了可有效获取句子依赖信息的CNN模型,通过处理预训练的词嵌入来构建分层的文本表示。CNN常被用于捕获局部特征,而循环神经网络(recurrent neural network,RNN)由于自身存在反馈环结构,可以保留记忆信息,在时间序列模型中得 到了很好的应用[8]。但是RNN自身存在一定的缺陷,当文本长度增加时,梯度消失和梯度爆炸情况的出现会导致分析效果不理想。LSTM和门控循环单元在传统RNN的基础上引入了门机制,较好地解决了RNN的问题。So cher R等人[9]通过构建Tree-LSTM获取到更多的文本特征。Tran K等人[10]为了提升模型对历史信息的处理能力,在LSTM的基础上引入了外部记忆单元,但是由于增加了大量的参数,模型准确度提升不大。Chen P等人[11]使用具有注意力机制的双向长短期记忆(bidirection long short term memory,BiLSTM)网络获得了较 好的分类效果。宋婷等人[12]建立了分层的LSTM模型,用于提取方面级的情 感。Wang Y Q等人[13]通过对LSTM建模、对上下文建模,结合文本隐藏状态和方面级情感分析中的方面信息生成注意力向量,并建立了AE-LSTM和ATAE-LSTM神经网络模型,最后得到方面级的情感分类模型。LSTM也存在缺点,其虽然能获得文本的上下文语义信息,但是缺少对文本局部信息的获取。
联合多个简单模型的神经网络模型逐渐成为情感分析方法 的主流,Cheng Y等人[14]建立了典型的并行双层网络结构,输入的数据会先经过注意力机制的计算,计算得到的结果分别被输入多通道卷积神经网络(mutil-channel CNN,MCNN)和双向门控循环单元(bidirection gated recurrent unit,BiGRU),接着将两个模型得到的特征合并,最后对特 征进行训练。Yang L等人[15]使用串行结构将CNN和BiGRU进行组合,并在最后一层加入了注意力机制。Li W等人[16]使用并行结构将BiLSTM和CNN组合起来。不同的是,其提出了使用情感词进行填充的方法,可以缓 解梯度消失问题。Li W J等人[17]虽然没有使用CNN,但是并行了3个BiLSTM,将文本的输入向量分别与词性向量、位置向量和依存语法向量拼接,并分别作为3个模型的输入;然后利用注意力机制将3个特征进行拼接。通过拼接这3个向量可以将句子的部分语法规则特征输入模型中,从而提 高模型的准确率。Usama M等人[18]使用了串行的方法,将RNN和CNN合并起来,并在两个模型中间加入了注意力机制。Basiri M E 等人[19]提出了新的既包含并行结构又包含串行结构的模型。该模型首先将BiLSTM和BiGRU进行并行处理,之后利用CNN进行卷积操作,提取局部特征并降低特征维度。可以看到,并行网络由于可以综合单一网络模型的优点, 已经成为当前的分析主流。Jin N等人[20]提出了MLT-MSCNN-LSTM,该模型同样将MCNN和LSTM网络作为基础模型。此外,该模型还提出了融合网络(fusion net),用于合并MCNN不同卷积核的输出。该模型首先训练word-embedding矩阵,同时作为MCNN和LSTM两个模型的输入;然后分别用LSTM提取全局特征、用MCNN提取局部特征,再使用融合网络合并;最后将两个模型的输出进行拼接得到句子的最终表示特征。在融合网络中,Jin N等人[20]首先将3个经过最大值池化后的特征拼接,然后使用全连接神经网络获取特征,同时在全连接神经网络中使用dropout机 制来提高模型的收敛速度。Li W J等人[17]提出了SAMF-BiLSTM模型,该模型在LSTM上加入了自注意义力(self-attention)机制和层正则化(layer normalization),该模型一共包含5层,且通过3个BiLSTM从不同方面提取文本的情感特征。该模型在词向量层做了改进,在训练好的词向量上拼接了语音特征向量、位置值向量和依赖解析向量,并将拼接向 量作为模型的输入。Basiri M E等人[21]提出 了ABCDM(attention-based bidirectional CNN-RNN deep model)。该模型主要采用注意力机制,首先将文本数据转换为向量矩阵;然后通过BiLSTM和BiGRU两个模型同时提取文本特征,提取完成后引入注意力机制;接着在最后一层加入卷积神经网络进行卷积,提取相关的局部特征并降低特征维度;最后将输出合并,得到最终的特征向量,利用全连 接神经网络进行最后的预测。Usama M等人[22]提出了基于注意力机制的卷积神经网络和循环神经网络情感分析(ATTConv RNNrand)模型。该模型使用了双通道的卷积神经网络;然后对经过卷积神经网络计算后的文本特征进行注意力计算,并将其输入循环神经网络中;最后利用 全连接神经网络进行学习和训练。Li W J等人[17]提出了情感词填充的卷积神经网络和长短期记忆网络(CNN_BiLSTM_sentiment_padding)模型,创新性地使用情感词填充代替数字0填充。在对句子长度较短的句子进行填充时,作者使用句子中情感词权重绝对值的大小,确定句子中不同情感词的填充个数,然后使用情感词填充,这可以强调句子中的情感信息。作者构建了并行的BiLSTM和MCNN模型,分别使用两个模型对句子特征进行提取,再将两个模型得到的特征合并,在最后一层采用全连接神经网络进行学习 和预测。
但是,上述模型中,只有Yang L等人[15]使用了部分的语法规则, 其他模型都忽略了对语法规则的输入;而Cheng Y[14]等人的结论中提到,需要考虑将传统方法中的句法结构特征融入深度学习模型中,这也是本文主要研究的内容。
3 模型分析
如图1所示,本文的模型主要包括MCNN、LSTM和全连接神经网络。其中,MCNN的输入为整个句子的词向量矩阵,通过构建多通道CNN提取文本特征;LSTM的输入为句子中的情感词的词向量矩阵。特征提取器主要提取句子中的句法结构信息,并将其映射到向量空间作为全连接神经网络的输入。将这3个网络得到的特征进行融合,然后利用全连接神经网络输出句子的情感类别。
图1 模型的整体架构
本文模型分为3个部分,MCNN、LSTM和全连接神经网络。其中,MCNN的输入为整个句子的词向量矩阵。对于训练集中的数据,首先使用word2vec算法计算其词向量,然后通过MCNN来提取文本特征。LSTM的输入为句子中包含的情感词的词向量矩阵,LSTM主要用来提取文本中的情感词特征。最后一部分的神经网络模型是全连接神经网络,其输入是特征提取器从文本中提取到的句法特征。特征提取器主要包含两个功能:特征提取和特征映射。特征提取是指从文本中提取其包含的句子结构特征、句间关系特征和标点符号特征,详细内容将在第3.1节中介绍。提取到特征之后,需要将这部分特征在特定规则下映射到向量空间,从而输入神经网络模型中。在这三部分特征全部提取结束后,进行拼接处理。最后利用全连接神经网络对整体特征进行学习。
3.1 输入层
本文的模型是由3个基本神经网络模型构成的。对于每个基本神经网络模型,本文构建了不同的输入。对于MCNN,根据CNN可以提取局部特征的能力,选择将整个句 子的词向量矩阵作为输入。对于LSTM模型,之前的研究[23]证明了在LSTM模型中只使用情感词代表句子的情感特征可以获取比使用整个句子作为输入更好的效果。因此,本文选择使用句子中包含的情感词作为输入,在将句子输入之前,先使用情感词典构建方法对数据集构建情感词典,然后提取句子中的情感词,构建情感词的词向量矩阵并作为输入。对于全连接神经网络,本文设计的输入是句子的句法规则特征。本文主要使用了如下3种规则:结构规则、句间关系规则、句型规则。
● 结构规则:根据句子中是否包含多个单句可以将句子分为复句和单句。复句是由多个单句构成的,复句的情感权重由单句的情感权重根据一定的规则累加得到,单句的情感权重就是本身的权重。因此,要先根据句内标点、关联词等将句子标定为为单句或复句,若是复句,则根据单句的个数将包含的单词映射到向量空间。
● 句间关系规则:这里的句间关系规则主要有4种,转折关系、递进关系、因果关系和假设关系。在转折关系中根据转折词的不同,可以将转折句分为转折前句和转折后句,转折前后句的情感极性相反,且强调后句的情感;在递进关系中,前后递进句的情感逐渐增强,且更强调后递进句的情感;在因果关系中,更强调原因的情感;在假设关系中,更强调条件,对后假设句的情感有削弱。基于此,本文将每个单句中的关联词映射到向量中作为输入。
● 句型规则:根据结尾标点符号的不同,主要分为陈述句、感叹句和疑问句。其中,以句号结尾的为陈述句,句子情感值不变。以叹号结尾的为感叹句,句子的情感值增强。以问号结尾的为问句,根据是否有反义疑问词,可分为反义疑问句和问句,问句表示无情感,而反义疑问句则强调句子的反向情感。因此根据结尾符号和是否包含反义疑问词,可以将句型映射到向量空间中。具体步骤如下。
(1)初始化语法规则特征向量GV=[0]。
(2)根据标点符号和句子中是否有连接词判断是否为复句,若是,则将GV的第一位置为1,进行下一步;否则根据标点符号,将GV的对应位置置1。
(3)根据关联词和标点符号对句子进行切分,并根据切分出来的单句数量,在GV剩下的位置上置1。
(4)对切分的每个单句进行关联词匹配和标点符号匹配,并以12位的向量空间标记每条单句的处理结果。其中转折前置词、假设前置词、因果前置词和强调前置词由前4位表示,后关联词由中间4位表示,标点符号类型由后4位表示,每个单句都会得到类似的12位标记,然后按顺序组成GV。
(5)填充0,将GV补足到N位,其中N表示全连接层的输入长度限制。
由此,针对不同基本模型的特点,构建了不同的输入,并将语法规则特征映射到向量空间作为全连接神经网络的输入,通过全连接神经网络将其补充到最终模型的特征中。
3.2 模型架构
本文提出的基本模型主要有MCNN和LSTM。
3.2.1 卷积神经网络层
MCNN的架构如图2所示,其主要由卷积层、池化层和全连接层构成。卷积层用来提取输入数据的特征;在卷积层进行特征提取后,输出的特征图会被传递到池化层进行特征选择和信息过滤;全连接层等价于传统前馈神经网络的隐藏层,一般和输出层连接,实现最后的输出。
图2 MCNN的架构
在本文的模型中,假设句子的最大长度为N,其中不足N的用0补齐;词向量维度为d,则输入句子可以用矩阵S∈Rn+d表示。假设卷积核W∈Rd×h,其中,d表示卷积核的长度,大小和词向量的维度相同;h表示卷积核的宽度。本文选择的卷积核大小分别为3×3、5×5、7×7。对于输入S∈Rn+d,通过卷积操作可得特征向量O=(O0,O1,O2,…,On-h) ∈Rn-h+1, 则O中元素的计算式为Oi=W·Si,i+h-1,其中i= 1,2,3,…,n-h,符号“·”表示矩阵的点乘操作。Si,j表示矩阵S的第i行到第j行的子矩阵。在卷积神经网络中,卷积完成之后一般进行池化操作,在池化层中使用最大池化操作,在每个过滤器中都可以取得最大值,可以提取到最显著的特征。Zhang Y等人[4]的研究工作也表明,在各种句子分类任务中,最大池化操作在性能上始终优于其他池化策略。因此,这里选用1-max池化,其主要思想是通过选择特定特征图的最大值来捕获与特定特征图相对应的最重要特征。如图2所示,经 过不同大小的卷积核以及同样的池化操作后,提取出不同大小的特征,将这些特征进行合并,然后传递给以Sigmoid为激活函数的全连接层,就可以得到不同情感类别的概率。
3.2.2 长短期记忆网络
LSTM的架构如图3所示。RNN可以处理一定的短期依赖,但是由于序列较长时,序列后部的梯度很难反向传播到前面的序列,因此无法处理长期依赖问题。而在LSTM中引入了细胞状态,并使用输入门、遗忘门和输出门来保存和控制信息,可以解决RNN的缺点。
图3 LSTM的架构
LSTM的某个状态有以下步骤。
(1)当输入门it接收到当前输入xt和最后的最终隐藏状态ht-1之后,it通过以下计算式进行计算:。其中 ,σ是一个逻辑S型函数,wix和wih分别代表两个权重矩阵,bi是输入门的偏差向量。
(2)若it的值为1,则表示当前输入的信息可以进入细胞状态;若值为0,则表示当前输入的信息不可以进入细胞状态。然后计算候选值,其中wcx和wch分别代表两个权重矩阵,bc是偏差向量。(3)之后遗忘门ft将执行操作。ft的值为0表示不传递信息ct-1给ct,ft的值为1表示将全部信息传递给ct。其中wfx和wfh分别代表两个权重矩阵,bf是遗忘门的偏差向量。
(4)计算完成后的细胞状态为ct=ftct-1+itct。
最终隐藏状态的输出与前一个序列的隐藏状态、当前输入和当前单元状态值有关,用一个激活函数tanh将当前单元状态的值压缩到-1~1。将先前隐藏状态与当前输入通过sigmoid函数转换后的值与当前单元状态经过压缩后的值进行相乘,保留或舍弃先前的状态信息与此时的输入信息,从而得到一个新的隐藏状态值。
3.3 输出层
在基本模型都提取到文本的情感特征之后,将3个模型得到的特征进行合并,这可以取长补短,综合不同模型的特点,同时可以将文本的句法规则特征加入文本的最终特征中,实现句法规则特征与深度学习模型的融合。最后通过全连接神经网络对最终的文本情感特征进行分类。
4 实验结果及分析
本文在Linux环境下使用Python2.7和Keras完成了模型的编写,并在8块型号为1080Ti的GPU上进行了训练。从第3节可以看出,本文的3个模型的输入各不相同。其中 LSTM的输入为情感词,因此需要先利用情感词典构建方法[18]构建情感词典,也可以采用公开的情感词典,但是效果不如针对数据单独提取的词典。
4.1 数据集
本文的数据集主要使用谭松波酒店评论数据(Hotel)、NLPCC2014情感分析task2以及笔者从豆瓣上采集的影评数据(Douban),将好评认为正面情感,差评认为负面情感。对3个语料库的统计结果见表1。
表1 对3个语料库的统计结果
4.2 消融实验
为了验证本文模型对最终结果的贡献,本文设计了消融实验,实验结果见表2。
其中,MCNN_S_LSTM_NN是本文提出的多输入模型,MCNN表示多通道卷积神经网络,S_LSTM表示以LSTM模型为基础且输入为句子中包含的情感词的词向量矩阵,LSTM表示以LSTM模型为基础且输入为整个句子的向量矩阵,NN表示以全连接神经网络为基础且输入为通过句法规则特征提取器提取的句法规则向量。从表2可以看到,带有NN的模型要比不带NN的模型的准确率高,说明句法结构特征的引入丰富了情感特征,从而提高了情感分析的准确率。S_LSTM和LSTM的对比则说明句子中的情感词对句子的情感有很极大的影响。
表2 消融实验的准确率
4.3 对比实验
本文主要选取CNN、LSTM、SLCABG[14]、ATTConv RNN-rand[17]、ABCDM[18]、SAMF-BILSTM[15]、CNNBiLSTM(sentiment word padding)[16]、MC-AttCNN-AttBiGRU[13]作为对比模型,将精确率(P)、召回率(R)、F1值和准确率(ACC)作为评测指标,其实验结果见表3。
从表3可以看到,本文构建的模型MCNN_S_LSTM_NN在3个数据集上的准确率均最高,这证明了本文构建的模型的可行性和先进性。另外,从表3还可以看到,组合模型的准确率相较于简单模型要更高,这说明复合模型可以综合简单模型的优点,可以提取到更全面的文本特征。在模型中使用注意力机制的方法(如MC-AttCNN-AttBiGRU、ABCDM、ATTConv-RNN rand)的准确率也比较高,这也许是本文可以继续学习和研究的一个方向。
表3 对比实验的实验结果
5 结束语
本文构建了基于多输入模型及句法结构的中文评论情感分析方法,通过研究基于情感词典的情感分析方法,将情感分析中对句子情感会产生重要影响的句法规则特征融入深度学习模型中,丰富了模型获取到的文本情感特征,提高了模型的准确率。同时,本文还提出了句法规则特征抽取方法,可以在文本输入时将特征提取出来,构建成向量矩阵并作为模型的一个输入。从消融实验的结果可以看出,句法规则特征的引入可以提高深度学习模型的分析准确率,对比实验则说明单个模型的效果要弱于组合模型,且目前组合模型的情感分析方法已成为当前的研究主流。从3个数据集上的实验结果来看,本文构建的模型可以提取到更多的特征,且情感分析的准确率更高,证明了本方法的有效性。
这是第一次将句法规则特征通过特征提取器提取特征的方式引入深度学习模型中,为之后情感分析方法的研究提供了新的研究思路。当然,本文模型也有一些不足之处,如句法规则的引入过于简单、现有的规则特征提取方法可能会造成一些信息的损失,仍然需要进一步研究解决。