美章网 资料文库 SVM的文本情感极性分类研究范文

SVM的文本情感极性分类研究范文

本站小编为你精心准备了SVM的文本情感极性分类研究参考范文,愿这些范文能点燃您思维的火花,激发您的写作灵感。欢迎深入阅读并收藏。

SVM的文本情感极性分类研究

《广东工业大学学报》2014年第二期

1文本情感特征

本文基于svm文本情感极性分类任务分为3个步骤:1)情感词典构建:构建一个较完备的能识别情感特征词的情感词典;2)情感特征选择及特征向量加权:从文本中提取情感特征组成特征向量,计算特征向量中情感特征的文本情感权重;3)情感分类:针对步骤2的加权后的情感特征向量,用SVM的机器学习方法把文本分成正向情感极性和负向情感极性两类.

1.1情感词典的构建情感分析需要识别情感词特征,但由于目前中文情感分析领域的研究并没有一个完备的的情感词典库.因此,本文通过以下几个方面完成情感词典的构建:1)利用《汉语褒贬义词语用法词典》,该词典共收词条1015个,对其词语进行情感极性分类扩展情感词典.2)利用知网的极性情感词词典,台湾大学整理并的中文通用情感词典(NTUSD)以及大连理工大学信息检索研究室的情感词汇本体词典,对其中的词语通过人工选择进行极性分类和整理,并利用《同义词词林》对情感词进行扩展.3)利用基准情感词,通过大量的语料集对未知情感词采用PMI算法进行情感极性分类扩展情感词典,实验采用人工选取的方式选择情感语义非常明显的基准情感词,并利用式(1)设定阀值进行计算归类.4)在情感词汇本体词典极值标注的基础上,人工标记未赋予极值的情感词语,这种做法带来了一定的误差.

1.2情感特征选择情感分析特征选取,本文结合构建的情感词典利用卡方统计量选择与情感特征相关的词语,剔除与情感特征无关的词语.

1.2.1卡方统计量技术本文选择卡方统计量(chisquarestatistic,CHI)技术来建立分类模型的情感特征词向量,计算公式如式(2)和式(3)所示.利用式(2)和式(3),本文模型可以统计出某一情感类别每个词的卡方统计量,对每个类别设定一个情感特征量阈值,使特征向量更具区分度,并合并情感类别中的情感特征词组合作为本文选择的情感特征向量.

1.2.2情感特征选择情感特征的选择除了词本身的词特征之外,还需包括情感词的情感特征,单句的情感特征以及句间情感特征.本文模型选取的情感特征如表1所示。

2文本情感极性分类

2.1情感特征加权

2.1.1单句的情感极值处理本文以逗号为分隔对单句进行情感分析以及情感极值加权,分为以下几种情形:1)若出现情感词,比如“开心”,“失望”,“搞笑”等,本文从情感极值表中找出相应的极值,对于正向情感词取正极值,负向情感词取负极值,而对于情感极性不明确的,则取其所有情感极值的期望值.2)若出现否定词,比如“不”,“未”等,模型视它的出现是对后续情感极性的一种否定,对于否定词之后紧跟着情感词的情况,对情感极值取反并减少情感词对应的情感数目增量,增加反向的情感数目增量.3)若出现反问副词,比如“凭什么”,“就算”,“怎么能”等,模型视它的出现是为了加强负向的情感极值,对于这样的情况,提高负向情感极值.4)若出现一个感叹号或多个感叹号,模型视它的出现是为了加强相应的情感极值,因此分析这样的句子,提高句子中的相应的情感极值,提高幅度视感叹号出现的连续程度而定.5)若出现程度级别词,比如“极其”,“略为”“有些”等,模型视它的出现是为了增强或减弱情感极值,对于程度词修饰情感词的情况,视程度词级别增强或减弱情感极值.6)若句子是首句或尾句,且出现人称代词或主张词语,比如“认为”“发现”等,模型视其是影响整体情感极值的重要因子,对于这种句子,加大其相应的情感极值.

2.1.2整句的情感极值处理本文以句号或感叹号为分割点对整句进行情感分析以及情感极值加权,分为以下几种情形:1)若出现递进关系连词,比如“不但,而且”等,模型视第二复句比第一复句所表达的情感要更为强烈,因此在分析这种句式的复句时,提高第二复句中情感词的情感极值并在原来的基础上增加一个对应的情感数目增量.2)若出现转折关系连词,比如“然而”,“但是”等,模型视转折连词前后所要表达的情感极性是相反的,连词之后的语句所表达的情感才是真正想要表达的情感.因此在分析这种句式的复句时,提高连词之后的复句的情感极值并增加两个对应的情感数目增量,降低连词之前复句的情感极值并减少两个对应的情感数目增量.3)若出现因果关系连词,比如“由于”,“于是”,“以致”“因此”等,模型视连词出现的复句才是重点要表达的情感极性,连词之前出现的情感只是铺垫,因此在处理这类句式时,提高连词复句的情感极值并增加一个对应的情感数目增量.4)若出现让步连词,比如“即使”,“尽管”,“就算”等,模型视让步连词出现的复句所表达的情感极性应该是为了增强后一个复句的情感极性,因此对于整体的情感极性来说,在分析这种句式的复句时,降低让步连词复句的情感极性并减少一个对应的情感数目增量.2.1.3改进的情感TFIDF函数TFIDF函数常用于特征加权,它表征一个特征的重要程度.但是对于情感分类而言,情感词在某个类别中在多个文本中多次出现,本文视该情感词对于表征该类别越“重要”,而不是TFIDF函数所表征的越“不重要”,因此改进公式如式(7)所示.

2.2情感极性分类支持向量机(SupportVectorMachine,SVM)是一种常用的用于二分类的监督式学习的方法.在自然语言处理领域中,SVM广泛应用于词义消歧、文本自动分类、信息过滤等方面.文献的实验结果均表明,采用SVM的方法能够取得更好的分类效果.文献[7]进行对比实验表明支持向量机SVM的分类方法效果最佳,分类精确度最高达到83%;文献[8]表明在训练集规模较大的情况下,使用支持向量机分类方法明显优于其他分类方法.因此论文采用支持向量机SVM融合情感特征向量对文本进行情感极性判别.

2.3Spark分布式计算平台Spark是UCBerkeleyAMPlab所开源的集群计算平台,与Hadoop有相似之处,但它是立足于内存计算的一个新的集群计算框架,具体见图1.Hadoop的数据共享相比Spark慢,因为前者需要额外的复制,序列化和磁盘IO带来的开销,而后者是基于内存计算且作业是基于构建的Stage有向无环图(DAG)执行的.Spark由于它的集群架构设计和内核处理模式使得其更适合进行大数据挖掘或者机器学习处理等需多次迭代的领域,原因在于在Spark设计中融入了RDD这样的抽象概念。RDD(ResilientDistributedDataset)是Spark的核心概念,指一个只读的、可分区的弹性分布式数据集.Spark默认的缓存策略是将RDD以反序列化的方式缓存于内存中,RDD的Lineage会记录每一个RDD的父依赖,也就是Transformation操作行为.当这个RDD的部分分区数据丢失时,由于Spark的幂等特性以及函数式语义的设计,它可以通过Lineage获取依赖信息去重新运算并恢复丢失的数据分区.Spark的这种粗粒度数据并行的计算范式,带来了性能的提升并保证了数据的鲁棒性.本文中的实验采用Spark分布式计算平台执行情感分类模型并与单机平台进行对比实验.

3实验结果与分析

3.1情感训练语料准备本文使用已经标注好的情感语料数据集,数据集为ChnSentiCorp_Htl_del_4000(酒店领域),ChnSentiCorpBookdel4000(书籍领域)和ChnSentiCorpNBdel4000(笔记本领域).实验采用ICTCLAS对文本内容进行分词并保留词性和位置.一般的文本数据预处理工作会过滤无意义的停用词,例如标点符号、代词、语气词、程度副词、连词等,但对于文本情感分析,这些词语恰恰是本文模型所需要的,所以模型会保留这些词语并自定义过滤器.

3.2文本情感语料处理在Spark分布式计算平台上进行语料预处理和生成特征向量文件的步骤大致如下:从HDFS中读入原始文件,经过一系列Transformtion操作,最后利用Action操作生成特征向量文件送入到MLlib库执行分类算法.1)从HDFS中读入情感词典,经过map(f:T=>U)算子经过reduceByKey(f:(V,V)=>V)生成情感词典极值元组,构建SentimentDictRDD(RDD[(K,V)]).2)从HDFS中读入待分类的原始训练文件,经过map(f:T=>U)算子利用分词器对文件进行分词以及标记类别和文本ID并利用flatMap(f:T=Seq(U))算子和map(f:T=>U)算子生成文本分词元组并记录分词信息构建WordRDD(RDD[(K,V)]),再经过filter()算子利用自定义过滤器链过滤分词,通过cache()算子缓存该RDD.3)在缓存RDD的基础上,一方面经过reduceByKey()算子构建文本词表WordsTermRDD(RDD[(K,Seq(V))]),另一方面经过map(f:T=>U)算子和groupByKey()算子构建倒排表InvertedTableRDD(RDD[K,Seq(V)]).4)在倒排表RDD的基础上,经过map(f:T=>U)算子计算卡方统计量以及sortByKey(c:Comprator[K])算子并保留文本中所有的情感特征词,通过union()算子合并所有的情感特征构建情感特征向量SentimentFeatureRDD(RDD[T]).5)利用词表WordRDD结合情感特征向量SentimentFeatureRDD,根据单句情感极值和整句情感极值公式和SentimentDictRDD(RDD[(K,V)])中的情感极值对特征向量进行加权或者通过改进的TFIDF对向量进行加权.6)在上面的基础上,生成符合SparkMachineLearningLibrary线性支持向量机SVMWithSGD的训练特征向量格式的OutputSVMVectorRDD,并存于HDFS中.

3.3预测与评估实验环境具有3个节点,1个master和2个slave(worker).集群中的单点配置如下:2核Intel(R)core{TM}i3-2350Mcpu@2.30GHzCPU处理器,4G内存,操作系统为Ubuntu14.04,Hadoop版本为1.1.2,Spark版本为0.9.0,采用Standalone的集群架构模式.单机上的SVM分类器,本文采用开源的工具LibSVM,Spark分布式计算平台上的SVM分类器,本文采用SparkMachineLearningLibrary的SVMWithSGD分类器.对于已标注好的情感语料数据集,对于每一个情感类别,拆分数据为训练数据和测试数据,拆分比例为9:1,采用10折交叉验证进行实验,取SVM分类器最后的分类精度平均值作为评价标准,并采用不同的算法进行对比实验.分类精度计算公式如式(8)所示.实验结果如表2所示,表2的语料1、2、3分别表示酒店领域语料集、书籍领域语料集以及笔记本领域语料集,算法A未采用情感特征的卡方统计量和改进的TFIDF,算法B采用了情感特征的卡方统计量的CHI值组合情感极值,算法C采用改进的TFIDF组合情感特征的情感极值,算法D组合了算法B和C进行实验.从实验结果可以看出,算法D的分类精度较其他算法有了明显的提升,说明本实验通过改进的TFIDF和卡方统计量组合情感极值的算法能有效地提高分类精度,验证了本文情感分类算法的有效性.表3是在单机上和Spark平台上进行情感分类实验,采用分类精度最佳的算法D,对比不同平台上的分类精度和训练以及测试阶段的时间代价(ms).从表3可以看出,采用Spark分布式计算平台进行分类预测的分类精度较单机上的分类预测精度有所下降,但时间消耗上,在单机平台执行所消耗的时间比Spark分布式计算平台多,但由于目前使用的语料集规模太小,该特征并不明显.对比文献[16]的实验结果,模型的分类精度略低于文献的分类精度,但模型的时间代价上却更少,由此说明本文的情感分类实验是有效的,而且本文建立的情感分类模型是适合在分布式云平台上运行并实现情感分类预测的。

4结论

本文通过构建情感词典,利用情感特征及其关联信息,结合卡方统计量技术和改进的TFIDF算法及SVM机器学习的方法对文本进行情感极性分类.在单机平台上的实验结果表明采用了情感特征的卡方统计量的CHI值及改进的TFIDF算法计算出的值组合情感极值的方法能有效地提升分类精度,分类精度最高能达到91.25%.在单机平台上和Spark分布式计算平台上执行分类模型,对比分析其准确度和时间消耗,实验结果验证了该模型在单机平台和分布式云平台下情感极性分类中的有效性.下一步的工作是构建覆盖面更广的领域情感词典,研究更好的构建情感极值的算法,并通过采集更大规模的数据集运用半监督的机器学习方法进行情感分类。

作者:陈培文傅秀芬单位:广东工业大学计算机学院