基于BiLSTM-CNN串行混合模型的文本情感分析

2020-03-06 12:55王伟杰
计算机应用 2020年1期
关键词:语义向量词汇

赵 宏,王 乐,王伟杰

(兰州理工大学 计算机与通信学院,兰州 730050)

0 引言

互联网技术的持续进步带动自媒体的快速发展,以微博、Facebook、Twitter等为代表的自媒体为用户提供了表达观点和抒发个人情感的平台,累积了海量带有个人观点和情感倾向的文本。对这些文本中个人观点和情感倾向进行挖掘,可以及时获取网民对热点事件的观点、网民对购物和社交活动的情感倾向,有助于政府相关部门对网络舆情的把控,商家对客户需求的精准理解[1]。

这些海量文本来源于互联网的众多用户,形式多样,无固定格式,很难用简单的自动化手段进行处理;如果依靠人工处理,则存在工作量过大和实时性较差等问题[2]。自然语言处理领域的文本情感分析可以从表达形式自由的文本中提取作者的情感倾向,能够应用于海量文本的情感分析中。

为了实现海量文本的情感分析,学者们通过统计学、机器学习和神经网络等方法分析文本情感倾向[3]。

基于统计学的方法,首先对情感词典中短语进行极性和强度标注;然后依据情感词典,对待处理文本中提取的关键词计算积极或消极的情感得分;最后经过总和,得到文本情感倾向。常用的情感词典主要有词汇网络词典(WordNet)、台湾大学情感词典(National Taiwan University Sentiment Dictionary,NTUSD)和评价词词典(General Inquirer, GI)等[4]。Hu等[5]依托WordNet词典计算待处理文本的情感得分,取得了较好的效果。Kim等[6]利用手工采集的种子情感词汇对现有情感词典进行扩充,提高了文本情感分析的准确率。郗亚辉[7]利用情感词间的交互信息和上下文约束关系扩展了情感词典的功能,从而提高了文本情感分析的准确率,取得比较好的效果。Xu等[8]利用基本情感词、字段情感词和多义词情感词对情感词典进行扩充,在评论文本上提高了文本情感分析的准确率。Hu等[5]、Kim等[6]、郗亚辉[7]和Xu等[8]都是依托情感词典统计待处理文本的积极和消极情感词的数目,从而得到文本的情感倾向,取得较好的效果;但文本情感分析的准确率和情感词典规模的关联度较大,从而使得模型的泛化能力较差,实时性不强。

基于机器学习方法,首先通过人工标注的形式构造结构化的文本特征,然后使用朴素贝叶斯(Naive Bayes, NB)、最大熵 (Maximum Entropy, ME)和支持向量机 (Support Vector Machine, SVM)等机器学习分类器对待处理文本进行情感分析。Pang等[9]根据传统自然语言处理中的文本分类技术,综合应用朴素贝叶斯、最大熵和支持向量机等文本情感分析方法,在提取英文电影评论文本情感上取得了显著的效果。李婷婷等[10]提出了一种基于SVM和条件随机场(Conditional Random Field, CRF)相结合的文本情感分析方法,利用多种文本特征,如词性、情感、程度等,构造出不同的特征组合,提高了文本分类的准确率。朱远平等[11]构建了一种优化的SVM决策树分类器,依据类间距离进行分类,提高了SVM决策树分类器在文本分类中的有效性。Cai等[12]先利用情感词典对待处理文本构造结构化的文本特征;然后使用SVM和梯度提升树(Gradient Boosting Decision Tree, GBDT)结合的混合模型进行文本情感分析,并取得了比单一模型更好的分类效果。Pang等[9]、李婷婷等[10]、朱远平等[11]和Cai等[12]都是通过人工构造结构化的文本特征如词性、情感等,使用机器学习分类器对待处理文本进行情感倾向分析。虽都取得显著的分类效果,但过多地人工构造结构化的文本特征,实时性较差。

基于神经网络的方法,首先利用词向量模型将离散的文本词汇转化为含有语义信息的高维实数向量,然后以有监督的形式学习积极和消极的词向量特征,从而得出文本的情感倾向。Bengio等[13]利用神经网络构建语言模型,将词向量映射到实数空间,通过计算词之间的数值距离来判断词之间的相似性,简化了文本情感提取方法。Kim[14]使用不同卷积核的卷积神经网络对英文文本局部语义特征进行提取,实现了句子级的分类任务并取得很好的分类效果。梁军等[15]提出了基于极性转移和LSTM神经网络的情感分析方法,在情感极性转移模型中使用LSTM提取文本上文语义信息,提高了情感分析的准确率。曾谁飞等[16]将单词词典和词性词典的词向量进行融合,构成Double word-embedding,送入BiLSTM进行训练,进一步提高了文本情感分析的准确率。Ma等[17]提出了一种基于特征的合成存储器网络(Feature-based Compositing Memory Network,FCMN),利用FCMN提取待处理文本的三种特征丰富上下文的单词表示。通过结合特征表示和词嵌入,提高了注意力的性能,从而在文本情感分析中取得不错的分类效果。Bengio等[13]、Kim[14]、梁军等[15]、曾谁飞等[16]和Ma等[17]都通过神经网络语言模型进行文本情感分析,并取得很好的分类效果;但没有综合考虑文本的上下文信息和局部语义特征对文本情感分析的影响。

以上文本情感分析方法各有优势,相比而言,基于统计学的方法使用情感词典统计带有情感标注的短语计算情感得分,提高了文本情感分析的准确率;但文本情感分析的准确率和情感词典规模的关联度较大,实时性不强。基于机器学习的方法使用人工标注的方式构造结构化的文本特征,可以有效提高文本情感分析的准确率;但由于需要较多地人工构造特征,实时性仍然不强。另外,人工标注数据还需要一定的先验知识,使得该方法应用于大规模文本数据时,效用下降。基于神经网络的方法可以从向量化的文本词汇中自动提取语义特征,不依赖人工构造的特征;但是,使用单一的神经网络模型进行特征提取,不能同时提取文本上下文信息和局部语义特征。

综上,针对现有文本情感分析方法实时性不强、难以应用到大规模文本、不能同时提取文本上下文信息和局部语义特征等问题,提出一种基于双向长短时记忆神经网络和卷积神经网络(Bi-directional Long Short Term Memory and Convolutional Neural Network, BiLSTM-CNN)串行混合的文本情感分析方法。首先,使用Word2Vec对文本词汇进行向量化,将评论文本词汇转化成高维实数向量;然后,通过BiLSTM-CNN串行混合模型提取文本上下文特征和局部语义特征;最后,使用Softmax分类器对文本进行情感倾向分类。

本文的主要工作如下:

1)利用BiLSTM提取文本上下文特征,充分考虑了自然语言中一个词的语义不仅与它之前的信息有关,还与它之后的信息有关;

2)先利用BiLSTM对待处理文本进行上下文特征提取,再对已提取的上下文特征使用CNN进行局部语义特征提取。既能同时利用BiLSTM和CNN提取特征的优势,又能很好地理解待处理文本的语义,从而提高文本情感分析的准确率。

1 BiLSTM-CNN串行混合模型的建立

基于BiLSTM-CNN串行混合模型如图1所示,分为数据预处理、文本词汇向量化、特征提取、情感分类等四个步骤。

图1 BiLSTM-CNN串行混合模型Fig. 1 Serial hybrid model based on BiLSTM-CNN

图1中,数据预处理对文献[18]中带标注的评论文本去除噪声,只保留具有语义信息的文本,降低噪声对文本情感分析准确率的影响;文本词汇的向量化利用Word2Vec工具将评论文本词汇转化成含有语义信息的实数向量;特征提取使用BiLSTM-CNN串行混合模块,细分为BiLSTM提取文本的上下文信息和CNN提取局部语义特征;情感分类使用Softmax。最后,使用十折交叉验证方法对基于BiLSTM-CNN串行混合模型进行训练以及性能评估。

1.1 数据预处理

大量的评论文本由不同的用户抒写而来,形式自由,没有固定的语法和模式,而评论文本不仅包含具有语义信息的文本,还存在大量的噪声数据。为了减少噪声数据对文本情感分析的影响,需要对评论文本进行以下预处理:

1)过滤掉所有的标点符号和特殊字符,只保留具有语义价值信息的中文文本。

2)使用jieba分词工具进行词语分割。

3)使用哈工大停用词表、百度停用词表和四川大学机器智能实验室停用词表[19]的交集,去除噪声数据。

4)对标签进行数字化,积极情感表示为1,消极情感表示为0。

1.2 文本词汇向量化

数量巨大的评论由不同用户自由书写而来,没有结构化或规范化的语法和模式,具有高度非结构化的特点,因此,不能直接使用现成的数学模型或统计模型来处理和分析,需要将评论中的文本词汇转化成实数向量再进行处理和分析。开源词向量工具Word2Vec[20-21]利用词袋模型(Continueus Bag Of Words, CBOW)或跳字模型(Skip-gram),能够将文本词汇转化成含有一定语义信息的高维实数向量。

CBOW模型通过上下文词汇预测中心词,Skip-gram模型通过中心词预测其上下文词汇。CBOW在训练的过程中,预测次数为x,其中x是评论文本的词汇数量;Skip-gram预测次数则是k*x,其中k表示上下文的词汇数量。两种模型对比,CBOW相比Skip-gram训练时间较短,但是对于一些低频词,CBOW模型的预测效果较差,模型泛化能力较弱。考虑到模型的泛化能力,本文选用Word2Vec的Skip-gram模型对文本词汇进行向量化处理。

假设评论文本W={w(1),w(2),…,w(n)},以第t个词为中心词进行文本词汇向量化操作,记为(V(w(t)),Context(w(t))),其中V(w(t))为评论文本W中心词w(t)的词向量,Context(w(t))为w(t)的上下文词向量。使用Skip-gram模型的输入、投影和输出三层结构进行文本词汇向量化转变,如图2所示。

图2 Skip-gram模型Fig. 2 Skip-gram model

图2中,评论文本W的第t个词w(t)为中心词,输入层为中心词w(t)的one-hot词向量V(w(t));从输入层到投影层是恒等投影,即将V(w(t))投影到V(w(t));投影层到输出层根据评论文本词汇的词频构建Huffman树,并按照式(1)计算w(t)的上下文词汇向量:

P(V(w(i))|V(w(t)))

(1)

其中:V(w(i))∈Context(w),t为中心词序号,i为中心词上下文词汇与中心词的距离。

从根节点开始,投影层的值沿着Huffman树进行二元逻辑回归(Logistic)分类,输出w(t)周围2n个上下文文本词汇的词向量。例如,如果n取2,则中心词w(t)的前两个词为w(t-2),w(t-1),后两个词为w(t+1),w(t+2),它们对应的词向量为V(w(t-2)),V(w(t-1)),V(w(t+1)),V(w(t+2)),即Context(w)={V(w(t-2)),V(w(t-1)),V(w(t+1)),V(w(t+2))}。

1.3 上下文信息提取

不同的用户通过自媒体平台发表的评论是自然语言的一种表现形式,形式虽然自由但结构上仍然存在上下文依赖关系。依据文本的上文信息和下文信息,能够更准确地理解文本语义。经典的循环神经网络(Recurrent Neural Network, RNN)能够挖掘文本的时序信息和上下文语义信息,但RNN在学习任意长度的时间序列时,随着输入的增多,对很久以前信息的感知能力下降,产生长期依赖和梯度消失问题[22],而从RNN改进而来的长短时记忆(Long Short Term Memory, LSTM)网络[23]能够解决RNN的长期依赖和梯度消失问题。图3所示是具有三个门控结构的LSTM网络模型。

图3 LSTM网络模型Fig. 3 Network model of LSTM

LSTM模型中各个门计算如式(2)~(7)所示:

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

(2)

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

(3)

ot=σ(Wo·[ht-1,xt]+bo)

(4)

ht=ot∘tanhct

(5)

(6)

(7)

其中:Wf表示遗忘门连接的权重矩阵,bf表示遗忘门的偏移值,Wi表示输入门连接的权重矩阵,bi表示输入门的偏移值,Wo表示输出门连接的权重矩阵,bo表示输出门的偏移值,“∘”表示两个矩阵元素的相乘。

虽然LSTM解决了梯度消失和长期依赖问题,但LSTM只能学习文本的上文信息,而不能利用文本的下文信息。由于一个词的语义不仅与文本的上文信息有关,还与文本的下文信息密切相关,因此,利用BiLSTM(Bi-directional Long Short Term Memory)[24]代替LSTM,引入下文信息。BiLSTM模型是由两个LSTM网络通过上下叠加构成,如图4所示。

图4 BiLSTM网络模型Fig. 4 Network model of BiLSTM

BiLSTM模型中每一个时刻状态计算如式(8)、(9)所示。输出则由这两个方向的LSTM的状态共同决定,如式(10)所示:

(8)

(9)

(10)

其中:wt表示正向输出的权重矩阵,vt表示反向输出的权重矩阵,bt表示t时刻的偏置。

基于BiLSTM的语言模型结构如图5所示,其中,V(w(i))表示第i个评论文本词汇的词向量,1≤i≤n。

图5 BiLSTM语言模型结构Fig. 5 Language model structure of BiLSTM

假设评论文本W={w(1),w(2),…,w(n)},首先将评论文本W中的词w(i)利用Word2Vec转化为对应的词向量V(w(i)),并将词w(i)组成的句子映射为句子矩阵Sij,其中Sij={V(w(1)),V(w(2)),…,V(w(i))},1≤i≤n。然后利用BiLSTM对句子矩阵Sij进行上下文特征提取,计算方法如式(10)所示,即利用正向的LSTM提取评论文本的上文信息特征,计算方法如式(8)所示,反向LSTM提取评论文本的下文信息特征,计算方法如式(9)所示。

1.4 局部语义特征提取

评论文本由不同的用户书写,用户通过形容词、副词等情感词汇表达其情感倾向。情感词汇或句子间存在一定的层次结构和语义关系,卷积神经网络(Convolutional Neural Network,CNN)[25]可以通过卷积层提取情感词汇所表达的局部语义特征,因此,选用CNN进行文本局部语义特征提取。

用于文本语义提取并进行分类的卷积神经网络模型如图6所示。

假设评论文本W={w(1),w(2),…,w(n)},首先将评论文本W中的词w(i)利用Word2Vec转化为对应的词向量V(w(i)),并将词w(i)组成的句子映射为句子矩阵Sij,其中Sij={V(w(1)),V(w(2)),…,V(w(i))},1≤i≤n。CNN将Sij作为卷积层的输入,该卷积层用大小为r*k的滤波器对句子矩阵Sij进行卷积操作,提取Sij的局部语义特征,计算方法如式(11)所示:

cij=f(F·V(w(i:i+r-1))+b)

(11)

其中:F代表r*k的滤波器,f代表ReLU的非线性转换,V(w(i:i+r-1))代表Sij中从i到i+r-1共r行词向量,b代表偏置量,cij代表CNN提取的由i个词组成的第j个句子的局部语义特征。

图6 CNN提取情感特征模型Fig. 6 Emotional features model extracted by CNN

1.5 局部语义特征提取

文本情感特征提取流程如图7所示。

图7 文本情感提取流程Fig. 7 Flowchart of text sentiment extraction

图7所示流程解释如下。

1)输入层。使用文献[18]中的数据集,对其包含的6个领域的评论文本进行预处理,并将处理后的评论文本进行词汇向量化转化,步骤如下:

a)对评论文本进行预处理操作,具体操作见1.1节。

b)使用Word2Vec对预处理后的评论文本进行文本词汇向量化转化。建立词向量字典,使每一个文本词汇唯一对应一个已训练词向量,其中,词向量维度设置为100。将字典中没有出现的文本词汇的词向量设置为0。

2)嵌入层。将文本词汇中的词向量进行拼接,生成句子级词向量矩阵,生成式如(12)所示:

Sij=V(w(1))⊕V(w(2))⊕…⊕V(w(i))

(12)

其中:w(1),w(2),…,w(i)表示文本词汇;V(w(1)),V(w(2)),…,V(w(i))表示文本词汇对应的词向量;Sij表示由i个词向量拼接成的第j个句子词向量矩阵;⊕表示词向量的拼接操作。

3)BiLSTM。以Embedding层的句子矩阵Sij为BiLSTM层的输入,设置隐层大小为128,激活函数为Sigmoid。将输入序列分别从模型的两个方向输入,通过隐藏层提取文本的上文信息特征和文本的下文信息特征,最后,通过式(13)将两个方向的隐层输出进行拼接:

hijt=BiLSTM(sijt)

(13)

其中:Sijt表示在t时刻输入的第j个句子的i个词向量组成的句子矩阵;hijt表示在t时刻BiLSTM的输出。

4)Conv。使用滤波器为3×100,4×100,5×100各128个CNN提取局部语义特征[11],并通过式(14)进行计算:

oijt=CNN(hijt)

(14)

其中:hijt表示在t时刻BiLSTM的输出,oijt表示t时刻CNN的输出。

CNN中激活函数使用ReLU,步长stride设置为1。利用全局平均池化对卷积层的输出矩阵进行降维,使用Keras中的concatenate()方法对CNN中不同卷积核提取的局部语义特征进行融合,最后使用全连接层进行连接。

5)输出。通过Softmax函数进行文本情感分类,分类函数如式(15)所示:

yi=softmax(widijt+bi)

(15)

其中:wi表示Dense层到输出层的权重系数矩阵,bi表示相应的偏置,dijt表示在t时刻Dense层的输出向量。

2 实验与结果分析

2.1 实验环境

构建操作系统为64位Windows 7,英特尔core i7- 5500u 2.40 GHz双核CPU,8 GB内存,开发环境为Keras,开发工具为JetBrains PyCharm,开发语言为Python的实验环境。

2.2 实验数据集

实验选用文献[15]中的数据集,该数据集包含两万多条中文标注语料,覆盖书店、酒店和电脑商城等6个领域的评论,共21 105条,取6个领域的部分样例如表1所示。

表1 数据集部分样例 Tab. 1 Some examples in the dataset

2.3 评价标准

为验证模型在文本情感分析的性能,使用准确率(Precision)、召回率(Recall)和F-measure[26],计算式如式(16)~(18)所示:

(16)

(17)

(18)

其中:TP(True Positive)表示积极情感预测为积极情感的数量,FP(False Positive)表示消极情感预测为积极情感的数量,FN(False Negative)表示积极情感预测为消极情感的数量。

2.4 超参数选择

由于实验参数的设定对实验结果的影响比较大,实验采用参数固定法,词向量分别取100维、200维;CNN隐层节点数分别取32、64和128;BiLSTM隐层节点数分别取64、128和256,进行多次实验。实验中选用Adam作为优化函数,选用交叉熵作为损失函数。通过对比多次实验的结果,发现当取表2参数时,BiLSTM-CNN串行混合模型的分类效果最好。

表2 模型参数设置 Tab. 2 Model parameter setting

为增强模型泛化能力,在CNN和全连接层之间加入Dropout层,如图8所示,Dropout不同的取值会影响模型输出的准确率,当Dropout取值为50%时,准确率最高。

图8 Dropout曲线Fig. 8 Dropout curve

Word2Vec向量化工具通过设置Window_size的大小来实现文本词汇的语义理解,Window_size过大或过小都会引起文本情感分析效果不佳等问题。通过设置Window_size的大小分别为1,2,…,10进行对比实验,结果如图9所示,当Window_size取值为7时,综合评价指标F1达到全局最优。

图9 Window_size曲线Fig. 9 Window_size curve

2.5 模型性能比较

为验证本文文本情感分析方法的有效性,在相同的实验环境下使用包含6个领域的评论文本作为实验数据。首先,利用Word2Vec向量化工具将评论文本转化成实数向量,其次,分别构造单一的Word2Vec-CNN、Word2Vec-LSTM、Word2Vec-BiLSTM情感分析算法模型以及本文情感分析算法模型,最后,进行实验对比,实验结果如表3所示。

表3 所提模型与单一模型的性能比较 Tab. 3 Comparison of the proposed model and single models in performance

由表3可知,本文文本情感分析算法模型在召回率和综合评价指标F1方面,优于单一的CNN、LSTM和BiLSTM文本情感分析算法模型。在准确率方面,本文的文本情感分析算法模型优于单一的CNN和LSTM文本情感分析算法模型,与单一的BiLSTM文本情感分析算法模型准确率相当,且在综合评价指标F1上,本文文本情感分析模型比单CNN、单LSTM和单BiLSTM文本情感分析模型分别提高了2.02个百分点、1.18个百分点和0.85个百分点。分析其原因,单CNN文本情感分析模型只考虑了局部语义特征对文本情感分析模型的影响,没有考虑评论文本的上下文关系;单LSTM文本情感分析模型只考虑文本的下文信息,没有考虑文本的上文信息以及局部语义特征对文本情感分析的影响;单BiLSTM文本情感分析模型充分考虑了上下文对文本情感分析的影响,但忽略了文本局部语义特征在文本情感分析的重要性。综合考虑文本上下文和局部语义特征对文本情感分析的影响,本文所提的BiLSTM-CNN串行混合模型的文本情感分析算法明显优于其他三种单一的文本情感分析算法。

2.6 同类相关工作对比

在相同的实验环境下,使用包含6个领域的评论文本作为实验数据。首先对数据预处理后的评论文本使用Word2Vec文本词汇向量化工具将评论文本词汇转化成含有语义信息的实数向量;然后将词向量矩阵分别作为LSTM-CNN模型、BiLSTM-CNN并行特征融合模型和本文模型的输入;最后分别按照如下方式构造LSTM-CNN[27]、BiLSTM-CNN并行特征融合模型[28]和本文模型。

1)LSTM-CNN模型[27]:首先采用LSTM提取前向文本特征,然后使用CNN提取局部语义特征,最后由Softmax层对文本进行情感分析。

2)BiLSTM-CNN并行特征融合模型[28]:首先利用BiLSTM和CNN分别提取文本上下文特征和提取局部语义特征,然后将分别提取的上下文特征和局部语义特征进行融合,最后由Softmax层对文本进行情感分析。

3)本文模型:首先使用BiLSTM提取文本上下文特征,然后利用不同卷积核的CNN对已提取的上下文特征进行局部语义特征提取,最后由Softmax对文本进行情感分析。

由表4可知,本文模型在准确率、召回率和综合评价指标F1方面,均优于LSTM-CNN模型和BiLSTM-CNN并行特征融合模型,且本文文本情感分析模型相比LSTM-CNN模型和BiLSTM-CNN并行融合模型在综合评价指标F1上分别提高了1.86和0.76个百分点。分析其原因:LSTM-CNN[27]忽略了文本的上文信息,因此在文本情感分析综合评价指标上表现一般;BiLSTM-CNN并行特征融合模型[28]分别提取了上下文信息和局部语义特征并进行融合,在提取局部语义特征时忽略了上下文信息;而本文模型是先提取评论文本的上下文特征再对已提取的上下文特征使用CNN提取局部语义特征,综合考虑了上下文信息和局部语义特征对文本情感分析的影响,得到了较好的结果。

表4 所提模型与混合模型的性能比较 Tab. 4 Comparison of the proposed model and hybrid models in performance

3 结语

本文提出一种基于BiLSTM-CNN串行混合模型用于文本情感分析研究。该模型充分利用BiLSTM和CNN模型的优势,先使用BiLSTM对文本上下文特征进行提取,再利用不同卷积核的CNN对已提取的上下文信息进行局部语义特征提取,从而能够更好地准确理解评论文本的语义信息。在包含6个领域的评论文本数据集上进行模型的训练和测试,实验结果表明,所提出的基于BiLSTM-CNN串行混合模型能够更加准确地完成文本情感分析任务。

本文只是考虑了积极和消极二元文本情感分析,在接下来的工作中,将考虑多元文本情感分析,得出文本更为丰富的语义信息。

猜你喜欢
语义向量词汇
真实场景水下语义分割方法及数据集
向量的分解
聚焦“向量与三角”创新题
词汇小达人
词汇小达人
向量垂直在解析几何中的应用
词汇小达人
“吃+NP”的语义生成机制研究
向量五种“变身” 玩转圆锥曲线
词汇小达人