集成局部和全局关键特征的文本情感分类方法

2021-04-27 07:12柴变芳杨蕾王建岭李仁玲
关键词:集上向量卷积

柴变芳,杨蕾,王建岭,李仁玲

(1. 河北地质大学 信息工程学院,河北 石家庄 050031;2. 河北中医学院 图书馆,河北 石家庄 050200)

随着社交媒体的快速发展,微博、微信等网络平台逐渐进入公众的生活且带来了极大的便利.人们足不出户就能知道社会热点问题及现象,因此越来越多的人不只是浏览信息,而是经常发表自己的情感态度及观点看法.通过对这些信息进行情感分析,可以帮助国家政府部门正确引导社会舆论方向.目前,情感分析技术已经广泛应用在舆情监控、商业决策、信息预测等领域[1].

自从Nasukawa等[2]在2003年提出情感分析概念以来,便受到了越来越多研究者的关注.当前主要的研究方法有3类:1)基于词典和规则的方法[3-4].该类方法根据经验提取文本中的情感词,然后按照特定的规则对文本进行打分,最后根据分值判断文本的情感极性.2)基于经典机器学习的方法[5-6].此类方法通过特征工程获得每个训练文档的特征,然后基于训练集学习情感分类模型,新文档利用该模型实现情感预测.3)基于深度学习的方法[7-11].该类方法不需要特征工程,以情感分类任务为目标利用深度学习模型自动提取特征,进而训练情感分类神经网络模型.

近年来,一些研究者大量使用基于词典和规则的方法进行情感分类.文献[3]提出了一种利用单词的统计特征创建文本分类中特征空间的表达方法.文献[4]在已有的情感词典基础上,通过LDA模型从语料中提取主题词来扩展特定领域词典,并在多个领域数据集上进行应用且取得不错效果.该类方法适用的语料范围较广,但灵活度不高,分类结果过于依赖情感词典.随着机器学习的发展,基于经典机器学习方法在文本情感分析任务中得到了广泛的应用.文献[5]提出了一种基于表情符号的文本自动标注方法.首先从文本中筛选出情感倾向明显的表情符号作为训练集,然后用机器学习的方法训练分类器,最后在人工标注的测试集中验证并取得了较高的准确率.文献[6]使用集成机器学习技术来提高所提出方法的效率和可靠性,同时将支持向量机与决策树合并,在准确性方面提供了更好的分类结果.此类方法虽然提高了分类准确率,但泛化能力较差,需要大量数据且难以充分挖掘文本中词语更深层次的语义信息.

近来,深度学习在情感分析任务中也取得了一些成果.Le等[7]提出了一种具有不同尺寸卷积核和多类型池化的CNN用于文本分类.陈珂等[8]提出了一种多通道卷积神经网络,通过将词向量特征、情感词特征和位置特征进行组合形成不同通道,再使用CNN进行分类,最终获得了比普通卷积神经网络更好的性能.文献[7]和[8]使用卷积神经网络模型,利用词向量、词语位置信息等来获取词语间深层次的情感信息,但对于较长的文本,该方法不能记忆长距离的全局情感信息,只能提取文本的局部特征,导致分类准确率不高.Irsoy等[9]使用循环神经网络(recurrent neural network,RNN)及长短期记忆网络(long short-term memory,LSTM)为情感分类构建了深度学习模型.李洋等[10]提出了一种CNN和BiLSTM特征融合模型,有效提高了文本分类准确率.文献[9]和[10]使用循环神经网络模型及其各种变体,充分考虑了文本序列的前后依赖关系,但该模型认为文本中各部分信息对分类结果的影响相同,忽略了情感词语相比于普通词语对情感倾向影响更大.Araque等[11]提出了一种结合词语浅层特征和深层特征的模型,充分利用词语的多方面情感信息进行分类并取得了很好的效果.该文献将深度学习自动提取的特征和传统方法手动提取的特征相结合,既充分考虑词语间深层次信息,又通过传统方法提取更准确的情感信息.

由于集成分类器在提高效率和准确率方面具有明显的优势,一些研究者也将其应用在情感分析任务中.苏兵杰等[12]采用XGBoost算法对网络上的商品评论进行情感分析,通过对数据集中的训练集提取特征,利用XGBoost算法训练分类器获得情感分类模型.龚维印等[13]提出了一种基于卷积神经网络和XGBoost的文本分类模型CNNs-XGB.首先利用word2vec对预处理后的数据进行词向量表示,其次利用多尺寸卷积核的卷积神经网络进行数据特征提取,最后利用XGBoost对深度提取的特征进行分类处理.

为了全面考虑文本中词语表达的情感信息及各部分情感信息的重要程度,提出一种集成多卷积核的卷积神经网络和注意力双向长短期记忆网络模型(MCNN_Att-BiLSTM)的情感分类方法,提高分类准确率.利用注意力机制为BiLSTM获取的全局特征分配1个权重向量,充分考虑各部分特征对分类结果的影响大小;利用多种不同大小的卷积核,获取词语间更全面的局部信息;然后融合这2部分特征,利用集成分类器XGBoost进行情感分类,提高分类的准确率和效率.

1 集成关键特征的情感分类模型

提出一个利用深度特征实现文本情感分类的模型MCNN_Att-BiLSTM.针对融合CNN和BiLSTM特征的情感分类方法没有充分考虑词语间情感信息的问题,利用多卷积核的卷积神经网络(MCNN)模型实现局部特征的提取,在CNN中使用多种大小的卷积核,以词为单位,将提取的不同词语间特征进行拼接,从而获得更准确的情感信息.针对CNN_BiLSTM模型未考虑提取的上下文特征对情感分类结果的影响程度问题,利用Att-BiLSTM实现全局关键特征提取,在BiLSTM基础之上增加注意力层,为隐层输出特征赋予1个权重,可获得不同特征对情感分类影响程度的量化值.为了进一步提高情感分类的准确率,融合基于MCNN和Att-BiLSTM特征,输入集成分类器XGBoost实现文本情感分类.基于MCNN_Att-BiLSTM模型的情感分类模型训练流程如图1所示.首先对文本进行数据处理,将文本中的每个词语利用嵌入技术进行向量表示,然后利用MCNN和Att-BiLSTM模型学习文本特征,最后送入集成分类器XGBoost训练分类模型.新来一个待预测文本,利用此流程可得其情感分类结果.

图1 MCNN_Att-BiLSTM模型流程Fig.1 MCNN_Att-BiLSTM model flow chart

1.1 数据处理

情感分类模型的输入为大量的积极和消极评论的文本数据.首先对读取的每个文本进行分词处理(英文数据通过空格进行分词,中文数据使用jieba库进行分词),将每个文本数据转换为词语的集合.为了提高效率,需要去除其中的停用词,即一些没有特定含义的词语,如英文中的“the”,“is”,“a”等,中文中的“一些”、“一个”等.

文本分词完成后,根据词语在文本数据中出现的频率的大小生成文本词典.然后将每个文本中的词语和词典中的词序号一一对应形成一种映射关系,使每个文本由词语的集合转换为每个词语在词典中位置序号的集合.最后将所有文本打乱顺序,按照8∶2的比例划分训练集和测试集.

1.2 词嵌入

在文本情感分析任务中,计算机不能识别英文单词或中文词语,因此需要将数据通过编码向量化.最简单的一种编码方式为one-hot编码[14],为每个文本定义一个由0和1组成的一维向量,长度为文本词典中词语的数量,每维表示对应词语是否在文本中出现,出现为1,否则为0.虽然one-hot编码可以将词语转化为向量,但是形成的向量非常稀疏且维度巨大,不能保留文本的语义关系,使得分类效果并不准确.

为了将词语转化为向量且保留文本语义关系,本文选择Tensorflow框架中的嵌入方式.首先初始化一个符合均匀分布的-1到1的向量矩阵,行数为文本词典中词语的数量,列的数量为词语编码的维度数量;然后根据数据处理后的位置序号集合在初始化的向量矩阵中查找每个词语序号对应的向量,使每个文本由词序号集合转化为由词向量构成的向量矩阵.最后将所有的向量矩阵根据batch_size划分批次,分批输入2类神经网络模型中进行训练.

1.3 多卷积核的卷积神经网络模型

多卷积核的卷积神经网络在处理文本时的模型如图2所示.该模型包括输入层、多核卷积层、池化层及全连接层4部分.

1) 输入层.文本矩阵Sj={V(W(1)),…,V(W(m))}.其中V(W(i))∈RK代表矩阵Sj中第i个K维词向量,Sj∈Rm×K,m代表文本矩阵Sj中的词语数量.

2) 卷积层.利用多种大小为r×K的卷积核提取文本矩阵Sj的局部特征,具体公式如下:

ci=f(F·V(W(i∶i+r-1))+b),

(1)

其中,ci为文本矩阵卷积后的第i个局部特征;F为r×K的卷积核,b为偏置向量;f为激活函数;V(W(i∶i+r-1))代表Sj中从i到i+r-1共r行向量.在文本矩阵Sj中,卷积核以步长1从上到下滑动,最终得到局部特征向量集合C如下:

C={c1,c2,...,ch-r+1},

(2)

其中,h表示文本中词的个数,即文本矩阵中的宽.

图2 MCNN网络结构Fig.2 MCNN network structure

3) 池化层.采用最大池化的方法提取局部特征中值最大的特征.

di=maxC.

(3)

4) 全连接层.将所有池化后的特征进行组合得到向量

U={d1,d2,...,dn},

(4)

其中,n表示池化层得到的特征向量数.

最后将U输入softmax分类器中得到分类结果.模型利用训练数据中的标签,通过反向传播算法进行参数优化.

1.4 基于注意力机制的BiLSTM模型

由于RNN适用于处理序列数据,所以被广泛应用于自然语言处理任务中,但RNN存在梯度消失和梯度爆炸问题.LSTM模型[15]利用门机制控制每一个LSTM单元记忆历史信息和当前输入的信息,保留重要的特征,丢弃不重要特征.LSTM单元的门机制表达式如图3所示.

图3 LSTM单元模型Fig.3 LSTM unit model

1) 遗忘门

fi=σ(Wf·[ht-1,xt]+bf),

(5)

其中,Wf为权重矩阵,[ht-1,xt]表示把前一单元的隐层输出和当前的输入拼接成一个向量,bf为偏置向量,σ是sigmoid函数.

2) 输入门

it=σ(Wi·[ht-1,xt]+bi),

(6)

(7)

3) 更新单元状态

(8)

其中,Ct为当前单元状态,Ct-1为前一时刻单元状态.

4) 输出门

ot=σ(W0·[ht-1,xt]+b0),

(9)

其中,ot表示输出值,W0为权重矩阵,b0为偏置项.

5) LSTM单元最终输出

ht=ot·tanh(Ct).

(10)

在文本情感分析任务中,标准的LSTM模型可根据前面词语推测后面词语的情感信息,后面词语可根据前面词语的语义得到更准确的语义表示.双向长短期记忆网络(BiLSTM)模型[16]在正向的LSTM基础上增加反向LSTM,从2个方向收集词语情感语义表示.为了进一步得到更准确的词语语义,增加注意力机制,使每个词语语义表示由其与各个词语表示的相关性来确定.该相关性对应一个权重向量,最终词语表示由权重向量与LSTM层输出的隐含特征相乘再加上偏置向量得到,其通过不断学习进行优化.Att-BiLSTM模型结构如图4所示.

图4 Att-BiLSTM模型Fig.4 Att-BiLSTM model

1.5 XGBoost模型

陈天奇在2014年首次提出XGBoost算法[17],它是一种传统的Boosting方法,也是一种提升树模型.该算法将许多树模型集成在一起,形成一个强分类器,其中树模型多为CART回归树模型.在CART回归树模型中使用二叉树,通过信息增益函数确定最优的划分属性.

XGBoost算法的核心思想是通过不断添加新的回归树,不断进行特征分裂进而生长一棵树[18].每次添加1棵树即学习1个新函数用来拟合上次预测的残差.在预测一个新样本的分数时,根据该样本的特征,在每棵树中对应1个叶子节点,每个叶子节点对应1个分数,最后将每棵树对应的分数相加即为该样本的预测值.

(11)

其中F={f(x)=wq(x)}(q∶Rm→T,w∈RT),表示q(x)CART结构,即x在某一个CART树中叶子节点的位置信息;Wq(x)表示输入x在某棵CART树中的分数;T为树中叶子节点数;fk表示1个CART树,由树的结构q和叶子节点的权重w确定.

1.6 模型训练

(12)

其中,Wv为权重矩阵,bv为偏置向量.同时利用反向传播算法训练模型,优化参数,使用dropout机制避免过拟合,通过最小化交叉熵调整模型参数,具体公式如下:

(13)

经过网络模型训练后得到最终的文本特征,将该特征输入XGBoost分类器中进行分类获得最终分类结果.同时使用一阶导数和二阶导数最小化下列目标函数,优化模型参数

(14)

本文模型的整体流程如图5所示.

图5 模型整体流程Fig.5 Overall flow chart of the model

2 实验

2.1 实验设置

2.1.1 实验数据

实验使用3个数据集:第一,Keras内部集成的IMDB影评英文数据集,实验使用其中的12 500条正面评论和12 500条负面评论进行训练和测试;第二,由Pang和Lee在2004年ACL会议上使用的txt-sentoken英文数据集[19],包含1 000条正面评论和1 000条负面评论;第三,谭松波-酒店评论中文数据集,包含7 000条正面评论和3 000条负面评论.

2.1.2 数据集划分

数据经过分词、去停用词及向量化处理后按照80%和20%的比例划分训练集和测试集.具体划分如表1所示.

表1 数据集划分

2.1.3 实验参数

实验参数的选取直接影响实验结果,根据固定参数法,本文分别比较了最大句子长度为100、120、150个词;将卷积神经网络的卷积核大小由{3,4,5}扩充到{2,3,4,5,6,7},卷积核数分别取64和128进行比较;dropout对比了0.5、0.7和0.8,BiLSTM层数比较了1层和2层,网络批次大小(batch_size)对比了100和128对实验结果的影响.通过以上等参数的对比,发现在各参数取表2的参数值时,模型准确率较好.

表2 模型实验参数

2.2 实验结果分析

为了验证各个模型的分类性能,将融合CNN和BiLSTM特征的模型(CNN_BiLSTM)与本文改进的融合CNN和Att-BiLSTM特征的模型(CNN_Att-BiLSTM)、融合MCNN和Att-BiLSTM特征后输入XGBoost分类器的模型(MCNN_Att-BiLSTM)在3个数据集上进行了测试.

各个模型在3个数据集1次实验的损失函数如图6所示,其中横轴表示迭代数,纵轴表示训练集上的损失函数值.由实验数据可知,在多次迭代后,损失函数值波动较小且趋于稳定.在IMDB数据集上,CNN_BiLSTM模型损失函数值趋向于0.387,CNN_Att-BiLSTM模型损失函数值趋向于0.318,MCNN_Att-BiLSTM模型损失函数值趋向于0.267.在txt-sentoken数据集上,3个模型的损失函数值比较接近,都趋向于0.000 1.在酒店评论数据集上,CNN_BiLSTM模型损失函数值趋向于0.127,CNN_Att-BiLSTM模型损失函数值趋向于0.032,MCNN_Att-BiLSTM模型损失函数值趋向于0.071.

从上述数据和图6中可以看出,CNN_Att-BiLSTM模型和MCNN_Att-BiLSTM模型的损失函数比CNN_BiLSTM模型收敛速度快,且损失函数值低于CNN_BiLSTM模型.每个模型在3个数据集上都取得了很好的收敛效果.

a.IMDB;b.txt-sentoken;c.谭松波-酒店评论.图6 各数据集的损失函数Fig.6 Loss of each data set

各个模型在3个数据集上的准确率结果如图7所示,其中横轴表示迭代数,纵轴表示测试集准确率.从图7中可以看出CNN_Att-BiLSTM模型和MCNN_Att-BiLSTM模型的准确率比CNN_BiLSTM模型波动较小.经过计算CNN_Att-BiLSTM模型和MCNN_Att-BiLSTM模型准确率均高于CNN_BiLSTM模型.

本文各模型在3个数据集的上的准确率、召回率、F值分别如表3、表4、表5所示.从表中可以发现,本文改进的MCNN_Att-BiLSTM模型在准确率、召回率及F值方面均优于其他模型.在准确率方面,增加注意力机制的CNN_Att-BiLSTM模型比CNN_BiLSTM模型在IMDB数据集上准确率提升了0.70%,在txt-sentoken数据集上提升了0.66%,在酒店评论数据集上提升了2.89%.增加卷积核和注意力机制的MCNN_Att-BiLSTM模型比CNN_BiLSTM模型在IMDB数据集上准确率提升了1.75%,在txt-sentoken数据集上提升了1.67%,在酒店评论数据集上提升了3.81%.

a.IMDB;b.txt-sentoken;c.谭松波-酒店评论.图7 各模型的准确率Fig.7 Accuracy of each model

表3 各个模型在测试集上的准确率

表4 各个模型在测试集上的召回率

表5 各个模型在测试集上的F值

在召回率和F值方面,融合CNN和BiLSTM特征模型在IMDB数据集上召回率达到77.0%,F值达到76.8%,在txt-sentoken数据集上召回率达到76.5%,F值达到76.4%,在酒店评论数据集上召回率达到83.5%,F值达到84.0%.而增加注意力机制的CNN_Att-BiLSTM模型考虑了特征对分类结果的不同影响,使得召回率和F值都得到了提升,在IMDB数据集上召回率达到80.1%,F值达到78.6%,在txt-sentoken数据集上召回率达到78.1%,F值达到78.0%,在酒店评论数据集上召回率达到86.7%,F值达到86.9%.本文模型MCNN_Att-BiLSTM通过增加卷积核和注意力机制,不仅提取了词语间全面的情感信息,而且还考虑了特征对分类结果的不同影响,召回率得到了进一步的提高.在IMDB数据集上召回率达到80.9%,F值达到79.8%,在txt-sentoken数据集上召回率达到79.6%,F值达到78.7%,在酒店评论数据集上召回率达到87.5%,F值达到87.0%.

3 结束语

本文在CNN_BiLSTM模型基础上,改进了2种模型分别为CNN_Att-BiLSTM模型和MCNN_Att-BiLSTM模型.2种模型能够充分考虑词语间局部特征和上下文特征中的重要程度,同时提高了训练速度.在接下来的工作中,将研究词语语义特征对分类结果的影响,即将语义特征和词向量进行融合,通过上述模型实现情感分类.

猜你喜欢
集上向量卷积
向量的分解
关于短文本匹配的泛化性和迁移性的研究分析
一种基于卷积神经网络的地磁基准图构建方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
一种并行不对称空洞卷积模块①
聚焦“向量与三角”创新题
基于互信息的多级特征选择算法
从滤波器理解卷积
向量垂直在解析几何中的应用
向量五种“变身” 玩转圆锥曲线