面向Twitter情感分析的文本预处理方法研究

2019-05-05 08:38王永昌朱立谷
关键词:集上贝叶斯预处理

王永昌,朱立谷

(1.中国传媒大学 计算机与网络空间安全学院,北京 100024;2.石家庄学院,石家庄 050000)

1 引言

随着Web 2.0时代的到来,网民已经成为活跃的内容提供者。用户是任何组织的中心焦点,基于用户数据的大数据分析在预测正确策略方面非常重要。因此对于社交网络用户数据的研究是当今时代的趋势之一。社交媒体进一步加速了这一巨大转变,并为他们的用户配备工具和数字资源,帮助他们产生创造性和生动的内容。了解用户生成的内容是舆情分析和舆情监测的重要组成部分。

在流行的社交门户网站中,Twitter一直是吸引众多研究者关注的热点,如预测民主选举事件、消费品牌、电影票房、股票市场、名人知名度等。Twitter拥有超过313百万个月活跃用户,每天有超过5亿条推特,已经成为一个组织和个人的金矿,在维护和增强他们的声誉方面有很强的社会、政治或经济利益的影响力。情感分析为这些组织提供了实时监控不同社交媒体站点的能力。情感分析是自动检测文本分段是否包含情感或自定内容的过程,它还可以确定文本的极性。目前的方法使用文字的字面意义来分类成正或负,从而执行情感分析。理解情感分析的目标和相对意义是很重要的。例如,“乔布斯是不可预测的”,当“乔布斯”是一部电影时,它会被认为是一种积极的情感,如果“乔布斯”是一个人的名字,那么它不一定是真的。Twitter实体分类旨在将Twitter的情感极性归类为正、负或中性。Twitter通常由不完整、嘈杂、结构不好的句子、不规则的表达、不完善的词和非词典术语组成。在特征选择之前,应用一系列预处理(例如,去除停止词、移除URL、替换否定)来减少噪声量。在现有方法中广泛地进行情感分析的研究主要集中在新情感特征的提取上,特别是基于机器学习的方法[1-4]。然而,很少有研究关注预处理方法对Twitter实体分析性能的影响,本文重点研究了提高Twitter情感分析性能的各种预处理方法。

本文分析了各种预处理方法对情感分类的影响,包括基于支持向量机(SVM)、朴素贝叶斯、最大熵和基于人工神经网络的监督分类方法。我们使用四种经典分类模型和基于Mapreduce的分布式分类模型来识别Twitter数据集上的情感极性。实验结果表明,我们提出的方法在经过模型参数调优之后,分类性能得到改善,在保证分类性能的同时也提高了效率。本文的第一节对Twitter情感分析进行了简单介绍。第二节中讨论相关研究和背景。第三节提出了一种新的方法,并利用Twitter数据上进行特征与情感分析。第四节给出了评价方法及实验结果分析。最后,在第五节中进行了总结与讨论。

2 相关工作和背景

文本预处理可以减少文本中的噪声,有助于提高分类器的性能,加快分类过程。为了识别Twitter的情感极性,大多数现有的方法应用文本预处理(例如,POS,去除URL,扩展缩写词,替换否定提及,堵塞,去除停止词)以减少推文中的噪声量。典型的Twitter数据预处理流程如图1所示。Marko[5]探讨文本预处理在电影评论情感分析中的作用。实验结果表明,在预处理后,情感特征的准确度可以通过适当的特征和表示得到显著的改善。Pang[6]研究了不同的停止词去除方法对推特的极性分类的影响以及删除停止词是否影响Twitter情感分类的性能。他们将六种不同的停止词识别方法应用到六个不同的Twitter数据集上,并进行了观察。如何去除停止词影响两种监督情绪分类方法。他们通过观察涨落对数据稀疏程度、分类特征的步长大小及其分类性能的影响来评估去停词的影响。使用预编译的停止词列表对Twitter情感分类方法的性能产生负面影响。Adam[7]发现预处理导致原始特征空间的显著性降低。经过预处理后,词汇量减少了62%。然而,他们没有讨论对Twitter情感分类的性能的影响。Bakliwal[8]探讨了预处理方法对Twitter情感分类的影响。他们评估了URL、否定、重复字母、词干和词缀化的影响。在斯坦福Twitter情感数据集上的实验结果表明,当URL特征保留、否定变换和重复字母归一化被采用时,情感分类准确度增加,但是当应用词干和去词法化时,情感分类精度降低。Saif[9]评估了二进制Twitter情感分类任务中URL、停止词、重复字母、否定、首字母缩略词和数字的准确性。实验表明,情感分类的准确度在扩展缩写词和替换否定词后有所提高,但在删除URL、删除号和移除停止词时几乎没有变化。

图1 Twitter数据预处理流程

一些研究者利用机器学习算法在社会网络分析和情感分析方面进行了研究工作并取得了良好的效果,常用的分类算法包括下列几种:

1)朴素贝叶斯:朴素贝叶斯是一种简单的基于贝叶斯规则的概率模型,它具有独立的特征选择能力,在文本分类中有很好的应用[10]。朴素贝叶斯并不限制要处理的类或属性的数量。渐近朴素贝叶斯是训练阶段最快的学习算法。本文利用多项式朴素贝叶斯模型[11]。类C *被分配给推特d,如公式1和公式2所示:

C *=argMaxCPNB(C|D)

(1)

(2)

其中,f代表一个特征,ni(d)代表在twitter d中发现的特征f的数量,n表示总特征的数目。参数P(C)和P(f|c)是通过极大似然估计获得的[12]。为了处理在训练阶段遇到的未知单词,我们使用K=1的拉普拉斯平滑算法来分配相等的概率。

2)最大熵:最大熵分类(Maximum Entropy,简称ME)是另一种在许多自然语言处理应用中被证明是成功的方法。ME在标准文本分类中有时优于朴素贝叶斯,但这种现象并非在所有情况下都成立。ME提供了满足给定约束的统一分类模型[13]。该模型表示如下:

(3)

其中,c是一个类,d是一个Twitter,λ是权重向量,Z(d)是一个归一化函数,f(i,c)是具有特征fi的类C的特征函数,定义如下所示:

(4)

在实验中我们使用高斯迭代十次迭代来获得足够的权重精度。

3)支持向量机

支持向量机(SVM)在文本分类领域中被证明具有很高的效率,并且通常比朴素贝叶斯分类器提供更好的准确度。支持向量机遵循着求给定数据的最大超平面的思想。

支持向量机最初是针对线性可分情况下的二类模式分类问题而提出的。给定训练样本集T={(x1,y1),,,(x2,y2)},其中Xi∈Rn,yi∈ {-1,1}是类标,问题归结为求一个能把两类数据点分开的线性决策函数f(x)=〈w.x〉+b,其中Xi∈Rn,b∈R,在满足约束yi[〈w.xi〉+b]>=±1的前提下最大化间隔,如图2所示。

图2 最大间隔超平面示意图

我们使用带有线性核函数的NLTK -SVM API,所有参数设置为默认值。我们使用输入数据作为大小m的向量集合。向量中的每个记录表示一个特征。以单词特征提取器为例,在推特中的单词被认为是一个特征。如果该特征存在,则值为1,否则值为0。为了避免数据缩放和提高整体速度,我们使用特征表现,而不是使用特征计数。

4)人工神经网络:人工神经网络依赖于从输入数据的线性组合导出特征的思想,并将输出建模为这些特征的非线性函数[14]。这导致了人工神经网络成为机器学习系统中最流行和最有效的形式之一。我们采用前馈神经网络来提高其先进的学习能力。在各种前馈网络中,BPN被认为是最好的,它仍然是最有用的网络之一。经验表明隐藏层一般是一个或两个。

由后向传播训练的前馈网络算法如算法1所示。

算法1 由后向传播训练的前馈网络算法

我们实现了神经网络的所有优化设置、隐神经元数目、系统学习率等,并从输出层实现正负值的输出项。

虽然上述这些方法在分类准确性方面是令人满意的,但未考虑扩展目标以及算法效率,缺乏文本预处理对Twitter情感分类影响的正确而深入的分析。针对这一差距,本文重点研究了文本预处理在不同类型特征和机器学习分类上对两类分类任务中的Twitter数据集的影响,并提出了带有MPCA的SVM的文本分类模型。

3 带有MPCA(基于Mapreduce的PCA算法)的SVM模型

为了处理维数灾难,我们需要对数据进行降维。降维实质上是从给定值n维数据集x中选择m个特征。我们使用Python的NoMAPI提供的默认参数。将PCA应用于混合特征抽取器的特征向量,并将简化的数据集作为训练集提供给支持向量机。

主成分分析(PCA)的核心思想是减少由大量相关变量组成的数据集的维数,同时尽可能地保留数据集中存在的变量[15]。这是通过将原始数据转换成一组新的变量,即主成分来实现的,这些变量是不相关的并且是有序的,以便前几个特征向量保留了所有原始变量中的大部分变化。PCA的计算过程如算法2所示:

算法2 主成分分析(PCA)算法

对于大集合的数据集,PCA算法在某些情况下变得难以处理。而MapReduce是用于大数据处理的编程模型。在MapReduce模型中,底层的运行时系统在机大规模集群上进行自动的并行计算。通常情况下,基于MapReduce的计算包含两个主要阶段:map阶段和reduce阶段,对应于map函数和reduce函数。在第一阶段中,输入数据由map函数处理,产生一些中间结果在第二阶段中作为reduce函数的输入。用户只需要在map函数和reduce函数中设计计算方法,而不必关心它们之间的通信细节。

我们知道,矩阵相乘是可以并行执行的,所以我们开发了一个基于MapReduce的分布式PCA算法,我们称之为MPCA。

该算法的详细描述如算法3所示。

为了减少原始特征空间的维数,PCA被用于寻找投影方向,这是最小均方误差对原始数据的最有效表示。定义FC={FC1,FCN2,…,FCN}为特征矩阵,其中N是目标数据集上的样本数。协方差矩阵C定义为

C(x)=φ(x)*φT(x)

(5)

其中φ(x)表示数据的原始矩阵,φT(x)表示原矩阵的转置。协方差矩阵C利用均值偏差对训练域和测试域进行数据归一化。投影权重可以通过协方差矩阵奇异值分解(SVD)得到一个正交特征向量矩阵,并且是一个具有特征值的对角矩阵。将特征值按降序排序以选择主成分。

算法3 基于Mapreduce的PCA算法(MPCA)

支持向量机可以在任务转移过程中实现全局优化,提高数据分类的准确性。

本算法流程就是用主成分分析(PCA)对数据集进行降维,得到数据的特征向量。对于任意一个样本数据,将样本数据向特征向量投影,得到的投影系数作为样本的特征表示。使用支持向量机(SVM)对这些不同的投影系数向量分类,来进行分类识别,经过mapreduce排序得到主成分特征,并由SVM实现最终分类。该算法的算法模型如图3所示。

图3 基于Mapreduce 的PCA-SVM模型

为了简化PCA的排序工作,我们实现了基于Mapreduce的矩阵运算,如图3所示的主成分因子。它可以逆转原始归一化系数ω。随后,我们可以计算系数向量ω和原始归一化索引向量的内积,用g(x)表示,其中x表示归一化原始索引数据下的正索引。在此之后,我们只需要使用Mapreduce计算归一化的原始索引值及其系数的内积以获得g(x),这大大简化了排序任务。

4 实验及结果分析

4.1 实验结果评价标准

文本分类器的性能评价主要是通过语料库上的具体实验结果来评判。常用的分类器性能评价的指标有:准确率、召回率和F-measure值。

准确率和召回率这两个指标是文本分类中使用最广泛的评价指标[16]。精确率(Precision)是指在分类器判为该类的样本中,真正属于该类的样本所占的比例,考查的是分类的正确性;召回率(Recall)指分类器正确判断为该类的样本数与属于该类的样本总数之比,主要是考查分类的完备性。对于文档类中的每一个类别,使用列联表来计算准确率和召回率。表1为一个列联表示。

表1 二值分类连列表

于是,准确率和召回率分别定义为:

(6)

(7)

准确率和召回率不是独立的,它们经常是此消彼长的关系,即通常为了获得比较高的召回率,准确率会下降;反之亦然。所以单独评价很多时候并不能真正说明一种方法的分类性能。Van Rijsbergen提出的F-measure值综合考虑召回率和准确率来对分类器进行整体评价。其中最常用的是F1指标,其公式为:

(8)

4.2 实验环境

本实验的硬件环境是一台计算机,其CPU为Intel Core i7-4510@2.60GHZ,内存为8GB,硬盘容量为2T。软件环境包括Win10专业版操作系统和开源软件WEKA以及Hadoop。WEKA和Hadoop都是免费的,非商业的,用Java编写的开源软件,WEKA可用于机器学习和数据挖掘算法调试,而Hadoop则用于开发基于Mapreduce 的分布式应用。在我们的实验中,我们使用WEKA3.7.12以及Hadoop2.6。

4.3 实验数据集

在不同的上下文中,预处理可能有不同的影响。本文研究了预处理对情感分析使用的不同Twitter数据集的影响。SGHT-Twitter情感测试(STS测试)数据集由GO等人引入,它已被手动注释并包含177个负值、182个正值和139个中性推文。虽然StanfordTwitter测试集相对较小,但它已被广泛应用于针对不同的评估任务。SeaVal2014数据集是在SealVal2014 TASK95中提供的,该数据集由11042条Twitter组成,其已被标注为正、负和中性标签。由TelWalet等人构建的情感强度Twitter DataSet(SS Twitter)由4242个带有正面和负面情绪强度的微博标记组成。情绪评估数据集(SE Twitter)是由Sacha Narr等人提出的,该数据集由6745个推文,情感标签已被人工标注。

4.4 实验结果及分析

为了评估各种预处理方法的效果,我们在SGHT-Twitter,StanfordTwitter,SS Twitter,SE Twitter这四种数据集上分别使用四种经典的分类方法以及我们设计的SVM+MPCA分类模型,将5种预处理方法应用于情感分类,并通过在WEKA平台上的测试,得到相应的分类指标,分别如表2-表6所示。

表2 朴素贝叶斯在四种数据集上的分类性能

表3 最大熵在四种数据集上的分类性能

表4 支持向量机在四种数据集上的分类性能

表5 BPN在四种数据集上的分类性能

表6 SMV+MPCA在四种数据集上的分类性能

从表2和表3可以看出朴素贝叶斯方法和最大熵方法在SGHT-Twitter数据集和SE Twitter数据集上的分类性能指标是一样的,而在StanfordTwitter数据集和SS Twitter上略有差别,但综合来看也基本持平。表4和表5的数据说明支持向量机方法和BPN方法的分类性能也基本接近,但对比表2和表3来看,两种方法均优于朴素贝叶斯方法和最大熵方法。但这种优势是以计算开销为代价的,因为从训练模型到得到结果的耗时来看,支持向量机方法和BPN方法要比朴素贝叶斯方法和最大熵方法慢很多。表6则表明我们设计的分类模型仅在SS Twitter数据集上不及前者,而在其它三个数据集上均优于上述四种方法。与此同时,由于我们采用了基于Mapreduce的分布式计算模型,从而大大减少了计算开销,能够在保证提供分类性能的同时更加高效。

对于在SS Twitter数据集上的性能不佳,我们认为对同一种分类模型而言,由于不同的参数设置可能在针对不同数据集上形成性能上的差别。因此,我们在WEKA平台上进行了参数调整和优化。

在WEKA平台的分类器选项中我们选择SMO算法,SMO算法是针对求解SVM问题的Lagrange对偶问题开发的高效算法。我们算法选项中的ε值改为2.0,numFlold改为2,toleranceParameter改为0.003,核函数选择RBF kernel,然后重新启动训练过程,得到的性能结果如表7所示。

表7 参数优化后的SMV+MPCA在SS Twitter 数据集上的分类性能

表7的结果可以看出,通过参数优化后,我们的算法模型在SS Twitter数据集上的三项性能指标均有提升。为了直观比较几种算法的性能差别,我们将这几种算法在SS Twitter数据集上的分类结果通过WEKA平台绘制了ROC曲线,如图4所示。

图4 各种算法在SS Twitter数据集上的分类ROC曲线

从图4给出的ROC曲线可以看出,我们设计的分类算法模型(MPCA+SVM)相对于其他传统算法而言,其ROC曲线下的面积最大,说明取得了很好的效果。同时也可以看出在经过参数调优后,使得原本在SS Twitter数据集上性能表现一般到有很大提升,说明了本算法模型具有很好的适应性和扩展性,实验结果令人满意。

5 总结

本文研究了五种不同的文本预处理方法对Twitter中情感极性分类的影响。我们使用传统的四种分类器以及我们所设计的MPCA+SVM的算法模型在4个不同的Twitter数据集进行了一系列的实验,并在WEKA平台上验证了几种预处理方法对Twitter数据集的有效性。实验结果表明,朴素贝叶斯方法和最大熵方法分类性能接近,支持向量机(SVM)和前馈人工神经网络(ANN)方法的性能也基本一致,并且效果均优于前两种分类器,但这种优越是以复杂的计算和较长的实验耗时为代价的。而我们设计的算法模型在保证性能提升的同时,通过设计基于Mapreduce分布式PCA计算,解决了因复杂计算所带来的时间消耗问题。针对本方法在SS Twitter数据集上性能表现一般,我们经过了参数优化并重新进行测试,结果显示各项性能指标均有较大提升,说明我们的方法具有良好的适应性,实验的整体效果是令人满意的。在下一步的工作中,我们会针对Twitter或其他微博情感分类任务,研究适合不同类别的预处理方法和特征模型。

猜你喜欢
集上贝叶斯预处理
KR预处理工艺参数对脱硫剂分散行为的影响
求解奇异线性系统的右预处理MINRES 方法
关于短文本匹配的泛化性和迁移性的研究分析
基于贝叶斯定理的证据推理研究
基于贝叶斯解释回应被告人讲述的故事
污泥预处理及其在硅酸盐制品中的运用
基于互信息的多级特征选择算法
租赁房地产的多主体贝叶斯博弈研究
租赁房地产的多主体贝叶斯博弈研究
基于预处理MUSIC算法的分布式阵列DOA估计