APP下载

基于虚假评论识别的微博评论情感分析的研究与应用

2019-04-15罗昌银但唐朋李艳红陈昌昊

计算机应用与软件 2019年4期
关键词:样例算法文本

罗昌银 但唐朋 李艳红 陈昌昊 王 泰,3

1(华中师范大学计算机学院 湖北 武汉 430079) 2(中南民族大学计算机科学学院 湖北 武汉 430074) 3(华中师范大学国家数字化学习工程技术研究中心 湖北 武汉 430079)

0 引 言

移动社交网络的普及与电子商务的发展促进了互联网用户在线评论数量的增长,以微博为代表的评论往往会带有用户个人的情感倾向。通过对这些评论文本进行情感分析挖掘,可以获得用户对事件的看法或产品的偏好。这些信息可以应用到舆情分析、商品推荐等多个领域。面对大数据时代,如何高效、准确地得评论文本情感倾向信息显得尤为重要。

情感分析的主要研究工作包含情感倾向性分析、语言分析、观点提取。这些研究都依赖于准确可信的标准训练集来训练的分类模型。然而在现实中,人们对评论信息的依赖导致了虚假评论的产生。比如卖家店铺发布不实评论诱导买家进行消费,在微博上发布虚假消息骗取流量等。

基于前人的研究[1]。虚假评论被分为以下两类:

(1) 欺骗性评论。这类评论会诱导其他用户产生错误判断。如:淘宝网中卖家刻意发布的买家好评就属于欺骗性评论。

(2) 破坏性评论。这一类评论主要分为以下三个子类别:① 广告性评论;② 与当前主题的无关评论;③ 不包含任意观点、内容、难以分辨情感的随机文本。

人们能够有效地识别破坏性评论,因为此类评论与整体评论关联性低。而第一类欺骗性评论由于其与整体评论高度关联且具有隐藏性与多样性等特点,所以难以识别。虚假评论的存在会降低传统情感分析模型的准确度,如何有效识别评论中的虚假评论并对其进行剔除,从而提高情感分析的准确度成为亟待解决的问题。

PU学习算法是一种半监督二元分类模型。不同于传统的半监督分类模型,PU算法只需要依赖少量标注的正向样本和大量未标注样本即可完成训练。当负向样本难以通过先验知识获得时可以采用PU算法。PU算法可以帮助我们进行虚假评论识别,也有部分学者将PU算法应用于虚假评论识别的研究当中,但这些研究并没有考虑到用户与文本之间的特征。本文通过研究用户状态指标和行为指标特征设计有效的策略来确定样例中的类别标签,提高算法识别的准确度。

本文基于用户的状态指标和行为指标设计用户评论可信度特征提取模型,并结合PU学习算法完成虚假评论识别。待去除虚假评论之后,再利用随机梯度下降的逻辑回归模型完成情感分析任务。本文的主要创新如下:

(1) 分析了用户的状态与行为指标,并将其与PU学习算法相结合提高了虚假评论的识别性能。传统基于PU学习算法的虚假评论识别研究通过聚类方式获得间谍样例中的相关性,而本文从用户状态和行为获取虚假评论的特征能够从根源体现间谍样例的相关性。

(2) 传统研究路线没有考虑训练集与测试集中的虚假评论,从而导致情感分析的准确度难以提高。本文提出先进行虚假评论识别再进行情感分析的研究方法,能够显著提高整体情感分析的准确度。

1 相关研究工作

1.1 情感分析

文本情感分析是人工智能领域关注的重点,目前国内外有不少学者取得了一定的研究成果。

Kasabov等[2]将密度估计与逻辑回归相结合,解决了逻辑回归方法中存在的非线性问题。Kamps等[3]基于WordNet的同义结构利用其提供的词语相似度计算方法来计算文本中词语间的情感极性,再通过与之前所确定的情感强烈词进行对比来获得目标词的褒贬。其优点是通过词的划分有效提取了语句中的特征信息,但其只考虑词语间的同义关系。

Graber等[4]从卡方统计量出发,结合词频、词集中程度、词分散程度来解决传统研究方法中特征项指定类出现频率低的问题。但这类方法并没有考虑到虚假评论的存在。梁军等[5]探讨了深度学习来完成中文短文本的情感分析可行性。他们不使用任何人工标注的情感词典与句法分析,仅仅将句子中词语的标签关联性引入情感极性转移模型,最终获得了不错的情感分析准确度。

上述研究方法从文本特征构建的角度来提高分析结果的准确度,但评论集中包含着虚假评论。如果不将其去除则会影响整个分类器的效能,所以对训练集和测试集中的虚假评论进行识别、去除显得尤为重要。

1.2 虚假评论识别

虚假评论识别研究开始于评论文本的虚假性检测研究,其核心难点是如何统合文本、用户间的相互关系来提高识别的准确度。自2008年Jindal等[6]首次提出虚假评论识别问题以来,已经有不少学者在此方向上进行研究。

Li等[7]从评论文本的语法层面发现,真实评论对比虚假评论在词性特征上包含更多的名词、形容词、介词、限定词和连词。相反虚假评论含有更多的动词、副词。但这种识别方式难以识别专家刻意编写的虚假评论。

Lau等[8]则认为虚假评论中存在互相拷贝的现象,通过语义相似度的判断能够进行虚假评论识别。文献[9-10]基于PU学习算法提出了新的学习模型,并在此基础下训练朴素贝叶斯分类器,获得了较好的结果。为了提高虚假评论的识别率,文献[11-12]运用元数据特征进行分析且获得了成效。

文献[13]利用网络爬虫技术从互联网中获取关于产品的评论数据,并进行手工标注。再利用半监督算法来进行虚假评论识别研究。Ott等[14]的研究已经说明:人本身难以利用自身的先验知识来对虚假评论进行判断,这导致手工标记的训练集会出现大量错误从而影响识别的效果。所以手工标记方法并不适用于虚假评论检测研究。

通过相关研究,我们发现只依赖少量标注样本的PU学习算法适合作为我们的核心算法。下面将详细说明用户的状态指标和行为指标可信度评价体系的构建过程,并设计PU算法来完成虚假评论识别。待虚假评论从训练集中剔除后,利用逻辑回归模型进行微博评论的情感分析任务。

2 用户评论可信度评价体系

在文献[15-16]的基础上,本文通过对微博平台进行分析,从用户的状态指标和行为两个方面提出能够判断在线评论可信性的6个指标属性,这些指标能够反映微博评论的特征。用户评论可信度指标概念如图1所示。

图1 用户评论可信度指标

微博用户的状态指标主要通过该微博账号的资料以及用户评论本身来反映。正常的微博用户会与其他用户产生互动,用户关注数和粉丝数结合单位时间浏览数和点赞数能判断该用户账号是否可信。所以当计算结果小于设定的阈值就可以确定该用户评论没有可信度或者为机器用户。用户可信度CL(credility level)是对用户资料、用户状态进行衡量的方法,评论的时效性TE(time effect)反映的是用户评论在发布时间上的跨度,跨度越小时效性越高。文本长度WS(words size)亦体现评论可信度,当非机器用户进行操作时往往发布较多的内容,这是因为真实用户往往需要更多语言来描述自己的情感。

对于行为指标,尤其是对评论用户而言,注册账号的时间间隔RT(register times)是用户注册账号行为异常的衡量标准。对所获取的数据进行分析表明,正常用户和虚假用户在注册账号的时间间隔上存在明显差异。正常用户注册账号的数量在一个范围以内,而虚假的机器用户往往会大于阈值。评论的内容也应被我们关注,虚假评论的一个明显特点是在同一用户下或是不同用户间会出现大量相似的评论,这时计算用户评论内容的相似度RCS(review content similarity)便能判断该用户是否可信。而文本中不同情感词能够表达文本本身的情感的显性程度ES(emotion strength)。文本的强烈情感强度越大表明是虚假假评论的可能性就越小。

2.1 用户的状态指标

1) 用户的状态指标,用户可信度(CL)为:

(1)

(2)

(3)

式中:fsn(u)和fgn(u)分别表示用户粉丝数和用户关注数;Report(P)表示单位时间内的点赞数和浏览数之比;fyn(u)表示fsn(u)和fgn(u)的加权平均数。

2) 用户评论时效性(TE)为:

(4)

为了避免twrite与tread差距过大导致算式失真,使用参数σ来约束Te的范围。同时本文认为最大发布阅读间隔时间为一个季度(90天),超过90天将按90天计算;twrite指评论发布日期,tread指评论经过阅读的日期。σ在本文中取10。

3) 用户评论文本长度(WS)为:

(5)

根据微博评论长度作为特征进行赋权处理,其中n代表评论文本的实际长度;k表示文本长度在1至120以内文本的特征权值,且k的取值是1至8以内的整数,k将按线性关系进行取值。

2.2 用户的行为指标

1) 用户注册账号的时间间隔(RT)为:

(6)

式中:avg(|ti|)表示一个用户多个账号注册的平均时间间隔,μi是正常时注册多个账号的间隔阈值。

2) 用户评论内容相似度RCS(review content similarity)为:

(7)

式(7)采用余弦相似度算法来进行计算。其中,rmip和rmiq分别代表该微博话题下的第p条评论和第q条评论;avg(simu(rmip,rmiq))表示每个用户所发表的评论相似度的均值。如果当前用户只发表了一条评论,那么该值为0。

3) 情感表达强度(ES)。情感表达强度利用用户评论中的情感词来反映用户的可信程度。本文利用知网公开的HowNet情感词典[17]并依据匹配原则进行情感强度词部分的构建。如表1所示,将以情感词数量为衡量标准并结合特殊关键字、网络颜文字、特殊句式量化情感强度。

表1 部分情感表达强度词

情感表达强度越强说明该评论越能够表达用户的心理状态从而说明该用户非机器用户,该评论非虚假评论。情感表达强度的度量公式为:

N=w1×n1+w2×n2+w3×n3

(8)

式中:w1表示情感词的权重;n1代表情感词的数量。同理w2、w3代表关键词、颜文字、特殊句式等特殊属性的权重;n2代表它们的数量;N表示情感表达强度。

2.3 虚假评论识别

将用户的状态指标和行为指标同PU学习算法相结合能够提升虚假评论识别的准确度,本节将详细介绍基于PU学习算法所设计的虚假评论识别算法。

2.3.1 相关符号定义

本文将真实评论所构成的正向集合命名为P。相对应的虚假评论所在的集合为负向集合,其中可靠的负向集合定义为RN。未标记的评论集合定义为U,间谍集合定义为US。PU学习算法的算法框架如下:

① 按照所标记的P和未标记的U计算可信负向文本RN;

② 计算集合中的代表性样例;

③ 确定不同间谍样例的类别标签;

④ 基于有偏SVM算法建立最终分类器。

因为数据集中只包含正向集合和未标记集合,PU算法需要对集合中潜在的负向例子进行可信抽取。通常使用Roc-SVM方法来完成可信负例的抽取。抽取完成后可信负向文本将保存在RN中。算法的后续工作主要是计算代表性样例和间谍样例的类别标签。

2.3.2 计算代表性样例

PU算法分类器的性能与间谍样例US密切相关。为了确定间谍样例的标签,我们要首先计算正向集合和负向集合中的代表性样例。从现实角度出发,正向集合和负向集合彼此间都应该有潜在的相似关系,且同类型的评论应该含有相似的特征。所以将分别计算2个类别中多个代表性样例。本文先利用用户可信度评价模型对不同评论文本进行分类,再在此基础上采用传统的Rocchio分类器进行分类,最后输出正向和负向的5个代表样例。如算法1所示。

算法1计算代表性样例

输入:P和RN

输出:pk和nk,k=1,2,…,10

① 基于用户可信度评价体系将RN划分为5个子类;

② 利用反向文档评率公式tf×idf将P和RN中所有的样例向量化;

③ for k=1,k<=5,k++,do;

④ 通过式(9)算pk;

⑤ 通过式(10)计算nk;

⑥ end for

(9)

(10)

2.3.3 子类标签判别

相同子类中的样例有更高概率属于同样的类别,根据这个思路本文设计了子类的标签判别算法。首先计算各个样例中相似度的平均值,再利用少数服从多数的投票法则决定整个类别标签。如算法2所示。

算法2子类相似度判别

输入:US

输出:LPi,LNi,i=1,2,…,m

①LPi=∅,LNi=∅,P_flag=0,N_flag=0;

② forUS中每一个例子tdo

④ then P_flag++;else N_flag++;

⑤ end if

⑥ end for

⑦ if P_flag > N_flag

⑧ thenLPi=LNi∪US;

⑨ elseLNi=LNi∪US;

⑩ end if

3 情感分析

情感分析依赖机器学习算法,本文进行情感分析分为两个步骤:(1)对待测数据进行主观句分类;(2)对主观句进行积极、消极二分类。

3.1 基于SVM模型确定主观句

SVM分类器[18]会将评论文本的待处理数据表示为空间中的向量xi。通过在这个空间中创建一个超平面来达到将不同向量分类的目的,超平面的法向量表示为w。yi表示对应数据xi的类别且yi∈{-1,1}。下面分别给出其目标函数和对应最优解。

目标函数:

(11)

最优解:

(12)

式中:αi表示拉格朗日算子,大于0的拉格朗日算子被称为支持向量,其余的拉格朗日算子等于0。SVM分类器根据计算待测数据并以超平面为界划分类别。

在研究过程中,使用LIBLINEAR工具包对数据集进行观点句和非观点句分类,应用线性核函数,并在BOW模型下利用:

(1) bigram的TF-IDF[19]特征集合,选择这种特征集合可以降低由于分词不当带来的误差并结合互信息公式进行特征选择从而实现降维的目的。

互信息公式:

(13)

式中:p(x)表示词x在训练数据中出现的概率;p(y)表示属于y类别的句子概率。

(2) unigram的TF-IDF值:

(14)

式中:dft为包含此单词的句子数;N为句子总数。所得到的特征向量每一维代表该单词的w值。

通过上述操作可以得到如表2所示的主观句识别判断集。

表2 主观句判断特征集

3.2 利用逻辑回归实现文本情感分析

针对各个分类算法的特点,本文将采用SVM分类获得主观句,再利用逻辑回归进行情感分类。

3.2.1 预测函数

使用逻辑回归进行分类必须要找到相对应的预测函数,预测函数用以输入数据结果。设存在待分类集合A={p1,p2,…,pn},对应的类别集合label={y1,y2}。情感分析的结果只存在积极或者消极2种情况。所以对于线性边界:z=θTx,当z>0时,该判别对象是正类,反之即为负类。像这样的0、1分类问题满足Sigmoid函数在0、1两个点之间的跳跃,Sigmoid函数如下:

(15)

由线性边界和Sigmoid函数构造预测函数:

(16)

式中:θ表示回归函数的回归系数,且函数hθ(x)表示结果为1的概率。所以可以得到相对于输入x所预测的0、1类别的概率:

p(y=1|x;θ)=hθ(x)

(17)

p(y=0|x;θ)=1-hθ(x)

(18)

3.2.2 建立损失函数

首先将式(17)-式(18)合并得到关于每个样本(x,y)的统合概率公式:

p(y|x;θ)=(hθ(x))y(1-hθ(x))1-y

(19)

统合概率公式能反映每个样本的输入输出结果,而损失函数用于预测输出和类别之间的偏差。所以在假设各个样本之间相互独立的情况下,整个样本生成的概率是所有样本概率的乘积,且形式如下:

(20)

式中:x表示每一个样本;m表示所拥有的的样本数量;θ未知,且是该函数的自变量。该函数能够说明不同参数θ下所取得当前的样本的可能性,称参数θ相当于样本集x的似然函数。取对数似然函数为:

(1-yi)lg(1-hθ(xi)))

(21)

由式 (21)可以看出,当l(θ)最大时可以获得最佳参数θ,在此为了简便运算设存在函数J(θ):

(22)

此时当J(θ)最小时可以求得最佳参数θ。为了求解最佳参数J(θ),采用随机梯度下降算法来解决问题。在随机梯度下降中对θ求偏导可以得到的如下更新公式:

(23)

本文的技术路线如图2所示。

图2 技术路线图

4 实验及结果分析

实验采用的数据来自两个方面:一是来源自中国计算机学会提供的微博样例数据,二是利用网络爬虫获取微博热搜评论数据。评论均与社会热点事件新闻有关,包括“官宣”婚礼、“中美贸易摩擦”、“红黄蓝幼儿园”事件等用户宽泛参与讨论的事件,具有一定代表性。实验从中选择2万条评论信息并进一步获取各项特征。采用人工标注数据集来构建训练集,为了避免人工个体造成的偏差,由两人独立标记,若结果不同再由第三人仲裁。

4.1 实验环境说明

本文的实验环境为:CPU:Intel Core i7 6700, 内存:DDR4 8 GB,硬盘:固态硬盘120 GB,操作系统:Windows 7,开发环境:Python 3.4.4,sklearn机器学习库,MATLAB R2014a。为了提高实验的精度,采用交叉验证的方式进行实验。

4.2 实验步骤

1) 对数据进行预处理,提取相应特征,合并不同文档的文字信息,做好标记。文本使用“jieba”库对评论进行分词。

2) 对合并好的文本信息进行“去停用词”处理。

3) 利用虚假评论识别体系进行特征提取,并按照层次模型获得经过赋权的6维特征向量。同时确定特征项相关系数。

4) 应用层次分析法对6维特征向量进行赋权操作。

5) 采用词袋空间模型(BOW Model)将文本信息转换为空间向量。

6) 利用PU学习算法进行虚假评论识别,将相应虚假评论剔除出测试集。

7) 利用SVM分类进行主观句进行分类,在此基础上运用随机梯度下降的逻辑回归分别对已剔除虚假评论的测试集与未剔除虚假评论的测试集进行情感分析对比。

4.3 结果分析

通过用户的注册时间间隔(RT),如图3所示,我们可以发现,微博用户的注册时间间隔有明显的差异,在绝大部分用户注册的间隔时间大于40天,小于16天或者小于8天的频率分别是4.56%和3.31%。考虑到可能有部分用户存在遗忘老用户信息而注册新账号的情况,取用户的平均注册时间阈值μi为8。图4表示用户评论相似度的分布情况。

图3 用户注册时间间隔

图4 用户评论相似度

表3是本文虚假评论识别的准确率与其他研究实验结果[20]的对比。对比传统虚假评论识别方法,结合用户状态和行为的识别体系具有更好的识别效果。这说明本文所构建的识别方法要优于传统研究,可以实际应用于虚假评论的识别过程。

表3 虚假评论识别的准确度比较

图5-图7是表4、表5的直观体现,表示不同维度下评价的各项指标。从图中能够直观地看出去除虚假评论对准确度、F值有明显的提升。在维度较低的情况下不进行虚假评论识别的召回率要高于进行识别,这可能是由于维度较低导致被错误标记为负例的测试样本增加。

图5 各维度下情感分析的准确度

图6 各维度下情感分析的召回率

图7 各维度下情感分析的F值

表4 进行虚假评论识别的情感分析的结果

表5 未进行虚假评论识别的情感分析的结果

5 结 语

本文基于用户状态和行为提出一种虚假评论特征提取方法,并结合PU学习算法完成微博评论集中的虚假评论识别工作。在去除所收集评论中的虚假评论后,运用SVM分类器和逻辑回归模型分别进行主观句分类与情感分析。实验结果分为虚假评论识别结果和情感分析两个部分。从虚假评论识别的结果来看,采用状态行为特征所得到的准确率要明显优于其他方法,表明该方法能够更好地捕获虚假评论的特征。从情感分析方面可以看出,去除评论集中的虚假评论后,结果的准确率、召回率均有较大提升,表明本文提出的方法切实有效,满足了应用的要求。但是通过实验也可以看出,我们只是将虚假评论进行剔除并没有挖掘出虚假评论和正常评论间的关系。

下一步我们将探索虚假评论对正常评论的欺骗作用,考虑其中的潜在联系进一步提升整体方法的准确率,提升本文提出模型的效能。

猜你喜欢

样例算法文本
文本联读学概括 细致观察促写作
哪种算法简便
初中群文阅读的文本选择及组织
“样例教学”在小学高年级数学中的应用
作为“文本链”的元电影
Travellng thg World Full—time for Rree
进位加法的两种算法
根据问题 确定算法
数学样例迁移的因素分析及策略探讨
样例教学法回归课堂教学之新认识