APP下载

混合神经网络和条件随机场相结合的文本情感分析

2021-07-05翟学明魏巍

智能系统学报 2021年2期
关键词:分类器向量概率

翟学明,魏巍

(华北电力大学 控制与计算机工程学院,河北 保定 071003)

人的发展与沟通密不可分。有研究表明,人类的理性学习依赖于情绪[1]。随着互联网的兴起,人们开始习惯在网上交流,发表自己对某件事情的看法,网络的保护让人们更加真实地表达自己的情感。因此,分析这些包含用户情感信息的观点对于舆情监控、营销策略等方面具有非常良好的效果。情感分析,又名意见挖掘、观点分析等,它是通过计算机来帮助人们访问和组织在线意见,分析、处理、总结和推理主观文本的过程[2]。

在情感分析研究中最重要的就是情感分类技术。情感分类主要是针对文本中表达的情感进行识别和分类,如积极、消极等,进而得到潜在的信息。目前研究较多的情感分类技术主要分为以下3种:第1种是基于情感词典的方法[3]。基于情感词典的方法主要是将文档中的句子,找出不同词性的词并计算其相应得分。这种方法过于依赖情感词典,具有严重的领域特征,效果并不理想[4];第2种是基于人工提取特征分类的方法。基于人工提取特征分类的方法是一种传统机器学习的方法,该方法需要大量已经被事先标注好的数据,然后再利用支持向量机[5]、朴素贝叶斯、条件随机场等机器学习算法进行情感分类。其中,条件随机场是一种判别式概率学习模型,在序列标注、命名实体识别、中文分词等方面都具有很好的效果;第3种方法,即基于深度学习的方法[6]。深度学习模型在不需要人工标注的前提下,能够充分挖掘文本的情感信息,得到良好的分类效果。

卷积神经网络(CNN)最初广泛应用于数字图像处理领域,并迅速应用于情感分析。Collobert等[7]首次提出将CNN用于解决NLP词性标注等问题。Kim[8]提出将CNN应用于情感分析任务并取得了良好的效果。随着CNN在情感分类上的广泛应用,其缺陷也越来越明显。CNN只能挖掘文本的局部信息,对于长距离依赖的捕捉效果有所欠缺。而循环神经网络(RNN)弥补了这方面的不足[9]。RNN相较于CNN具有记忆功能,能够实现在序列化数据中捕捉动态信息,在情感分类任务中取得了良好的效果。Tang等[10]对篇章级文本进行建模,提出了一种层次化RNN模型。RNN虽然适用于上下文处理,但在处理长距离依赖问题的情况下,会产生梯度爆炸的情况。针对此问题,Hochreiter等[11]提出了LSTM模型,对RNN的内部构造进行了优化。Zhu等[12]利用LSTM对文本进行建模,将其划分为词序列,进而进行情感分类。传统的LSTM只能有效地使用上文信息,忽略了向下的信息,这在一定程度上影响了情感分类的准确性。白静等[13]利用了Bi-LSTM进行建模,将词向量分别通过Bi-LSTM与CNN,最后再融合注意力机制,取得了更好的效果,但也存在计算复杂度过大的不足。为了减少计算量,结构简单的GRU被人们提出。刘洋[14]提出将GRU应用于时间序列任务并取得了良好的效果。

以上学者在情感分析问题上已经认识到模型在训练上存在的时间长,数据量大,上下文信息获取距离短的局限并做出了改进,但是并没有突破深度学习的限制。针对上面发现的问题,本文提出了一种混合神经网络和CRF相结合的情感分析模型。本文提出的模型综合考虑篇章中句子的上下文语境,在保留语序的同时更快更充分地获取语义信息。本文模型将一段文本按照句子划分为不同的区域,利用CNN与Bi-GRU以并行训练的方式从句子中获取更多的语义信息和结构特征。同时,采用条件随机场作为分类器,计算整个文本的情感概率分布,从而达到预测情感类别的目的。

1 情感分析过程

情感分析早在2000年初就已经成为NLP领域的热门研究领域[15]。情感分析问题是一个多层面的问题,具有一定的复杂性,它包含很多相互关联的上下文关系。在同一句中,文章中表达的情感类别可能与仅由句子表达的情感类别有很大不同。传统情感分析的过程如图1所示。

图 1 情感分析过程图Fig. 1 Process diagram of sentiment analysis

情感分析主要应用于对文本评论或观点的处理,评论文本具有篇幅较短、文本格式不规范等问题。例如其中的标点符号、网络流行语和用户昵称等内容都会给情感分析任务带来困难。因此,情感分析首先要减少文本的噪音,对其进行预处理。本文采用中国科学院计算技术研究所开发的汉语分词系统NLPIR对评论文本进行分词[16],继而主要针对标点符号和用户昵称等字符串进行去除噪声处理。词语的向量表示是指从词语到实数维向量空间的复杂映射。目前,比较常见的单词向量训练模型有CBOW模型和Skip-gram模型,这两个模型在结构上是相似的。Mikolov等[17]针对这两种词向量提取的方法进行了深刻的分析,指出了其预测范围受限的不足。

本文将语言模型和情感分析模型联合训练,通过语言模型获取语义信息,利用混合神经网络作为语言模型对分词后的文本进行向量表示和特征提取,对每一个经过混合神经网络的输出特征实行打分制。这种方法使训练模型不再依赖词向量训练模型,而是一个端到端的整体过程,是一种数据驱动的方法,具有更高的准确性。

2 混合神经网络和条件随机场相结合的文本情感分析模型

现有文本情感分析研究工作大多存在模型训练时间长,上下文信息学习不充分的问题,本文提出将混合神经网络与条件随机场相结合,首先利用混合神经网络获取文本的特征信息,再将其输入到条件随机场分类器中。本文模型获取到的特征更充分,训练速度也比以往模型更快,具有更好的分类效果。

本文将进行分词后的句子的离散one-hot表示映射到低维空间形成稠密的词向量,低维词向量作为模型的输入,进行卷积池化后,在输出端融入低维词向量经过Bi-GRU神经网络学习到的结构特征。模型将分别通过混合神经网络得到的句子的特征表示拼接在一起,对每一个经过混合神经网络的输出特征进行打分。针对词语在混合神经网络模型中生成的标签可能存在的非法序列从而导致数据失效的问题,本文在混合神经网络模型接入CRF层,将得分输出特征作为 CRF的发射概率,并使用维特比算法获得概率最高的情绪类别。本文过程的示意图如图2所示。

图 2 基本过程示意Fig. 2 Schematic diagram of basic process

2.1 混合神经网络的建立

混合神经网络的构造如图3所示,本文模型将一段文本按照句子划分为不同的区域,以每个区域的低维词向量作为输入。低维词向量分别经过两种神经网络,经过CNN输出的句子特征为fc, 经过Bi-GRU输出的句子特征为fg,将fc与fg拼接起来并经过Softmax函数后的特征向量S′进行打分,作为CRF分类器的输入。

本文的思路是将一段文本按照句子划分为不同的区域,将每个句子的低维词向量作为模型的输入,通过CNN模型进行卷积池化再输出。

词向量映射层:假设区域中词语的个数为M,每个词向量有k维特征,则所有词向量都在区域矩 阵V∈Rk×M中。

图 3 混合神经网络结构Fig. 3 Structure diagram of Hybrid neural network

卷积层:每个区域ri可以表示为矩阵,然后使用过滤器D进行卷积以学习Ngram特征。过滤器Fd(1≤d≤D)在每个窗口卷积后获得映射值,即

常用的激活函数有Relu函数、Tanh函数和Sigmoid函数。由于不同的功能特性,Sigmoid和Tanh函数在接近饱和区域时倾向于梯度消失,从而减慢收敛速度。为了增强网络适应和加速收敛的能力,该模型应用ReLU激活函数。滤波器逐渐遍历,可以得到输出矩阵:

不同区域的文本长度不同,对应的yd的维度也不同。因此,本文将语料库中CNN输入最大长度设为N。当输入长度小于N时,将添加几个分布均匀的随机向量U(-0.25, 0.25)。

池化层:本文中Max-pooling操作的优点是Max-pooling可以全局过滤文本特征,减少参数数量,过滤噪声,减少信息冗余,并有效地减少过度拟合的问题。其次,Max-pooling还可以提取不同区域内的局部依赖关系,保留最显著的信息。通过pooling操作,每个过滤器可以取一个值,池化层最终产生的文本向量特征为fc,,作为下一层的输入。

在本文中卷积神经网络的池化策略为Maxpooling,对特征具有旋转不变性。然而对于情感分类任务,特征的位置信息至关重要,Max-pooling却将其丢弃。为了弥补这个不足,本文引入双向GRU神经网络(Bi-GRU)作为词向量的另一种特征提取方式来对CNN的结果进行补充。

Bi-GRU是GRU的改进,它可以在前后方向同时获取上下文信息,相比GRU能够获得更高的准确率。不仅如此,Bi-GRU还具有复杂度低,对字向量依赖性低,响应时间快的优点。在Bi-GRU结构中,在每个训练序列之前和之后都存在循环神经网络。在t时刻,Bi-GRU单元激活值ht同时受到t-1时刻激活值ht-1,候选激活值ht和更新门z的控制。其计算方式如式(3)、(4),⊙ 表示元素相乘:

对于序列“我很开心”,使用Bi-GRU进行特征 获取的具体过程如图4所示。

图 4 Bi-GRU获取特征过程Fig. 4 Process diagram of Bi-GRU obtain feature

在本文中,fc与fg采用 Concatenate方式对句子的特征进行融合处理,Concatenate方法可以将不同的神经网络结构生成的句向量进行拼接,获得的特征向量S′用作生成CRF分类器的发射概率的基础。

S′进行线性变换后,得到对应词语所属情感类别的分数k:

式中:U为权值矩阵,b为偏置量。当前词语所属情感类别的得分为k1k2···km。k的维度为m,m代表情感的分类数。

将对应词语所属情感类别的分数k输入Softmax函数中,针对文本中的大量词汇导致的向量维度过高,计算量大的问题,本文采用噪声对比估计[18]方法对Softmax函数进行最大似然估计,运用基于采样的原理使模型得到有效训练,目标是使正样本概率达到最大值的同时让负样本的概率尽可能的小。本文双向网络的损失函数定义为

其中文本wt的词向量表示为vwt。在本文中,从维度为V的负样本集合N中,收集单个单词作为负样例。

则情感类别的分数输入Softmax函数后得到概率为

式中:yi代表当前序列的情感类别为第i维,yi的默认值为1。当yi不符合条件时,yi默认值为0。pw即为CRF分类器的发射概率。

2.2 CRF分类器模型

CRF分类器模型和神经网络分类器模型各自具有优点和不足。CRF模型需要人工提前对语料信息进行标注,手动设计词的词性、程度等特征,而神经网络模型可以学习训练数据自动生成特征向量,取得更好的效果[19]。但是,神经网络模型往往需要更长的训练时间,且神经网络模型的有些输出在命名实体识别上是不合法的,因此有必要使用 CRF随后将命名实体的规则添加到序列标记过程中。本文根据CRF与神经网络模型各自的特点进行组合,得到在性能上更具优势的联合模型[20]。

CRF模型的学习与预测是在样本的多个特征上进行的。CRF模型本身可以生成特征向量并进行分类,本文使用混合神经网络提取的特征作为中间量,替换原公式中的向量值。

CRF分类器模型中的发射概率是指序列中的单词属于每个情感分类的概率,即为pw。转移概率是从标签类到相邻标签类的概率。传统CRF分类器的发射概率是根据特征模版生成的,但是本文为了获得更好的上下文信息,使用混合神经网络自动获取的特征作为发射概率。本文CRF分类器模型发射概率计算公式为

可以获得单词的发射概率乘以转移概率的概率。计算公式如下:

其中 Φ (ywt-1,ywt) 表示从ywt-1到ywt情感类别标识 概率的查找。CRF模型选择结果序列中概率最高的类别作为最终标记结果。CRF模型训练的目标是使预测序列的概率尽量接近目标序列的概率,两个概率之间的差值称为损失值,计算公式如下:

式中:m ax(ptw) 为预测序列中最大概率值;ytw为目标序列的概率值。CRF模型的输出用于通过维特比算法找到具有最高概率的情绪类别,然后判断 整个章节的情绪。

3 实验与分析

3.1 实验数据集

本文选用NLPCC(natural language processing and Chinese computing),即自然语言处理及中文计算会议中公开的2014年任务2中的中文文本作为数据集,来验证本文模型的有效性。该数据集以商品的评价为主,文本长度适中。为了更好地对比训练模型的分类效果,实验将数据集按照8∶2的比例分为训练集和测试集。通过进行多次重复实验,选用实验的平均值作为最终结果,以此评估模型的性能。数据集的详细信息如表1所示。

表 1 实验数据信息Table 1 Experimental data information

由于本文采用的数据集主要是商品评论,评论文本具有篇幅较短、文本格式不规范等问题。例如其中的标点符号、网络流行语和用户昵称等内容都会给情感分析任务带来困难。为了有效减少噪音,首先需要对文本进行预处理。本文采用中国科学院计算技术研究所开发的汉语分词系统NLPIR对评论文本进行分词,继而主要针对标点符号和用户昵称等字符串进行去除噪声处理。词语的向量表示是指从词语到实数维向量空间的复杂映射,本文将进行分词后的句子的离散onehot表示映射到低维空间形成稠密的词向量,得到文本的词向量映射,进而输入本文模型进行进一步的特征提取和情感分类工作。

3.2 评价指标

本文选择准确率A、召回率R和F值来当作本文实验的评价指标。准确率A表示对测试集进行分类后,在某个类别中被正确分类的比例。召回率R代表分类后正确判断某个类别的个数占其所有正确数目的比例。F值是一个根据准确率A与召回率R得到的加权调和平均数,通常被用来综合评定模型的性能优劣。每个评价指标的计算方式如下:

表2是根据分类结果建立的判别混淆矩阵,介绍了上述评价指标中各个字母所代表的含义。

表 2 分类判别混淆矩阵Table 2 Classification discrimination confusion matrix

3.3 实验参数

本文实验运行环境为Win10系统、8 GB内存,本文底层采用TensorFlow架构,使用Keras来搭建深度学习网络模型,上层采用JetBrains PyCharm软件。网络模型所使用的激活函数为ReLU,采用Adam作为梯度更新方法,学习率设为0.05。

由于神经网络模型的迭代次数对于实验结果的影响比较大,迭代次数越大,模型的拟合程度越好,进而会导致模型的过拟合问题。因此,本文对迭代次数进行了单因子变量实验。如图5所示,当迭代次数为30时,训练集和测试集的数据上F值都处于一个较高的水平。因此本文实验迭代次数设为30,同时将Dropout的参数设为0.5以防止过拟合。

图 5 基于迭代次数的F值的变化趋势Fig. 5 Trends in F values based on iterations

词向量维度是实验的一个重要参数,维度的高低会影响模型中参数的数目。维度过高,容易导致过拟合,达不到预期的效果。维度过低,难以包含所需要的全部信息。本实验采用单因子变量法确定词向量维度的最优值,实验结果如图6所示,词向量维度初始值从30开始,并不断增加。在单一变量的情况下,词向量维度在80的时候F值达到最优值。因此在神经网络训练过程中,选用80作为词向量维度的设定值。本文模型训练的参数和函数设置如表3所示。

图 6 基于词向量维度的F值的变化趋势Fig. 6 Trends in F values based on word vector dimensions

表 3 实验参数设置Table 3 Experimental parameter settings

3.4 实验结果及对比分析

为了证明本文提出模型的有效性,将本文模型分别与CNN、Bi-GRU、CRF、CNN+Bi-GRU、Bi-GRU+CRF等模型做对比实验,进行情感分析的性能对比。

CNN:将词向量作为输入在CNN中进行分类。

Bi-GRU:将词向量作为输入在双向门控循环单元中进行分类。

CRF:将词向量输入到条件随机场中进行分类。

CNN+Bi-GRU:将CNN与Bi-GRU采用联合训练的方式,词向量分别输入两种神经网络中,得到的输出进行特征融合,利用Softmax进行分类。

Bi-GRU+CRF:将Bi-GRU模型与CRF模型以链式方式进行组合,将训练好的词向量作为Bi-GRU模型的输入,其输出作为CRF模型的输入,最终输出情感分析结果。

C-BG+CRF:本文提出的混合神经网络与条件随机场相结合的情感分析模型。

实验结果如图7,对比发现,CRF单模型和神经网络模型相比,其分类的准确率和F值较低,证明了传统机器学习方法在情感分析中的表现与深度学习确实存在差距。本文模型的收敛速度跟CRF单模型差距不大,且在准确率和F值等指标上均优于其他模型,证明了本文模型的有效性。

图 7 6种模型F值比较Fig. 7 Comparison of F value in six models

对比实验的测试结果如表4所示。本文模型与CNN单模型、Bi-GRU单模型和CRF单模型相比在准确率、召回率和F值等指标上均表现出了良好的优越性。实验说明本文模型与单个模型相比,在情感分析任务上确实具有更好的效果。

表 4 不同模型的测试结果Table 4 Test results of different models

本文模型与CNN+BiGRU模型进行对比,分类效果有所提升。因为本文模型采用CRF作为分类器而不是Softmax函数,对异常标签的处理具有更好的准确性,可以有效地促进情感分类器性能上的提升。本文模型与BiGRU+CRF模型相比在F值上有所提升,同时收敛速度加快。两种神经网络共同训练得到的特征比单一网络更加充分,在准确率上有所提升。实验说明本文模型与融合模型相比,在情感分析任务上确实具有更好的效果。

4 结束语

本文针对篇章级的文本进行了分析,提出一种混合神经网络和CRF相结合的情感分析模型。将一段文本按照句子划分为不同的区域,结合了CNN与Bi-GRU两种神经网络获得的语义信息和结构特征。同时,将分别通过神经网络得到的句子的向量表示拼接在一起,采用条件随机场模型作为分类器。本文模型充分考虑了上下文信息,使学习到的特征更加丰富。在NLPCC 2014数据集上进行训练和测试,总体上看,证明了本文的方法能够有效地对篇章级文本进行情感分类,取得了良好的效果。下一步考虑在词向量中融入主题词信息,从而更好地针对篇章中多主题进行文本情感分析任务。

猜你喜欢

分类器向量概率
第6讲 “统计与概率”复习精讲
向量的分解
第6讲 “统计与概率”复习精讲
概率与统计(一)
概率与统计(二)
聚焦“向量与三角”创新题
加权空-谱与最近邻分类器相结合的高光谱图像分类
结合模糊(C+P)均值聚类和SP-V-支持向量机的TSK分类器
向量垂直在解析几何中的应用
向量五种“变身” 玩转圆锥曲线