APP下载

基于主动学习的SVM 评论内容分类算法的研究*

2022-04-07段友祥张晓天

计算机与数字工程 2022年3期
关键词:分类器向量样本

段友祥 张晓天

(中国石油大学(华东)计算机科学与技术学院 青岛 266580)

1 引言

在网络信息时代,大多数信息是通过文本信息储存和传输的,其中难免会有一些心怀不轨的人通过网络发表一些不合法的言论。这些数据藏匿于海量的文本数据中不易被人发现。因此,如何对这些数据进行处理已经成为一个重要的研究领域。

文本分类技术可以有效地对文本进行整理和挖掘,提高信息检索的效率,同时可以挖掘出文本更深层的信息。随着互联网技术的提高,数据的收集已经不再是难题,但是传统基于监督学习的文本分类技术需要大量的已标注的训练集来进行学习,本文所需要的数据又隐藏在海量的文本数据中,对数据标注需要耗费大量的人工成本。为解决该问题,本文引入了主动学习[1]的方法来减少标注成本。

Lewis和Gale引入了基于池的主动学习方案[2],主要是专家从一组未标记的数据中选择一些样本并给其标注上真实标签。标记的样本再由分类器进行自我更新,反复的从样本池中选取有价值的样本。这种方案虽然在一定程度上降低了人工标记所用的成本,但对于本文来讲,初始样本集标记仍需要耗费的很大的人工成本。因此本文提出了通过使用敏感词向量来生成初始样本集。

通过使用敏感词向量来生成的初始样本集并不是最优的,往往还会存在一些边缘数据,这些数据对分类器的训练没有特别明显的作用。文献[3]提出将k-means 与svm 相结合的分类方法,并通过实验获得较好的效果。因此,本文在初始样本集上使用k-means 聚类算法对初始样本集进行聚类选择,以减少边缘数据的影响。

由于本文的样本数据相对较少,文献[4~6]表明支持向量机能使用更有效的技术进行模型训练,尤其是在训练集较小且不平衡的情况下表现更加优异。因此我们选择SVM作为本文的分类器。

本文通过对文本分类的研究,利用主动学习的理论[7],研究如何降低在初始训练集标记上所耗费的人工成本,同时减少初始训练集的边缘数据,使得所选的初始训练集更能代表该类别的数据,提高了支持向量机文本分类算法的分类效果。

2 主动学习

目前,所有的监督学习分类器都需要使用标记的样本进行训练,并且分类器的分类效果对标记样本的质量有较大的依赖性。获取训练样本需要耗费大量的人工成本,尤其是训练数据还隐藏在海量数据中。

假设主动学习的训练过程中,L 是一组已经标注的样本训练集;U 是未标注样本池;Q 是查询函数,负责在未标注样本池中查询高质量的样本。高质量的初始样本集可以帮助分类模型做出更好的判断。文献[8]采用的是随机从未标注样本池U中选取小部分样本进行标注,但是随机选取往往会导致样本集分布不合理,从而影响主动学习的算法效率和最终的准确率。本文使用敏感词向量来生成多个集合的初始样本集,并通过k-means 算法[9]不断迭代从各个集合中选取出代表性样本,将其标注后作为分类器的初始样本训练集。

2.1 改进的初始样本选择策略

本文初始样本集的选择是采用敏感词向量[10]将未标记文本划分为三个集合:涉政,涉黄,广告。所谓的敏感词向量就是先建立一个敏感词库,词库内容包括涉政、涉黄、广告等词语,如“藏独”,“台独”,“援交”,“招妓”,“博彩”,“澳门娱乐城”等,同时为每个词分配一个情感强度值w,并生成n 维行向量A(A1,A2,…,An)。然后,将这些敏感词进行向量化,生成一个n 维全为零的行向量,记B(B1,B2,…,Bn)。初始样本选择步骤如下。

步骤1 将数据库中的敏感词按涉政类、广告类、涉黄类的顺序生成词袋,如[“薄熙来”,“毛泽东”,“港独”,“台独”,“法轮功”,……,“色情服务”,“乱交”]。之后将词袋向量化[11~12],即转化成一个n维的全为零的行向量。

步骤2 未标注文本经过分词、停用词之后将该文本中的每一个词作为一个特征词与词袋中的词进行匹配,如果该词在词袋中存在,在B 向量中对应的位置上加1。

步骤3 计算文本的倾向值,将各个集合的倾向值相比较,得到初始的样本集合。倾向之计算公式如下:

其中:n为某个敏感词出现的次数,w 为该敏感词的情感强度值。

2.2 k-means算法聚类

为了减少边缘数据的影响,本文采用k-means算法来对初始训练集进行聚类处理。该算法根据文本之间的相似度对样本集进行聚类,从初始样本集中选出代表性样本,并将相似性较低的边缘数据删除。

假设训练集为S,初始类别数为n,类别为c=(c1,c2,…,cn),每类的样本集数是m,xˉi代表ci的簇中心。实现步骤如下。

步骤1 数据预处理:将样本集进行分词和停用词处理。并将文本进行向量化处理。

步骤2 读入文本向量,计算出簇的中心向量xˉi:

步骤3 计算出各个样本集到簇中心向量的平均距离:

步骤4 取出以簇中心向量xˉi中心、dr为半径的样本,作为初始训练集样本。超出dr范围的作为边缘数据删除。

3 支持向量机分类算法

支持向量机(Support Vector Machine,SVM)方法在很多领域都有应用[13~14]。它的基本模型是在特征空间上找到最佳的分离超平面使得训练集上正负样本间隔最大。SVM 是用来解决二分类问题的有监督学习算法,在引入了该方法之后SVM 也可以用来解决非线性问题。同时支持向量机在训练样本较少的情况下的表现要优于其他分类算法。在分类时要使超平面和支持向量之间的间隔尽可能的大,这样超平面才可以将两类样本准确的分开,而保证间隔尽可能的大就是保证我们的分类器误差尽可能地小,尽可能地健壮。

下面以二维空间的线性可分数据来说明SVM分类器的构建,如图1所示。

图1 SVM二分类示意图

一个超平面,在二维空间的例子就是一个直线。定义超平面方程为

其中:x为输入值,w为权重,γ为偏移量。

如果我们的超平面方程能够完全正确地对图1中的样本点进行分类,就会满足下面的方程:

当等号成立时,即在图1 中虚线上的样本点,就是SVM中的支持向量点,称为“支持向量”。

首先定义整个空间内的样本点到超平面的距离为

因此寻找分类效果好的超平面的过程就可以转换成求d 的最大值问题,可进一步将公式简化成:

随后我们求解d 的最大化问题变成了||ω||的最小化问题。进而||ω||的最小化问题等效于求:

引入拉格朗日乘子,我们就可以得到以下拉格朗日函数:

其中αi是拉格朗日乘子,αi大于等于0。

首先固定α,要让L(w,b,α)关于w 和b 最小化,我们分别对w和b偏导数,令其等于0,即:

将式(11)代入式(10)得:

此时的函数只含有一个变量,即αi。因此确定α的最优值之后可得最优分类函数:

得到分类函数之后便可对二维空间样本分类,而对于线性不可分的数据来说只需要将该函数映射的高维空间即可。

目前文本分类中普遍使用的性能评估指标有:召回率(Recall)、精确率(Precision)以及F1 值(f1-score)[15~16]。具体公式如下。

召回率(Recall):

精确率(Precision):

F1值(f1-score):

其中TP:将正类预测为正类数,TN:将负类预测为负类数,FP:将负类预测为正类数,FN:将正类预测为负类数。

4 实验分析

由于本文分类任务的特殊性,没有现成的数据集供实验使用,因此本文通过python爬虫从某民宿平台上获取到137890 条有关评论的数据作为本实验的数据来源。

4.1 获取初始训练集

本文爬取的初始数据存放在MySQL 数据库中,本实验使用本文提出的敏感词向量和k-means相结合的方法来获取初始训练集。获取步骤如下。

步骤1 对初始数据进行预处理:从数据库中取出样本数据,并对其进行分词[17~18],分完词之后对文本进行一次简单的降维,即停用词处理。本文采用jieba 分词中的全模式,该模式下有助于提高敏感词向量的匹配准确率。同时本文采用自定义的词典,使得匹配的准确率进一步提高。

步骤2 使用敏感词向量对预处理完成的数据进行选择,并将得到的数据以txt 形式保存到train文件夹下的ad(广告类),normal(正常类),policies(涉政类),porn(涉黄类)文件中,并从中随机选出30%的数据放入test 文件中,使train 和test 中的数量比例为7∶3。本次获得的数据简记为L1。

步骤3 使用k-means 算法对L1 进行聚类,并删除边缘数据,得到初始训练集简记为L2。

4.2 对比实验

为了证明本文提出的方法效果,设计了对比实验。将传统的SVM 文本分类方法与改进后基于主动学习的SVM 分类方法(简记为AL-SVM)做比较。对比实验的步骤如下。

步骤1 从文件夹中读取数据,对所有的样本L1、L2进行分词和停用词处理。

步骤2 将预处理完成的文本数据生成词典,并进行特征提取[19~20],将一些出现频率过高或者过低的词删除。最后将处理好数据转换成文本向量形式。

步骤3 传统SVM 方法使用L1 训练样本来训练,得到SVM 分类模型。而本文的AL-SVM 则用L2训练样本来训练,并得到分类模型。

步骤4 得到两个分类模型之后,使用test 文件夹下的测试样本分别对两个模型进行测试,并将得到的测试结果进行比较。

4.3 实验结果比较

得到实验结果之后,通过精确率(Precision)、召回率(Recall)、F1 值(f1-score)三项指标来进行评估,实验结果如表1所示。

表1 实验结果对比

为了反映聚类之后的训练集的质量,将两种方法使用的样本数以及分类所用的时间做了对比,实验结果如表2所示。

表2 实验时间对比

从实验结果可以得到以下结论。

1)使用AL-SVM 方法的分类效果比单单使用SVM方法有一定的提升。

2)使用AL-SVM 方法可以在保证准确率的基础上减少训练样本的数量,同时减少分类所用的时间。

5 结语

传统的支持向量机是基于小样本统计理论的基础上的。而且支持向量机比神经网络具有较好的泛化推广能力。SVM 在小样本训练集上能够得到比其它算法好很多的结果。而本文的初始数据源过于庞大,使用人工标记需要耗费大量的成本,因此本文引入了主动学习的方法。并在主动学习初始数据集的选择上做了改进,引入了基于敏感词向量的初始样本选择策略,从而大大地降低了人工的标注成本。同时使用k-means 聚类算法保留中心向量及邻近样本,删除样本集合的边缘数据,以提高初始训练集的样本质量。通过对比实验表明,使用此方法可在文本分类准确率基本不变的情况下,减少文本分类的训练集,同时可降低文本分类所使用的时间。

猜你喜欢

分类器向量样本
少样本条件下基于K-最近邻及多分类器协同的样本扩增分类
向量的分解
学贯中西(6):阐述ML分类器的工作流程
基于AdaBoost算法的在线连续极限学习机集成算法
随机微分方程的样本Lyapunov二次型估计
向量垂直在解析几何中的应用
向量五种“变身” 玩转圆锥曲线
基于支持向量机的测厚仪CS值电压漂移故障判定及处理
七年级数学下册期末检测题(B)