张家城 朱艳辉
摘要:随着网购平台快速崛起,如何快速准确地在海量的消费者评价文本当中提取消费者对商品评论的主观倾向成为近年来的研究热点。本文以商品评论文本倾向识别为研究对象,使用SVM算法,实现了基于SVM的商品评分系统,并实现了客户端和训练端的分离,方便训练端实现分布式架构。
关键词: 文本分类;倾向识别;支持向量机;SVM算法;商品评分;
中图分类号:TP311.1 文献标识码:A 文章编号:1009-3044(2018)30-0223-03
Abstract: With the rapid rise of online shopping platform, how to quickly and accurately extract the subjective tendency of consumers to product reviews in the mass of consumer evaluation text has become a research hotspot in recent years. In this thesis, the tendency of commodity comment text recognition is considered as the research object. Using SVM algorithm, the SVM-based commodity scoring system is implemented, and the client and training end are separated, which facilitates the training end to realize the distributed architecture.
Key words: Text Categorization; Emotion recognition; Support Vector Machine; SVM; Product rating
1 引言
20世纪90年代,计算机技术的迅猛发展,催生了属于21世纪的新一代商品交易形式——电子商务,为我们打开了商品交易的一扇新的大门,网络使得人们可以足不出户,便可尽览天下商品,即使身处异地,也可以互通有无。随着网络和计算机硬件的不断升级,各种形式的电子商务平台正在取代传统的市集,成为我们商品交易的新选择。这种扎根于互联网的新兴经济活动,一经出现便迅速发展壮大。自2003年淘宝网成立以来,中国的网络购物行业迅猛发展,时至今日,中国互联网内已催生出以淘宝、京东、苏宁等巨头为首的近百家中大型互联网购物平台。但由于网络交流天然的地域隔离性,消费者往往面临着信息不对称的尴尬境地,难以有效地了解商品的质量、服务等有效信息,急需一套商品评价系统来帮助用户做出正确的消费决策。
2 基于SVM的商品评分预测
2.1 特征词选取
原始文本存在大量的词,使得计算的维度非常高,我们需要在文本中选取能够代表文本属性的特征词作为权重计算的词,从而降低计算的复杂度。
如果词语有很好的区分能力,很少的词语就能起到区分文本的作用[1]。这些具有高区分度的词语就叫作特征词。目前计算特征词的算法主要有以下几种:文档频率(DF,Document Frequency)、信息增益(IG,Information Gain)、卡方校验(CHI,Chi-square Test)。
卡方校验是通过观察实际值与理论值的偏差来确定理论是否正确。本文将采用计算效率高、算法实现简单的卡方校验法作为征值选取算法。
2.2 特征词权重
在文本情感傾向识别算法中,我们常用的特征向量值是词频-逆文本频率,即TF-IDF(Term Frequency-Inverse Document Frequency)算法。TF-IDF是一种用于文本处理的权重计算算法,如果一个词在一篇文章中出现的频率高,并且在其他文章中出现的频率小,则认为这个词对文本具有很好的区分能力。为了方便特征词TD-IDF值参与SVM的计算,我们使用自然数对特征词进行标号,然后使用已经标号的特征词对语料文本中的每一条文本计算其中包含的特征词的TD-IDF值,这样就能得到适用于SVM算法计算的特征词向量集。
2.3 SVM算法
支持向量机(Support Vector Machine, SVM)以其出色的性能和精准性,在文本挖掘、手写识别等多个领域得到了成功的应用。SVM的特点可以简单概括为以下两点:
1) SVM算法是在样本线性可分的情况下进行计算的,对于线性不可分的样本,SVM算法采用核函数方法,把样本点映射到高维空间中,使其在高维空间中线性可分,这种转化使得SVM算法可以对绝大多数线性不可分的样本进行分类计算。
2) SVM算法基于结构风险最小化理论在特征空间中构建最优的超平面,使得算法的计算获得全局最优化[2]。
2.4 实验结果与分析
2.4.1 实验工具与语料数据集
本次实验使用的语料集采用的是来自自然语言处理与信息检索共享平台的谭松波先生分享出来的中文情感挖掘语料[3]。包括携程酒店评论、当当书籍评论和京东电脑评论三个领域,每个领域正负面评价各2000条,从每个评论的正负面评论中随机抽取200条,共1200条评论语料作为测试集。
实验使用Java编程语言,实验过程中使用到的主要算法实现工具为Libsvm和HanLp分词工具包。将训练模型对测试集预测的准确率高低作为本次实验的评判标准。
2.4.2 实验结果
本小节针对SVM算法中的各个参数选择进行实验。svm的核函数包括线性核函数、RBF核函数、多项式核函数和Sigmoid核函数,由于线性核函数无参数选择,实验将分别对后三个核函数进行实验,其中多项式核函数存在多个参数,实验过程中非因变量的参数将使用Libsvm默认的参数值。RBF核函数、多项式核函数和Sigmoid核函数实验结果分别如图1至图3所示。
2.4.3 结果分析
通过2.4.2小节的实验结果可以看出,在进行参数优化后,RBF核函数在大部分的参数选择情况下,准确率都维持在较高的水平,说明在文本倾向识别这个部分,RBF核函数具有更好的适应性,本文评分系统的实现也将采用RBF核函数作为评分系统中使用的SVM算法的核函数。
3 系统整体设计
评分系统采用客户端与训练端分离的设计方式,由于训练端占用计算机资源较大,让训练端单独运行在独立的服务器上。系统整体设计如图5所示。
4 系统详细设计与实现
4.1 客户端
4.1.1 客户端算法设计
客户端是评分系统提供给用户使用的Web操作界面,用户可以在Web界面完成SVM项目的训练、评论文本上传、查看API调用情况等功能。客户端算法流程图如图6所示。
4.1.2 API接口设计
面向用户的交互API接口是评分系统提供给用户与评分系统进行交互的核心方式,解耦了评分系统的服务和用户自己的电商平台,根据API接口返回的结果,用户可以轻易地对结果进行二次处理。客户端API交互接口如下:
1) 训练文件上传
该API接口绑定的路由为“/svm/upload”,该接口仅接受POST的调用方式,用户可以通过此接口上传指定的训练文件。
2) 单条评论文本预测
该API接口绑定的路由为“/svm/predict”,该接口接受GET和POST的方式调用,用于在商品评论产生的时候即时预测并更新商品评分。
3) 批量评论文本预测
该API接口绑定的路由为“/svm/predictFiles”,该接口仅接受POST的调用方式,用于在指定的时间点统一处理商品评论并更新评分。
4) 商品评分查询
该API接口绑定的路由为“/svm/query”,该接口接受GET和POST的方式调用,用户可以通过此接口即时查询指定商品的评分信息。
4.2 训练端
4.2.1 训练端算法设计
训练端独立负责SVM项目的训练和预测,仅通过训练端向客户端提供的API接口进行交互。训练端算法流程图如图7所示:
4.2.2 SVM 评分模块设计
训练端的核心模块为SVM模型训练和SVM预测两大模块,代码实现的过程中注重内部功能模块之间的解耦,尽可能达到一处代码,多处复用的目标。
1) SVM模型训练
首先对带标注的训练源文本进行预处理,使其满足Libsvm的训练文本格式,然后调用Libsvm对预处理结果进行SVM训练,最后得到训练模型。训练端对训练源文本的预处理流程如图8所示。
考虑到系统功能的后期升级,对于文本预处理阶段的分词及去停用词、情感词过滤、特征词筛选和特征词权值计算均采用Java接口进行设计,尽可能解耦各个处理过程,让系统保持较高的可拓展性。
2) SVM模型预测
SVM模型预测与训练的流程大致相同,需要对文本进行预处理,然后把处理结果交给Libsvm进行预测,所以预测的文本预处理部分可全部复用训练阶段所使用的接口实现,SVM模型预测流程图如图9所示:
4.2.3 线程池设计
考虑到SVM模型的预处理、训练和预测均为非常耗时的操作,所以在训练端服务器对以上三种操作使用多线程的方式进行处理,以便训练端可以接受多个SVM项目同時进行,增加训练端的并发性。训练端线程池的流程如图10所示。
4.2.4 API接口设计
训练端API是客户端与训练端交互的核心API,训练端提供API供客户端发送SVM项目训练请求和SVM项目训练文件,发送SVM项目预测请求和获取预测得分。训练端交互接口如下:
1) 接收训练文件
该API接口绑定的路由为“/api/ /upload”,该接口仅接受POST的调用方式,用于客户端向训练端发送训练文件,训练端接收到文件后创建训练项目并立即开始训练。
2) 接收预测文本
该API接口绑定的路由为“/api/ /predict”,该接口仅接受POST的调用方式,用于客户端向训练端发起预测请求,返回的结果是一个JSON字符串,包含预测得到的评分结果以及相关信息。
5 结论
本文实现的基于SVM算法的商品评分系统具有以下优点:
1) 客户端与训练端分离
将占用计算机资源较大的SVM训练、预测独立出来,可以进行独立部署或分布式多训练端部署,从而不影响客户端稳定运行,提高SVM训练、预测性能。
2) 基于线程池的SVM训练、预测方案
把SVM训练任务和预测任务分离到不同的线程池中运行,适应了实际生产环境中预测任务的数量远远大于训练任务的情况,提高训练端训练、预测的效率和响应速度。
3) 使用Restful API提供主要功能
由于系统面向的客户群体是电商网购平台的运营者,基于API的设计可以使客户的平台简单快速地接入评分系统的服务,降低了适配的难度,提高了易用性。
参考文献:
[1] 吴卫华, 袁宁, 周劲,等. 基于文本集密度的特征词选择与权重计算方法[J]. 计算机与数字工程, 2005, 33(3):11-13.
[2] 黄志勇. 基于SVM和深度学习的情感分类算法研究[D]. 重庆邮电大学, 2016.
[3] 谭松波.谭松波语料集[EB]. https://github.com/hankcs/HanLP/wiki/文本分类与情感分析.
【通联编辑:梁书】