中国海洋大学海洋与大气学院 山东青岛 266100
在我们现在所处的信息化时代,网络成为获取信息、发表评论、传播消息的重要媒介。当重大事件发生时,网络中会形成海量信息,进而对事件未来的走向产生影响。因此,对于网络舆情的研究对于各行业有着重大意义,而对网络舆情的文本倾向性分析是网络舆情研究的一个非常重要方面。
一、网络舆情文本的数据预处理
1.1分词标注
当对所获得的文本进行自然语言处理的时候,如果想要很好的理解句子或者文章的意思,词汇是最为基础的部分,因此需要一个工具来把文本进行划分,从一个完整的文本变为粒度更细的词。本文采用的是 jieba,它是一个非常好的中文处理工具,不仅仅能够分词,还具备许多实用而强大的功能。
1.2去停用词
在得到的文本中,有些词语出现频率较高,但并没有提供有效信息,而仅仅是处于语法上的需要,这些词称为停用词。首先需要建立一个停用词表来将可能出现的停用词进行归纳汇总作为一个集合,接下来在去停用词时,就要遍历整个停用词表并把出现在停用词表的单词删除掉。
1.3词频统计
对于分词的词频统计的方法有很多种,包括 TF、DF、TF-IDF 等,本文采用其中常见的 TF-IDF算法进行统计, TF(t)=(t出现在文档中的次数)/(文档的总词语数)。IDF(t)=loge(文档总数/含有 t 的文档数)。TF-IDF=TF*IDF
二、观点情感分析
2.1情感词典扩充
本文的情感词典主要选用了知网情感词库中的部分情感词,具有较高的质量且被引用较多,每个词语有相应的权重。为达到对于舆情信息的识别,本文选用
“情感分析用词语集”中的部分情感词来构建情感词典,各项具体数目如下:
表 2.1知网部分情感词
词语集名词 | 词语(个数) |
“正面情感”词语 | 755 |
“负面情感”词语 | 1218 |
“正面评价”词语 | 3360 |
“负面评价”词语 | 3028 |
2.2ETF 计算
ETF计算是将文本经过 TF-IDF 计算后所得到的关键词再进行情感词的提取,从而得到该文本的情感词,通过对这些情感词在情感词典中的权重的总体计算分析可以表示出该文本的情感倾向。
ETF是衡量一个情感词语在文档中出现的有多频繁。ETF(t)=(t出现在文档中的次数)/(文档的总词语数)。IDF是衡量一个词语有多重要。IDF(t)= 。这里的 t 就代表了情感词在文本中出现的次数了。
ETF-IDF=ETF*IDF
2.3ETF 数据库建立与扩充
将上述经过 ETF计算得到的关键词中的情感词进行收集汇总,可以得到 ETF数据库。在 ETF数据库中,具有文本中能够代表文本特征的情感词,通过这些特征情感词来判断文本的情感倾向性时能够得到一个比较准确的结果。ETF数据库的扩充主要是通过对于微博、微信、论坛等评论文本中的数据进行分析计算,从而增添一些新生的词语或者增加了意义的“旧词”,这些词语很大程度上影响了文本的情感表达,加入这些情感词后更有助于数据库的完备性和准确性。
三、神经网络的建立与训练
3.1 神经网络训练模型构建
神经网络模型是模拟生物中的神经元,是由大量的处理单元互联而成,构建
了一个可以自适应的信息处理系统。本质上它一个从输入到输出的映射,从数学上来讲可以利用神经网络的映射特性来解决非线性问题。因此,在对于求解一些内部机制的复杂问题时,可以通过构建神经网络模型来实现对文本倾向性判断的处理。
神经网络的模型有多种,本文采用发展比较成熟的 BP 神经网络进行模型构建和训练,BP神经网络也称为多层前馈神经网络,其采用的 BP算法(反向传播算法)能够很好地解决隐含层中的对连接权重的计算和误差的补偿。
拓扑结构如下图所示:
图 3.1BP神经网络拓扑结构
在 BP 神经网络结构示意图中,整个神经网络的训练模型可以简单分为输入层、隐含层和输出层三大部分。
输入层是将外界的数据等输入到整个神经网络当中,图中x1,x2,,xN就代
表了输入层。隐含层的作用是处理内部信息,它在进行信息变换的同时将信息记忆下来,神经网络的训练学习过程就是对隐含层的权重进行确定。输出层就是神
经网络最后经过处理后的输出的结果,即为图中的y1,y2,,yN。
BP神经网络具有一个关于误差的“反馈机制”——不仅可以进行信息的正向传播还可以进行误差反向传播。误差的反向传播是指当得到的实际输出与期望输出存在一定差别时,误差可以通过输出层按照梯度下降的方式对之前正向传播所得到的权值进行修正,图中 T为期望输出,Δ为实际输出与期望输出的不同时
产生的误差。
一次正向传播与误差反向传播结合在一起就构成了一次神经网络的学习,经过数次类似的学习,当训练得到的误差降到一定的数值之下或者达到一定的学习次数后,该神经网络的训练可以结束。
图 3.2舆情文本的神经网络模型
(X1, X2,, Xn ) 为输入层,是上文中文本分词统计的 ETF。HOi是隐含层输
出,(W,W
O1O2
,,W
On
) 是隐含层中每个情感词的倾向度权重,也是我们通过神
经网络的主要学习和训练最终需要得到的部分。YO是输出层的输出值。HOi和YO满足:
以及(3-1)
式中 fx为激活函数; b和b分别为隐含层和输出层的阈值。
ho
3.3神经网络参数确定
3.3.1激活函数
标准神经网络的激活函数可以表示为:
(3-2)
图 3.3标准激活函数
激活函数是一个“S”型函数,它是将输入-,映射到输出(0,1)上去的,为得到一个关于原点中心对称的升函数,需要进行相应的变换。经变换使用的激活函数为:
(3-3)
b 是一个定常数,取值的大小由具体的样本情况确定。
在对于本文实验的文本分词并统计 ETF 值后,将 b 由 2 到 17 进行不断的变化,对于变化中不同的结果进行统计,发现当 b 取 3≤b≤7 区间内的值时,结果最好,故可以选取 b=3。从而得到激活函数的图像,如图所示:
图 3.4激活函数
5.3.2阈值
阈值是神经网络一个重要参数,它可以是一个固定值,也可以随着其他参数或输入值等条件变化。阈值是在误差反向传回隐含层改变权值的同时发生改变。在文本的实验中,我们将隐含层及输出层的阈值均固定设为 0。
5.3.3倾向词的初始权重的选取1)获取基本情感词
从知网中获得需要的基本的情感词,经过进一步筛选和分析后,共计获得3730 个正面情感词以及 3116 个负面情感词。总共 6846 个情感词。
2)选取种子词
随机选取15%的情感词作为种子词
3)根据选取的种子词来进行情感词倾向度计算
计算公式为:
5-4
式中的 Key_pi(Key_ni) 表示第 i 个正面(或负面)的种子词,w 表示隐含层中待求倾向度的情感词权重,Similarity(Key, w) 为由知网计算出来的Key 与 w之间的相关度。
4)合并处理获得情感词表
经过步骤 3 我们可以抽取得到符合需求的负面情感词 2907 个,正面情
感词 3292 个。共计 6199 个情感词。
此时,得到的情感词表还存在一些问题,必须分析处理。主要有 3 个:一是对情感词权重的归一化;二是对于经知网计算后得到的结果存在较大误差的权重进行处理和重新赋值(如情感词的计算权重与其实际情感倾向相反时);三是对计算的结果整体存在不同程度的偏移情况进行修正。
相应处理如下:
分别对所有正面(负面)情感词中大于(小于)0 的权重取平均,再将这两个平均值再求平均,这就是所说的偏移值。然后把所有情感词的权重均减去这个偏移值,构成一个权重列表。记为权重列表 A。
对权重列表 A 中的情感词权重线性变换:
式中 K’表示变换后的权重,K 为其在权重列表 A 中的权重,Kmin、Kmax分别为权重列表 A 中最小权重值和最大权重值。
最后,我们对那些经过计算后误差较大的情感词权重重新进行赋默认值。把情感词权重不合理的赋默认值正面 0.1 或负面-0.1。
至此得到隐含层到输出层的对应权重值,它们就是情感词的初始权重。
四、神经网络的测试及误差分析
4.1测试集的制定
在神经网络经过学习训练后,再输入新样本时,会形成称为“泛化误差”的误差。泛化误差是训练的“太过”或“不及”。这两种情况称为过拟合和欠拟合,这两种情况都不能对新样本作出准确的判断,因此,需要对模型的泛化误差进行评估。本文在此采用“留出法”COAE2014(中文观点倾向性分析评测)数据集中部分文本数据来构成我们的训练集和测试集,选用训练数据共计2174条,包括了 1003 条正面情感文本和 1171 条负面情感文本。测试数据则包括了三个话题共 7000 条,包括正面情感 3776 条,负面情感 3221 条。
4.2神经网络预测与实验
对于文本倾向性判断可归为一个二分类问题,将样本根据真实类别和神经网络预测类别的组合划分为四种:真正面、假正面、真负面、假负面,分别对应表示为 TP、FP、TN、FN。
表 4.1真实值与预测值组合
真实情况 | 预测结果 | |
正面 | 负面 | |
正面 | TP | FN |
负面 | FP | TN |
其中可以看出 TP+FP+FN+TN=全部样本数
由此,可以通过对于结果的查准率和查全率来进一步研究文本分析的结果,查准率 P 和查全率 R 可以分别表示为:
PTPTPFP
或
RTPTPFN
PFPTPFP
RFPFPTN
4.3准确率与误差分析
为研究神经网络一般情况下泛化性能,我们采用 ROC 曲线来对样本进行分析。ROC 是“受试者工作特征”,在 ROC 图像中将“真正面率”(TPR)和“假
正面率”(FPR)分别作为纵轴和横轴。两者分别定义为:
TPRTP
TPFN
FPRFP
TNFP
图 6.1ROC曲线
通过 ROC 曲线下方的面积大小,我们称之为 AUC,可以来判断实验结果的精度,越是趋近于 1,说明构建的模型精度越高。从图中可以看出,训练集和测试
集的 AUC值分别为 0.851 和 0.833,达到了比较符合要求的理想效果。