MicrocomputerApplicationsVol.27,No.12,2011研究与设计微型电脑应用2011年第27卷第12期
文章编号:1007-757X(2011)12-0020-04
基于神经网络的文本倾向性分析系统的研究
佘正炜,钱松荣
摘要:随着信息时代的到来,网络评论数量急剧增加,对于这些网络评论的倾向性分析是网络舆情研究中的重要课题。为
了对网络评论的倾向性进行分析,提出了基于神经网络的网络舆情文本倾向性分析算法,使用神经网络训练的方法构建了较
好的情感词倾向值词典,对网络评论的倾向性预测达到了较高的准确率。对算法进行了细致的描述,同时提出了基于神经网
络的网络舆情文本倾向性分析系统框架。最后通过实验进行测试,证明了该系统能够达到较好的准确率。
关键词:倾向性分析;神经网络;文本处理;网络舆情
中图分类号:TP311文献标志码:A
0引言
随着互联网的飞速发展,我们已经进入了信息时代。上
网逐渐成为了人们的日常生活方式,据统计,截止至2011
年2月份,我国的网民人数已达4亿。如此众多的网民人数
逐渐形成了一种新的现象——网络舆情,对于网络舆情的研
究是当前的一大热点。
网络舆情主要是由网民们在博客、BBS以及论坛上的
发表自己对于某些事件或者热点问题的看法以及见解来体
现的。通过对带有网民们的主观情感色彩的评论的分析,可
以了解大众舆论对于某一事件或者产品的看法。然而,飞速
发展的互联网使得这些评论的规模越来越大,单单通过人工
进行分析已经不能满足我们的分析需求,由此文本倾向性分
析技术应运而生。本文使用神经网络训练的方式改进对应的
词语倾向度词典,并且在实践中取得较好的效果。
1相关工作
文本情感分析按照不同的文本粒度可分为词汇、句子以
及篇章3个层面进行分析。词汇的情感分析主要分为基于语
料库和基于词典两种方法[1]。基于语料库的评价词语抽取和
判别主要是利用大语料库的统计特性,观察现象来挖掘语料
库中的评价词语并判断极性。另一种是基于HowNet[2]之类
的知识库,首先选择两组具有明显正向和负向极性的词语作
为种子词,对于一个情感倾向未知的词,计算这个词与两组
种子词的相似度,与正向种子词组相似度高的则判定为正面
倾向,反之则判定为负面倾向。本文采用的神经网络的倾向
词权重的初始值就是采用第二种方法计算得到的。
在句子和篇章级的文本倾向性分析方面,将主观文本的
极性分为褒义和贬义两类。目前主要有两种方法:基于情感
知识的方法以及基于特征分类的方法。基于情感知识的方法
主要是依靠一些已有的情感词典或领域词典以及主观文本
中带有情感极性的组合评价单元进行计算,来获取主观文本的极性。比如文献[3]首先分析句子/篇章中的评价词语或组合
评价单元的极性,然后进行极性加权求和。在这种方法中,
获得评价短语的极性,得到具体的评价短语的情感度倾向值
词典是主要工作。这个算法就是构建了一个较为合理的情感
词倾向值词典,已取得了较好的效果。基于特征分类的方法
则主要使用神经网络NB,支持向量机ME和SVM(Support
VectorMachine)等分类模型对一部分语料进行训练,得到对
应的分类器,然后对其他语料进行分类。其中SVM的方法
是该分类方法中效果最好的,本文的对比试验就采用了该方
法。
2基于神经网络的网络舆情文本倾向性分析
前面已经说到基于情感知识的句子和篇章级的文本倾
向性分析方法前人已经取得了一些成果,比如文献[3]已经
构建了一个情感度倾向值词典。但是现今社会网络评论的规
模已经变得越来越大。随着网络文化的发展,网民的语法用
语的习惯也在不断地发生改变。同时由于用户群的不同,评
论中情感词在不同的领域中所能表达的情感度倾向也是不
同的。所以使用固定的情感词词典,由于语料库的过时,以
及语料库的领域过于广泛,运用在具体的情感分析中效果不
佳。我们研究的基于神经网络的网络舆情文本倾向性分析技
术将会使用最新的语料库进行训练,从而调整情感词倾向值
词典,能够获得较好的效果。
2.1神经网络的训练模型
人工神经网络是由大量处理单元互联组成的非线性、自
适应信息处理系统。神经网络实现了一个从输入到输出的映
射功能,而数学理论已证明它具有实现任何复杂非线性映射
的功能,这使得它特别适合于求解内部机制复杂的问题,足
以进行文本倾向性判断的处理。
在本文中,使用神经网络对于正负面情感词的权重进行
训练,得到一个更为合理的权重,以对文本的倾向性进行分
析。
———————————作者简介:佘正炜(1986-),男,江苏苏州,复旦大学硕士研究生,研究方向:文本倾向性分析,网络舆情,上海,200433钱松荣(1963-),男,复旦大学教授,博士,研究方向:网络与数据通信,RFID的研究与应用,上海,200433
20MicrocomputerApplicationsVol.27,No.12,2011研究与设计微型电脑应用2011年第27卷第12期
神经网络训练模型图,如图1所示:
图1神经网络训练模型
nX...XX21,为输入层,是文本分词统计的情感词的TF。
OiH是隐藏层输出,OnOOhhhWWW...21,是每个倾向词的倾向度权
重,OY是输出层输出,即为最后的文本倾向值。OiH和OY满
足:
hiOibXfH(1)
以及
iOhoiOiObWHfY*(2)
式中xf为激活函数;hb和ob分别为隐藏层和输出层
的阈值。
在训练时,每个样本的输入都有一个对应的期望输出
值,计算的结果与这个期望的输出有一个误差,我们训练的
方法就是由这个误差来逐步修正对应的隐藏层到输出层的
权值,即每个词语的倾向度。
2.2神经网络的输入确定
本文采用通用的VSM(VectorSpaceModel)向量空间
模型来进行文本分析的。一般可以选择3种类型的权值来代
替具体的文本,即TF、DF以及TFIDF。在文献[4]中,经
过比较使用特征加权进行中文文本倾向性判断的各个方法,
得出结论:TF加权要好于DF加权和TFIDF加权。
鉴于此,使用ICTCLAS分词系统来对文本进行分词,
然后进行相关的倾向词的TF的统计,最后得到一个使用情
感词作为特征的向量来具体表征文本。
此外,在网民的各类评论中,存在着大量的副词修饰情
感词汇,比如“太不周到了”这句话中的“太”、以及“不”。前
者加强了周到这个词的感情色彩,“太不周到”明显比“不周
到”的情感色彩要强烈;后者则进行了否定。所以需要对这
样的程度修饰词进行加权。为此构建了程度修饰词字典。词
典共收录了224个修饰词,并且对于这224个词进行不同的
权重标示。比如“不”的权重为-1,“极度”的权重为2,“稍微”的权重为0.6等等。
为了验证,根据使用TF、DF、TFIDF、以及加不加上程度修饰词的加权,进行了验证,结果基本和预想相同。由
于这不是本文重点,此处简略。
2.3神经网络的各个参数确定
有了以上神经网络的模型以及样本输入以后,就可以对
于神经网络的各种参数进行确定以及调整了。
2.3.1激活函数
标准神经网络的激活函数为“S”型函数:
netenetfy11)((3)
对于应用来说,需要一个关于原点中心对称的升函数,
然而“S”型函数是将输入范围),(映射到输出范围)1,0(
上去,故需要对它进行相应的改进以使之满足要求。经变换
使用的激活函数为:
21
11*2)(
bnetenetfy
(4)
b是一个确定常数,取值需要看具体的样本的情况来确
定。
经过统计,在对于本文实验的文本进行分词以及统计
TF值后,得到的TF值的平均值大概为1.4左右,最大值为
34。整个系统搭建完成之后,将b的范围由2到17进行变
化,经测试发现73b时,结果最好,故取b=3。由此得
到的激活函数的图像,如图2所示:
图1激活函数
2.3.2阈值
阈值是神经网络中的一个重要的参数,可采用固定值,
也可采用变化的阈值。采用变化阈值即在神经网络训练的过
程中,在误差反转改变权值同时改变阈值,相当于再把输入
样本增加了一维,更有利于解决问题。但是在本文的实验中,
为简单起见将隐藏层及输出层的阈值均固定设为0。
2.3.3倾向词的初始权重的选取
在标准神经网络的权重选择中,一般是在一个范围内随
机选择权重,随后的权重修改过程都由训练过程来决定,但
是这样的方法放在实验系统中并不理想,因为这样会使得训
练的时间变得过长。所以本文的初始倾向词权重的选取使用
文献[5]中的结果,当然是为了适应本文系统还是有一定的修
21MicrocomputerApplicationsVol.27,No.12,2011研究与设计微型电脑应用2011年第27卷第12期
正。简单介绍获取步骤如下:
1)获取基本情感词
从知网获得基本的情感词,共计3116个负面情感词以
及3730个正面情感词。总共6846个情感词。
2)选取种子词
随机选取15%的情感词作为种子词。
3)根据种子词计算情感词的倾向度
计算的公式为:
NwnKeySimilarity
MwpKeySimilaritywIRSON
iiM
ii),_(),_()((5)
式中ipKey_inKey_为第i个正面(负面)的种子词,
w为待求倾向度的倾向词,),(wKeySimilarity为通过知网
计算出来的Key与w之间的相关度(详细计算方法请参见文
献[5])。
4)合并处理获得情感词表
经过步骤3得到2907个负面情感词,3292个正面情感
词。共计6199个情感词。(已经删除一些生僻词)
此时,得到的情感词表还需要经过一些处理才能正式成
为神经网络训练的权重。主要需要解决的问题有3个:一是
对情感词权重的归一化;二是处理经由知网计算得到较大误
差的权重(比如正面的情感词经由计算得到一个负值);三
是计算的结果整体有一个偏移。
相应处理如下:
对所有正面情感词中大于0的权重取平均,对所有负面
情感词中小于0的权重取平均,再对两个平均值简单地求平
均。然后把所有的情感词权重均减去这个偏移值。记为权重
列表A。
接下来对于权重列表A中的情感词权重进行线性变换:
1*2
minmin'KKKKK
man(6)
式中'K即为计算后的权重,K为权重列表A中的权
重,minK为权重列表A中最小的权重值,manK为权重列表
中最大的权重值。
最后,对于那些计算误差较大的权重进行赋默认值。方
案是对于正面情感词权重小于0的词赋初始权重为0.1,而
负面情感词中权重大于0的词赋初始权重为-0.1。
至此得到了神经网络训练的倾向词的初始权重,将之作
为隐藏层到输出层的对应权重。
2.3.4期望输出确定
使用神经网络来进行训练都需要有一个确定的预期输
出值,但是文本只有一个正面或负面的判定(做3类倾向性
分析时还需加上一个中性),这就需要通过计算确定该预期输出值,同时确定输出的正确范围。由于神经网络最后的输
出范围是1,1,故规定正面的文本倾向度输出范围应该为1,Up,负面的文本倾向度输出范围应该为Down,1,中
性的文本倾向度输出范围为UpDown,。其中Up和Down
均为一个1,0的常数。在本文的只需判断正负倾向的实验
中,00.0UpDown。
首先对于每一种分类结果都预先设定一个默认的标准
输出值,比如正面的文本倾向度设为0.5,负面的文本倾向
度设为-0.5,中性的(如果有的话)文本倾向度设为0。
将训练文本的TF值输入神经网络,经过隐藏层再到输
出层,得到一个表示文本倾向度的结果,即为文本倾向值,
如果该文本倾向值处于正确的输出范围,则使用该输出值作
为该文本的预期输出值,否则以标准值代替。例如某正面文
本的计算输出值为0.7,在正确的输出范围内,则它的预期
输出值亦设为0.7。但是如果该正面文本的计算输出值为
-0.4,则将它的预期输出值设为默认的0.5。对所有的训练文
本采取这样的处理得到训练文本的预期输出。
2.3.5误差函数及反馈
选择的误差函数为:
221kYkDeoo(7)
全局误差为:
m
kookYkDmE
1221
(8)
式中E为总体误差,kDo为第k个样本的预期输出,kYo为第k个样本的实际输出,可通过式(1)和式(2)计算获
得。m为训练样本的个数。
根据神经网路的反馈机制,权重的更新公式为:
hoiNhoiNhoiWeWW1(9)
将e代入公式,并经过一系列推导以后,得到:
ooooOiNhoiNhoiYYYDHWW11***61*1(10)
式中1NhoiW为更新后的权重,NhoiW为更新前的权重,OiH为
隐藏层输出,oD为预期输出,oY为神经网络实际输出,为
学习速率。
在每次训练时,将训练样本一个个输入神经网络,每个
样本输入后,都需要根据上式对于权重进行一次更新,训练
样本全部输入完毕以后,一次训练结束。下次训练开始后重
复这个过程。
2.4训练算法流程
为使算法明晰,在明确了各参数的获得方法后将训练流
程复述如下:
首先获得训练样本;然后通过分词统计确定神经网络的
22