吴艾薇, 雷景生
(上海电力学院 计算机科学与技术学院, 上海 200090)
根据《国家电网公司95598客户服务业务管理办法》(以下简称《办法》),要求各单位认真组织营销、运检、调度等相关专业人员学习、宣传贯彻和执行,确保《办法》在客户服务工作中发挥实效;要求各省公司、国网客服中心合情、合理、合规地处理客户的各项诉求,并做好分析报告报送等各项工作.
目前电力网络平台上的投诉信息越来越多,相应的信息量也变得很大,但要从中选择出对我们有用的信息就较为困难,因此在需要查找一些有利用价值的文本信息时,文本自动分类技术就显得至关重要.目前常用的文本分类算法有朴素贝叶斯(Naive Bayes)[1],K近邻(K-Nearest Neighbor,KNN)算法[2],支持向量机(Support Vector Machine,SVM)[3]等.
KNN算法作为一个基本的分类算法,具有易实现、思路简单、无需训练过程等优点,但也相对存在一些缺点,主要有两个方面的不足:一是在分类过程中,由于相似度的计算量特别大,从而会消耗大量的计算时间,也大大降低了分类效率;二是训练样本很大程度上会影响分类性能,由于网络上的一些数据分布十分不均匀,所以会使得分类器性能变得特别差.本文主要针对这些缺点做出相应的改进,以期得到更精确的分类结果.
中心向量法[4]是参考电力投诉信息中的全部文本,将其中某一个方向下所包含的全部训练文本向量,依次按顺序计算该方向下的中心向量,进而计算它的相似度,最后将所得出的值进行排序,自动将整理出来的投诉信息及待分类的文本归类到前面所得出的值最高的方向中.该方法属于K近邻分类方法中比较特殊的一种方法,其最大的优点就是大大提高了分类的效率.
将全部文本向量求和得中心向量:
(1)
式中:i——选中的训练文本;
n——i中的短文本个数;
dik——i中的第k篇投诉信息文本.
首先,将选出的全部电力投诉信息中的训练文本集中所有文本表示成向量的形式,然后把它们全部集合起来,分别计算它们的相似程度,并得出相似度的值.将相似度的值进行排序,排序后选择出所得值最大的前k篇文本,最后从k篇文本的结果推断出其他的待分类文本的类别.其公式为:
(2)
式中:W1i,W2i——d1和d2文本向量中第i个特征项的权重.
通过式(2)得到的值表示两个文本之间的相似度,这个相似度的值在一定程度上决定了两个文本是否属于同一个类别.等待分类的全部文本都根据前面所得出的k篇文本进行一定程度的分类,然后把它们所求得的相似度按照式(3)求和,并将所得的值进行大小排列,最后把待分类的投诉信息分到所得值最大的类别中,则:
(3)
式中:k——提取的文本数;
Tj(di)——di是否属于Cj类,如果属于,则值为1,否则为0.
通过上述实验结果可知,在对两个电力投诉信息的文本向量间的相似程度进行计算时,忽略了一点,就是这些信息中待分类的文本和训练文本之间所属类别也存在一定的相似性,这在很大程度上影响了更加准确的分类.因此,本文加入了中心向量法的思想,对原来的算法进行了部分改进.
对夹角余弦相似度计算公式和相似度求和公式进行了改进,具体公式为:
(4)
(5)
式中:Vi——类别i的权向量;
Vij——权向量Vi的第j个特征值,初始化为1.
假设有A和B两个类别,如果A的文本d0被分类到B中,即TA(d0,VA)小于TB(d0,VB),此时就需要增大A的权向量VA,减小B的权向量VB,直到TA(d0,VA)大于TB(d0,VB),在进行了多次的重复实验操作后,待分类文本d0能够比较准确地归类到其应该属于的类别中.
这一方法可使各个类别中本身存在的文本篇数不均匀的问题在很大程度上得到改进.假设此时类别A里面含有较多的文本数,反之类别B的较少,如果按照以前的KNN分类算法的话,B里面的文本就会很轻易地被分类到A里面去,那么相对于类别A来说,类别B进行的权向量增减操作会明显变多.这样的话,B反而会有比较大一点的权向量VB.因此,通过该改进方法可以得到很大的改善,分类结果的准确度也有所提高.
W0jW0j>0
(6)
(7)
或采用减少操作的公式进行改进:
(8)
(9)
式中,increase_weight,reduce_weight表示每次进行增减操作的权值.
在对文本分类算法结果的评价中,最权威的两个评判标准分别是分类准确度和分类速度.分类方法的复杂程度会决定其分类速度,而文本分类的准确度就是将专业方法与人工方法分类的结果进行比对,得到两者的相似程度,不相似程度越高则准确度相应的就会越高.
评判文本分类结果主要有准确率(Precision)和召回率(Recall)两个标准[5].因为准确率和召回率在分类结果上表示的是两个方面的结果,因此通常使用F1测试值统筹评估分类结果[6].计算准确率、召回率和F1值的方法[7]大致分为两种,即微平均和宏平均.各个评价指标如表1所示.
准确率(P)、召回率(R)、F1值、宏F1值(MacroF1)和微F1值(MicroF1)的计算公式为:
(10)
(11)
(12)
(13)
(14)
(15)
式(10)中,如果A+B=0,则P=1.式(11)中,如果A+C=0,则R=1.
表1 评价指标分类
本次实验中,每次增减操作的步长都通过增减操作的权值进行控制,这在一定程度上会对实验结果产生影响,我们把权值全部设定为1.0时,能得到最好的稳定效果.在实验的过程中会出现一个值,这个值很不容易确定,我们称这个值为最大次数.通过实验可知,当把增减操作最大次数设为5时,所得效果最好.
实验数据为某市电力公司人工客服整理出的500余条电力投诉信息,选取电力投诉文本库中的4个类别作为训练文本集,4个类别分别为供电质量、营业投诉、电网建设和停送电投诉.每一类文本的总数是不同的,分别将180,200,150,220条数据作为实验样本.结果如表2和表3所示.
从表2可以看出,使用改进算法后,准确率、召回率和F1值与以前相比都有特别明显的提升.由表3可以看出,相比传统算法和中心向量法,使用改进后算法的效果是最好的.由以上结果不难得出,改进后的算法相比以前的算法在分类上能得到更好的结果.
表2 3种算法在不同类别中的分类结果 %
表3 3种算法在整体上的测试结果 %
本文主要是在文本相似度方面进行了一定程度的改进.与传统算法相比,改进的分类算法的分类效果提高了近3%,且在相似度方面具有较为显著的提升.由此表明,改进的算法具有一定的有效性和可行性,能够帮助电力系统更好地收集、统计和处理客户的大量投诉信息.
[1] 宫秀军,孙建平,史忠植.主动贝叶斯网络分类器[J].计算机研究与发展,2002,39(5):74-79.
[2] 张宁,贾自艳,史忠植.使用KNN算法的文本分类[J].计算机工程,2005,31(8):171-173.
[3] JOACHIMS T.Text categorization with support vector machines:learning with many relevant features[C]//Proceeding of ECML-98,10th European Conference on Machine Learning,Berlin,1998:137-142.
[4] 王新丽.中文文本分类系统的研究与实现[D].天津:天津大学,2007.
[5] 曹勇,吴顺祥.KNN文本分类算法中的特征选取方法研究[J].科技信息(科技·教研),2006(12):26-28.
[6] 柴春梅,李翔,林祥.基于改进KNN算法实现网络媒体信息智能分类[J].计算机技术与发展,2009,19(1):1-4.
[7] 刘怀亮,张治国,马志辉,等.基于SVM与KNN的中文文本分类比较实证研究[J].信息系统,2008,31(6):941-944.