基于XGBoost算法的电商评论文本情感识别模型
2018-01-25苏兵杰周亦鹏梁勋鸽
苏兵杰 周亦鹏 梁勋鸽
摘 要:由于电子商务网站上商品评论数量激增,对商品评论信息进行数据挖掘和情感分析显得尤为重要。文中立足于电子商务平台上生鲜产品的评论文本,将情感识别问题抽象为分类问题,结合TF-IDF和卡方检验方法提取文本特征,利用XGBoost算法训练分类器建立商品评论文本的情感识别模型,将海量的商品评论数据转换为人们需要的信息。
关键词:电子商务;用户评论;XGBoost算法;情感识别
中图分类号:TP39 文献标识码:A 文章编号:2095-1302(2018)01-00-04
0 引 言
互联网和电子商务的发展,使网络上的商品评论文本数量激增,这些商品评论对购买同种商品的买家具有指导作用。然而面对数量庞大的商品评论,买家若通过逐个查看的方式获取信息必将耗费大量精力,效果也不好。同时电子商务平台上的评论分类并不能准确表达已购买用户真正的情感倾向。在eBay信誉机制研究中Resnick等曾指出,买家由于担心差评会遭到卖家的报复会在评论时选择给出好评[1],比如2012年轰动一时的“寿衣门”事件。因此,大量消费者在评论时会再三思虑,造成了许多负面评价隐藏在好评之下。面对这些问题,迫切需要对评论文本进行情感倾向识别。
文本情感分析实质上是对带有情感色彩的主观性文本进行分析、归纳和处理的过程[2],吸引着不同领域研究者的广泛关注,比如人工智能、自然语言处理以及数据挖掘等[3-6],涌现出大量相关的研究工作。目前在文本情感分析方面最常用的两种方法是基于语义词典和基于机器学习的分类算法 [7]。
基于语义词典的情感计算方法利用通用情感词典或编纂情感词表来进行情感分析。文献[8]提出合并通用情感词典并利用word2vec工具扩充词典构建酒店领域情感词典,可有效对酒店领域的评论进行情感分析。文献[9]针对网络在线中文评论的特点,将领域本体和情感词典相结合进行商品评论倾向性分析。文献[10]基于HowNet情感词典和自建的形容词配价词典,在HNC语境框架下进行文本的情感倾向性判断,并通过实验验证了该方法具有较高的识别率。
基于机器学习的分类算法是将情感分析作为分类问题来解决,通过机器学习的方法对大量标注文本进分类训练,使用训练的分类模型来预测待分类文本的类别。文献[11]中分别用最大熵模型、朴素贝叶斯算法和支持向量机三种机器学习的方法进行情感分类研究。此后,研究者通过改变分类器策略、合并分类器、训练集变形等方法来提高分类效果,文献[12]中比较了朴素贝叶斯和支持向量机两种分类算法的优缺点,提出两者的综合体NBSVM模型。文献[13]综合了多个半监督分类器的结果,发现综合后的结果均高于原本单个分类器。
但是传统的情感分析方法并不足以满足高准确率的要求,文本情感分类的准确率仍然有待提高。XGBoost算法是在2014年实现的一种算法,在工业中有大量应用,但鲜有研究者将其应用在情感分析中,为此本文采用XGBoost算法对网络上的商品评论文本进行情感分析,并将其与朴素贝叶斯和支持向量机分类器进行比较。
1 评论文本情感识别模型
本文提出的模型将商品评论文本情感识别抽象为一个分类问题,采用机器学习的方法对人工标注的文本数据及其特征进行学习,得出预测模型,从而在输入评论文本数据后自动预测该文本数据的情感倾向。模型的流程如图1所示。
由图1可以看出,商品评论文本情感识别模型的完整流程主要包括以下3个阶段:
(1)模型训练阶段
该阶段主要是对数据集中的训练集进行相关处理并提取特征,利用XGBoost算法训练分类器获得情感分类模型。
(2)模型测试阶段
该阶段主要根据相关评价指标,利用数据集中的测试集对模型训练阶段获得的情感分类模型进行性能评测。
(3)情感识别阶段
该阶段主要利用通过性能评价的情感分类模型对待处理的文本进行情感分析,得到情感分析结果,完成整个情感分析的过程。
1.1 數据集建立
文中所使用的数据集是利用八爪鱼采集器在京东商城生鲜区采集的火龙果评论文本,随机选取其中11 098条数据作为本文的实验数据,数据中包含部分无效数据,比如“听说评价可以获取京东豆” “展卉越南进口红心火龙果2个装,单果约500g”等,去除320条无效评价,选取余下的10 778条有效评论文本作为本实验的数据集并进行人工标注。
实验中的情感识别是指对评论文本的情感极性(正向、中性和负向)进行判断,因此,在人工标注时将数据集标注为三个类别标签“1”“2”“3”,分别代表“正向评价”“中性评价”“负向评价”,标注完成后的数据集类别分布见表1所列,其中数据集中包括4 191条正向评价,3 171条中性评价和3 416条负向评价。
1.2 文本预处理
文本预处理是对文本进行分词、去除情感色彩不明显或没有实际意义的词语,便于计算机快速、准确地处理文本。
1.2.1 中文分词
文中的实验数据是中文文本,中文文本在分词方面比英文文本复杂,英文文本只需根据空格或者标点符号便可完成分词任务,但是中文词语之间没有空格分隔,并且单个汉字所表达的信息量太少,无法准确表示出句子的含义。为此,中文分词是数据预处理阶段必不可少的一步,文中采用的结巴分词目前在python语言中应用比较广泛,可获得较高的分词准确率。
1.2.2 停用词处理
本文使用的是哈工大停用词表,包含助词、虚词、介词、符号等停用词767个。在停用词表中的个别词语,比如“一般”“可以”等,在商品评价中含有情感色彩,因此,需要去掉停顿词表中的此类词语,同时加入一些商品评论领域的停顿词。经过整理,最终得到包含790个词语的停顿词表。
1.3 文本表示
向量空间模型(VSM)是比较常用的文本表示方法,在这个模型中,将文本中出现的词汇作为文本的特征。例如,文本包含词语w1,w2,…,wm,则文本T可以表示为向量T=(v1,v2,…,vm),其中vi(i=1,2,…,m)是特征wi在T中的取值,根据vi的取值不同,向量空间模型可以分为三类:
(1)布尔型(Boolean),即vi取值为0或1,若T包含词汇wi,则vi=1,反之vi=0。
(2)词频形式(Term frequency,TF),假设ni表示wi在文本T中出现的次数,则vi是ni的函数,通常TF可以简单地取值为ni,也可以定义为如下形式:
(3)词频-逆向文本频率形式(Term Frequency-Inverse Document Frequency,TF-IDF),实际上就是TF×IDF。词频(Term Frequency,TF)表示词汇在文档T中出现的频率,逆向文件频率(Inverse Document Frequency,IDF)的主要思想是:如果包含词汇wi的文档越少,即ni值越小,那么IDF的权值越大,说明词汇wi具有很好的类别区分能力。
也可以将IDF简单地定义为|D|?|Dwi|,其中D表示文本集,Dwi表示包含词汇wi的文本集,|D|表示集合的元素个数。
在上述三种表示方法中,TF-IDF具有较好的类别区分能力,因此,本文在文本表示方面采用了TF-IDF方法。
1.4 文本特征选取
商品评论虽然内容短小,但包含了大量词汇,向量空间维度势必相当庞大。同时类别不同的文本中也包含了大量相同词汇,对文本分类起不到任何作用。因此,进行文本特征选取是至关重要的一步。
特征选取方法较多,比如信息增益、卡方检验、互信息和粗糙集等。文中使用的是卡方检验方法,通过检验特征与类别间的相关性,选取与类别相关性最大的特征集合,在这种多分类的情况下,计算特征项与每个类别的卡方检验值,选取其中的最大值作为特征值进行计算。卡方检验统计量的计算公式如下所示:
其中,公式中各个参数的含义如下:
N:训练集文本总数;
A:包含词汇w,且属于类别c的文本数量;
B: 包含词汇w,但不属于类别c的文本数量;
C:属于类别c,但是不包含词汇w的文本数量;
D:不属于类别c,也不包含词汇w的文本数量。
卡方检验的不足之处在于夸大了低频词的作用,因为A,B,C,D只标记了某词在文本中是否出现,但不标记该词在文本中出现的频率,所以它不能表征词汇在文本中的重要性。而TF-IDF倾向于选择有区分度的词汇,可以明确表达出词汇的重要程度,能够弥补卡方检验的不足。因此,文中在特征提取方面,结合了卡方检验和TF-IDF两种方法,由此选取一个174维的特征空间。对特征情感词进行总结分析,可以分为正向、中性和负向三类,该特征空间的部分特征词如表2所示。
1.5 XGBoost算法
Boosting分类器是一种优秀的集成学习模型,其主要思想是将多个准确率较低的决策树模型组合成一个准确率较高的模型。Gradient Boosting 是 Boosting 的改进版本,该算法可通过分步方式建立模型,在不断更新迭代中选择梯度下降的方向来保证最终预测结果最优。在梯度提升算法中本文主要参考了文献[14],其算法流程如下所示 :
(7)end for
实验采用XGBoost工具包来训练模型,XGBoost全名为Extreme Gradient Boosting,是由陈天奇在2014年实现的,该算法可自动并行运行CPU多个线程,运行速度快,分类效果较好。本文采用Python语言调用XGBoost工具包实现了模型。
1.6 模型评价
本文采用常用的准确率(precision)、召回率(recall)、F1值评价模型,同时在模型训练过程中使用K折交叉运算,通过多次运算求取平均值作为各评价指标的最终值,以减少运行误差。
(1)情感识别召回率
召回率R=算法正确判断文本情感倾向数量/文本总数量
(2)情感识别准确率
准确率P=算法正确判断文本情感倾向数量/所有被算法召回的文本总数量
(3)F1-指数
2 实验及结果分析
实验在模型训练过程中使用7折交叉运算,将数据集中的三个类别分别划分成7等份,每次运算在三个类别中按比例选取9 234个数据作为训练集,1 539个数据作为测试集,通过XGBoost算法训练情感识别模型,利用1 539个测试集对模型进行测试,输出模型的准确率。
模型中需要不断调整以下三个参数:训练的最大深度max_depth,训练的步长(学习率)eta,循环的次数num_round。通过不断测试,当训练的最大深度max_depth为8,训练的步长为eta为0.8,循环的次数num_round为100时,模型的性能达到最优。
文獻[11]采用最大熵模型、朴素贝叶斯算法和支持向量机三种方法进行了情感分类研究,通过实验证明了支持向量机分类效果最好,但朴素贝叶斯是最简单、最常见的一种分类算法。为此,为检验XGBoost算法的优势,文中将其与朴素贝叶斯算法和支持向量机算法进行比较,输出7次交叉运算的准确率、召回率、F1值以及每个指标的均值,用以评判算法的优劣。三种算法对比结果如图2所示。
由图2可以很明显地看出,在商品评论文本情感识别中,朴素贝叶斯算法的表现是最差的,其次是支持向量机算法,表现最好的是XGBoost算法,在7次交叉运算结果及最终的平均值、准确率、召回率和F1-指数方面,XGBoost算法都远优于朴素贝叶斯和支持向量机算法。由此可知,将XGBoost算法应用于商品评论文本情感识别是可行的,并能取得不错的效果,其分类结果优于传统的分类算法。
3 结 语
本文使用XGBoost算法实现了电子商务平台上商品评论文本的情感识别。实验中,建立一个包含10 778条评论文本的数据集并进行了人工标注,结合TF-IDF和卡方检验进行文本特征选取,验证了XGBoost算法的可行性和优势,通过与朴素贝叶斯算法和支持向量机算法进行对比。实验结果表明,XGBoost算法在评论文本情感识别方面具有很大的优势,其识别情感倾向的准确率为94.82%,远远高于朴素贝叶斯算法的85.81%和支持向量机算法的89.90%,具有很好的应用前景。
参考文献
[1] Resnick P,Zeckhauser R.Trust among strangers in Internet transactions: Empirical analysis of eBays reputation system [A].The Economics of the Internet and E-Commerce[C].New York:Elservier Science,2002.
[2] 黄发良,冯时,王大玲,等. 基于多特征融合的微博主题情感挖掘[J]. 计算机学报,2017,40(4):872-888.
[3] Tang H F,Tan S B,Cheng X Q. A survey on sentiment detection of reviews [J]. Expert Systems with Applications,2009, 36(7):10760-10773.
[4] Liu B. Sentiment analysis and opinion mining [J]. Synthesis Lectures on Human Language Technologies,2012, 5(1):1-167.
[5] Tsytsarau M, Palpanas T. Survey on mining subjective data on the web [J]. Data Mining and Knowledge Discovery,2012, 24(3):478-514.
[6] Li Y, Gao H, Yang M, et al. What are Chinese talking about in hot weibos? [J]. Physica A Statistical Mechanics & Its Applications,2013 (419):546-557.
[7] 刘志明,刘鲁.基于机器学习的中文微博情感分类实证研究[J].计算机工程与应用,2012, 48(1):1-4.
[8] 陈柯宇,何中市. 基于情感词典的酒店评论情感分类研究[J].现代计算机(上下旬),2017 (6):3-6.
[9] 董丽丽,赵繁荣,张翔. 基于领域本体、情感词典的商品评论倾向性分析[J]. 计算机应用与软件,2014,31(12):104-108,194.
[10] 张克亮,黄金柱,曹蓉,等.基于HNC语境框架和情感词典的文本情感倾向分析[J].山东大学学报(理学版),2016,51(7):51-58,73.
[11] Pang B, Lee L, Vaithyanathan S. Thumbs up Sentiment classification using mechine learning techniques[C].EMNLP,2002(10):79-86.
[12] Wang S, Maiming C D. Baselines and bigrams:Simple, good sentiment and topic classification[C].ACL,2012(2):90-94.
[13] Li S, Huang L, Wang J, et al. Semi-Stacking for Semi-supervised Sentiment Classification[C].ACL,2015(2):27-31.
[14] 鄧永莉, 吕愿愿, 刘明亮, 等.基于中高层特征的音乐情感识别模型[J].计算机工程与设计,2017,38(4):1029-1034.