摘 要: 面对大数据时代消费者评价的海量信息,为了识别消费者评价信息的情感倾向,及时掌握消费者的评价信息反馈,采用K-近邻(KNN)算法对消费者评价信息进行情感分类,但是该算法在文本分类过程中因文本特征向量的维度高,使得算法的时间复杂度和空间复杂度较高,计算的开销很大。针对这一问题,通过对获取信息的文本结构以及情感表达特点的分析,采用一种改进的KNN算法进行文本情感分类。在对消费者评价信息进行分类时,先由潜在语义分析算法对文本特征向量进行降维处理,然后利用加权KNN算法进行分类。实验结果表明,该方法在提高文本分类速度的同时保持了良好的分类效果。
关键词: 大数据;特征降维;LSA算法;KNN算法;情感分类
0 引言
近年来,随着电子商务、社交网站、个人博客和微博的蓬勃发展,互联网进入了一个崭新的时代——大数据时代。大数据时代广大消费者有了更广阔的发表自己意见的空间,人们参与讨论和发布自己的观点、态度和情感信息的热情与日俱增,因此带有主观色彩的言论和评论的互联网信息日益丰富。这些海量的、带有情感色彩的、非结构化的文本包含了大量的信息,企业可以从中获得用户对产品或服务的意见,而消费者在消费前可以得到更多的建议,因此对消费者的意见、观点、评价等倾向性信息的分析有着重要的实用价值。情感分类[1]是随之兴起的一个研究领域,它是指通过挖掘和分析文本中立场、观点、情绪等主观信息,对文本的情感倾向做出类别判断,将其分为正面或负面。目前,比较常用的分类算法有:支持向量机(SVM)[2]、贝叶斯(NB)[3]、K-近邻(KNN)等,其中KNN方法有着广泛的应用领域。
KNN算法在进行文本分类时,由于计算量大而使其效率大大降低,导致分类效果不是很理想,制约了算法的应用。近年来许多学者提出针对KNN的改进算法,例如参考文献[4-6]中的算法都是通过减少需要比较的样本数,从而达到提高分类效率的目的。KNN在进行文本分类时文本特征向量的维度高,使得算法的时间复杂度和空间复杂度较高,但真正对分类起作用的维数往往是小于文本本身的维数,那些对分类意义不大的维数往往会成为噪声,从而影响分类的准确率。针对上述KNN存在的问题,本文从降低特征维数以减少计算量的方面进行改进,提出LSA-KNN算法,对消费者评价进行情感分类分析,期望能克服KNN分类速度较慢的缺陷,同时又能保持较高的准确率。
1 KNN的基本原理
KNN[7-8]是一种经典的基于统计的分类方法。其形式化描述为:基于向量空间模型(VSM),将每个实例视为n维向量空间Rn中的一个点。假设n个带类标识的实例数据为(X1,y1),(X2,y2),…,(Xn,yn),其中Xi是实例的向量表示,yi则是该实例对应的类别,类别的取值为0、1,表示两类,设0代表正面,1代表负面。对于给定的实例X,可以通过式(1)判断其类别:
其中,若y值大于给定的阈值0.5,则X属于类1;当其小于0.5时,则X属于类0。其中,Lk(X)表示与给定实例X距离最近的k个实例的值。
2 LSA-KNN分类算法
潜在语义分析(LSA)是一种用于自动实现知识提取和表示的理论和方法,它通过对大量的文本集进行统计分析,从中提取出词语的上下文使用含义[9]。在进行文本的分类过程中,文本特征往往采用VSM进行描述,利用矩阵奇异值分解(SVD)等方法进行处理,消除同义词、多义词的影响,从而达到快速降维的目的,提高了后续处理的精度。LSA的数学描述如下:设词-文本矩阵X是个m×n矩阵,其中m为词数,n为文档数。令k<<min(m,n),rank(A)=r,k<Ra,经过SVD处理,矩阵X可表示为3个矩阵的乘积,即:
X=SVDT(2)
其中,S、D是m×r和n×r的正交矩阵,分别称为矩阵X的左右奇异向量矩阵;V是r×r的对角矩阵,是矩阵X的奇异标准形,其对角元素为矩阵X的奇异值。
V=diag(δ1,δ2,…,δr) δ1≥δ2≥…≥δr>0(3)
矩阵X的奇异值按递减顺序排列成对角矩阵V,取V的前k个最大奇异值构成k×k的Vk,分别取S和D的前k列构成m×k的Sk和n×k的Dk,得到矩阵X的k-秩近似矩阵Xk:
Xk=SkVkDkT(4)
其中,Sk和Dk中的行向量分别作为词向量和文档向量;k是降维之后的维数。实际应用中k的值常常取到几百,极大地减少了文本向量的维数,利用LSA对文本特征向量矩阵进行奇异值分解和取k-秩近似矩阵,既可以消除文本矩阵中的噪声,凸显词与文本之间的语义关系,又可大大缩减特征向量空间,从而提高文本分类的效率。
针对之前提到的KNN存在的不足,本文提出LSA-KNN分类算法,先由LSA算法进行特征降维,然后利用加权KNN算法进行分类。算法步骤如下:
(1)设中文文本数为N,文档训练集合表示为:D=D(T1,W1;T2,W2;…;TN,WN),将T1,T2,…,TN看成一个n维坐标系,W1,W2,…,WN为对应的坐标值。两个文本之间的相似度可以通过两个向量(分别设为T1=(μ1,μ2,…,μN),T2=(λ1,λ2,…,λN))之间夹角α的余弦值计算:
记文本Ti和Tj的相似度为sim(Ti,Tj),则文档训练集的相似矩阵定义为:
(2)利用LSA算法思想对文本特征矩阵W做降维处理,得到降维后的r阶矩阵Wr。
(3)利用(7)计算测试文本集中每个文本的相似度[5],根据相似度,在训练文本集中选出与新文本最相似的k个文本。
其中,di为训练样本,X为测试样本。
(4)测试文本的k个近邻中,根据式(8)依次计算每类的权重:
其中,T为测试文本的特征向量,sim(T,Tj) 为文本相似度计算公式。函数y(Tj,Ti)为:
(5)比较类的权重,将测试文本分配到权重最大的那个类别中。
本文在上述算法中应用潜在语义分析大大减少了对分类意义不大的噪声,有效降低了特征向量的维数,从而有效解决KNN存在的运行效率不高的问题。
3 实验结果与分析
3.1 实验性能评估指标
实验采用的评估文本分类性能指标有:查准率P、查全率R和测试值F1。
查准率公式为:
3.2 实验数据集
实验中采用的语料为酒店网络评价文本,首先从携程旅行网(http://www.ctrip.com)搜集了2013年北京(BJ)、上海(SH)、青岛(QD)3个城市的酒店评论,并对所有评论认真审查,去除语言不规范及重复文本,最终选取9 000篇评论作为本文研究所需要的语料库,称为总语料库(HR)。北京、上海、青岛3个城市的酒店评价各为3 000篇,其中每个城市的酒店评论文本中正面评论文本1 500篇,负面评论文本1 500篇。将选取的文本转换为统一的文本格式,同时将所有的语料分为两部分,其中6 000篇作为训练语料集合(每个城市选取2 000篇,其中正面评论1 000篇,负面评论1 000),剩余3 000篇(每个城市选取1 000篇,其中正面评论500篇,负面评论500篇)作为测试语料集合。本文以文本的句子为基本单位,首先利用中科院ICTCLAS分词系统[1.0]对评论文本进行分词处理,并且利用中文停用词表(1 028个停用词)去掉停用词,得到特征词2 216个,然后采用LSA方法对特征词进行降维处理后得到300个特征词,最后利用KNN分类器对文本集进行情感分类。
3.3 实验结果
在实验中,先将改进后的算法与传统的KNN算法进行比较,实验结果如表1所示。
由表1可以看出,改进后的算法与传统的KNN算法相比,在查准率、查全率、F1值方面都略有提升,以总体语料库为例,查准率平均值提高了2.55%,查全率平均值提高了2.45%,F1平均值提高了2.45%。北京、上海、青岛3个城市的评论文本中,对正面评价的识别率均高于负面评论文本的识别率,造成这种现象的原因主要是实验中对否定词处理不当,例如某条评论为“酒店房间不够宽敞,酒店服务不是很好”,这条评论本身属于负面评论,但由于文本分类处理时没有进行否定词处理,导致文本被分到正面评论中。
为了验证文本算法的有效性,设计了本文算法与SVM方法和贝叶斯方法的对比实验。全语料库的训练集和测试集,采用查全率、查准率以及F1值刻画性能的优劣。表2是3种方法的实验结果。
表2的实验结果表明,与表现较好的传统机器学习算法相比,LSA-KNN算法在情感分类方面各项性能指标都高于贝叶斯方法,接近SVM方法的分类效果。
上述实验结果表明:与传统的KNN算法相比,改进后的算法情感分类的效率明显提高,并且与SVM、贝叶斯方法相比,也有良好的分类效果。
4 结论
针对消费者评价信息的情感分类问题,本文采用一种改进的KNN算法。在进行情感分类时,先用LSA算法进行特征降维,然后采用加权KNN算法进行分类。实验表明,与传统KNN算法相比,改进后的KNN算法分类的速度显著提高,并且保持了良好的分类效果。在后继的研究中,将结合网络评论情感极限方面、否定词方面展开研究,将情感分析研究融合到商品评价的相关领域,使研究的内容真正在实践中指导实际,结合实践为广大消费者服务。
参考文献
[1] PANG B, LEE L. Opinion mining and sentiment analysis[J]. Foundations and Trends in Information Retrieval,2008,2(1-2):1-135.
[2] Zhang Min, Ye Xingyao. A generation model to unify topic relevance and lexicon-based sentiment for opinion retrieval [C]. Proceedings of the 31st Annual International ACM SIGIR Conference on Research and Development in Information Retrieval, New York, NY, USA, 2008: 411-419.
[3] CUI H, MITTAL V O, DATAR M. Comparative experiments on sentiment classification for online product reviews[C]. Proceedings of the 21st National Conference on Artificial Intelligence, 2006: 1265-1270.
[4] 王煜,白石,王正欧.用于Web文本分类的快速KNN算法[J].情报学报,2007,26(1):60-64.
[5] 江涛,陈小莉,张玉芳,等.基于聚类算法的KNN文本分类算法研究[J].计算机工程与应用,2009,45(7):153-155.
[6] 李荣陆,胡运发.基于密度的KNN文本分类器训练样本裁剪方法[J].计算机研究与发展,2004,41(4):539-545.
[7] Du Hao, Chen Yangqiu. Rectified nearest feature line segment for pattern classification[J]. Pattern Recognition,2007,40(5):1486-1497.
[8] 樊娜,安毅生,李慧贤.基于K—近邻算法的文本情感分析方法研究[J].计算机工程与设计,2012,33(3):1160-1164.
[9] 钟将,刘荣辉.一种改进的KNN文本分类[J].计算机工程与应用,2012,48(2),142-144.