APP下载

APP缺陷问题评论分类方法研究

2018-12-10王延飞

软件导刊 2018年9期
关键词:文本分类

王延飞

摘要:随着智能手机的普及,APP软件越来越流行,随之而来的是APP软件用户评论的增多。在数量极大的评论中,关于APP软件缺陷问题的评论是APP开发者最关心的。通过对APP评论的大量阅读和观察,发现APP软件缺陷问题是分散的。总结了7类缺陷问题,使用改进卡方统计和APP软件简介中的名词和动词作为特征选择思路,使用朴素贝叶斯算法对每个缺陷问题评论进行训练学习。用8 677条评论进行实验,结果表明该方法的准确率、召回率和F1值较高。该方法不仅减轻了人工标记APP缺陷问题评论的工作量,而且提高了分类准确度。

关键词:朴素贝叶斯;APP评论;文本分类

DOIDOI:10.11907/rjdk.181167

中图分类号:TP301

文献标识码:A文章编号文章编号:16727800(2018)009005905

英文标题Classified Method for APP Software's User Comments of Defect Issues

--副标题

英文作者WANG Yanfei

英文作者单位(Department of Information Engineering and Automation,KunmingUniversity of Science and Technology,Kunming 650500,China)

英文摘要Abstract:With the popularity of smart phones,APP software is becoming more and more popular,followed by the increase of APP software users' comments.In a large number of comments, the comments on APP software defects are the core issues APP developers most concern.For the defects of APP software are scattered,7 kinds of defects are summarized,and then the improved Chi square statistics and the nouns and verbs of the introduction of APP software employed as feature selection ideas,and training study of the defects of each comment is conducted by Naive Bayesian algorithm.8677 comments are taken in the experiment and the experimental results show that the accuracy,recall and F1 value of the method are high.It is concluded that this method not only reduces the workload of the comment on APP defects,but also improves the accuracy of the classification.

英文关键词Key Words:Naive Bayes;APP Comment; text classification

0引言

随着移动网络的发展,微博、微信等APP开始兴起并迅速普及,使用移动网络进行交流和娱乐逐渐流行,在APP平台上发表个人观点和想法的越来越多,其长度一般小于60字。这些观点和想法在话题发现和APP缺陷分析等方面有一定價值。在APP软件问题评论中,大量是关于APP软件缺陷问题的评论。白成刚[1]指出,软件缺陷定义中失效、错误、故障、缺陷、差错、事故等词汇的含义非常接近,学术界对此解释很不一致,在软件领域使用时更容易混淆。尹国定[2]指出,所谓软件错误,是指在开发阶段产生、在调试和测试阶段未被发现的程序错误。对APP软件开发者而言,从APP评论中分析出APP软件的缺陷类型非常重要,可据此对APP软件作出相应修改。

1相关工作

文本分类指按照预先定义的主题类别,为文档集合中每个文档确定一个类别。文本分类是文本挖掘的重要内容。文本分类是一个有指导的学习过程,一般包括两个步骤:①文本分类器训练,使用已知类别的文本训练集训练分类器;②使用未知类别的文本测试集测试文本分类器。

1.1文本特征选择算法

所有特征选择算法都是衡量特征重要程度后再进行选择,而如何量化特征的重要性是各种方法的最大不同。卡方验证是通过预先设定一个原假设,在原假设成立的情况下观察实际值和理论值之间的差值确定假设是否成立。其差值,即卡方统计值如式(1)所示。

χ2(t,c)=∑ei=1(xi-E)2E(1)

式(1)中,t代表某个特征,c代表某个事件,xi代表xi的时间观察值,理论值E为数学期望,该原理简单易懂具有很高的使用价值。当观察值和理论值偏差很大时原假设不成立,当观察值和理论值偏差很小时原假设成立。

周爱武等[3]使用卡方统计法提取文本的特征词语,并使用SVM算法对文本情感进行了分类处理。实验结果显示该方法的精准度和召回率都在82%以上,达到了预期效果,但是没有考虑多分类类别相关的处理条件。徐明等[4]提出了基于改进的卡方统计方法,对微博的特征抽取并使用KNN算法分类,在分类效果上有了明显提高,但还需扩大数据量,排除单个特征对分类结果的影响。张辉宜等[5]考虑了在不均衡数据集上词语的频度和类别的数量等因素,以致每个类别中不能选择出有效特征。李平等[6]提出了混合卡方统计的特征选择方法,在原来的卡方统计基础上,引入词频和逆文本频率等因素,以便减少选择与类别无关的特征。针对文本分类中出现的特征词语较少情况,宋钰婷[7]提出了一种卡方统计与LDA的主题模型对文本进行分类,并与互信息、信息增益特征选择算法进行比较,证明了卡方统计算法的优势。

1.2基于LDA的文本分类算法

LDA 是Latent Dirichlet Allocation的简称,是一种文档主题生成模型。微博和APP评论比较相似,万本帅[8]提出一个基于LDA的微博生成模型MRT-LDA,利用微博之间的转发、对话等关系计算微博之间的相关性,挖掘微博主题。LDA采用词袋方法对文档建模,忽略了词语之间顺序,不适合应用在APP评论问题上。

张金瑞等[9]使用LDA主题模型,并引入词向量对新闻数据进行分类,但是没有考虑句子之间和段落之间存在的主题转移问题。APP评论是一种短文本,吕超镇等[10]使用LDA对文本进行预测,得到了文档的主题分布,然后把主题中的词语补充到原文档中。该方法对文档的特征词语进行了扩充,使得分类效果有所提升。郭克友等[11]使用LDA模型对道路图像进行处理,并结合LSD算法对道路的车道线进行确定,以便准确分类。谢晨阳等[12]提出改进的LDA模型,通过确定主题数目,并发掘每个标签之间的层次关系,以提高分类效果。

13基于朴素贝叶斯的文本分类算法

近年来,有研究者使用朴素贝叶斯作为文本分类方法。朴素贝叶斯是在贝叶斯原理基础上加入了特征独立的假设。贝叶斯理论历史悠久,有着坚实的理论基础,处理很多问题时直接而又高效,很多高级自然语言处理模型可从它演化而来。朴素贝叶斯是在贝叶斯理论基础上,假设特征之间是独立互不影响的。虽然“所有特征彼此独立”这个假设在现实中不太可能成立,但它可以大大简化计算,而且有研究表明对分类结果的准确性影响不大。根据朴素贝叶斯算法计算每个文本属于每个类别的概率,将文本分类于概率最大的类别。

贝叶斯原理用来描述两个条件概率之间的关系,比如p(Y|X)和P(X|Y)。具体来说,事件Y在事件X发生的条件下的概率,与事件X在事件Y发生的条件下的概率是不一样的,但这两者有确定关系,贝叶斯原理就是阐述这两者关系的。贝叶斯原理用以下公式阐述:

P(Y|X)=P(Y)P(X|Y)P(X)(2)

P(Y)和P(X)是先验概率,p(Y|X)是后验概率,是事件X发生的条件下事件Y发生的概率。贝叶斯算法通过对数据集各个概率计算,得到每个特征数据问题类型的概率,进而得到一个文本数据问题类型的概率,最后得到最大概率即为该文本应属的问题类型。每个文本特征互不影响,称作 “文本特征条件独立性假设”,并定义事件Y=(Y1,Y2,… ,Ym),X代表事件所包含的属性,X=(X1,X2,…,Xn)。可将式(2)重写为:

P(Ym|Xn)=P(Ym)P(Xn|Ym)P(Xn)=P(Ym)P(Xn)∏ni=1P(Xi|Ym)(3)

朴素贝叶斯算法基本步骤:

(1)计算每个事件的先验概率P(Ym)和P(Xn)。P(Ym)指事件Ym在所有事件Y中的概率。令Dm表示数据集D中事件Ym组成的集合,若有充足的独立分布样本,则可容易估算出类先验概率。

P(Ym)=|Dm||D|(4)

计算先验概率P(Xn)。P(Xn)指每个事件属性在所有事件属性中出现的概率。在给定数据集中,该概率与事件类别无关。

P(Xn)=CouXnCouX(5)

式(5)中,CouXn代表属性Xn在数据集D中出现的次数,CouX代表所有属性的总数。

(2)条件概率P(Xn|Ym)指每个属性在每个事件中出现的概率。令DYm,Xn表示DYm在事件Ym的数据集上取值为Xn的样本集合,则条件概率P(Xn|Ym)可估计为:

P(Xn|Ym)=|DYm,Xn||DYm|(6)

(3)通过计算得到步骤(1)和步骤(2)中的P(Ym)、P(Xn)和P(Xn|Ym),可计算得P(Ym|Xn)。

(4)通过计算一條数据中所有属性的P(Ym|Xn),得到它们和的最大值P(Ym|X),判断该数据属于事件m。

朴素贝叶斯算法具有原理简单有效的特点,可用于各种文本处理。熊志斌[13]运用朴素贝叶斯原理对搜狗实验室语料进行了分类,效果较好,说明朴素贝叶斯在文本分类中的适用性。但这种分类方法还有很多可以改进的地方。张雯[14]在朴素贝叶斯基础上提出了一种属性加权的文本集成分类器,并通过十折交叉验证了其在很多文本语料库中分类效果都较出色。邓维斌等[15]提出了一种基于粗糙集的加权朴素贝叶斯邮件过滤算法,相比朴素贝叶斯和支持向量机算法,其召回率、精确度和准确度效果都很好。要反映垃圾邮件特征的属性集,以免实验将正常邮件识别成垃圾邮件。罗慧钦等[16]根据朴素贝叶斯的“特征相互独立”假设在现实中不完全成立的情况下,提出一种隐朴素贝叶斯模型,用于对商品评论的情感分类,该方法有较好的分类效果。

2改进特征选择的朴素贝叶斯分类算法

本文研究的对象是APP缺陷问题评论,使用朴素贝叶斯对APP缺陷问题评论分类,特征选择算法是必不可少的。卡方统计广泛应用于文本特征选择上,其在每个特殊应用领域上的改进方式也不尽相同。本文根据APP缺陷问题评论特点,对卡方统计算法进行改进,以提高文本特征选择的准确性。

2.1APP评论获取与分词

本文分类所使用的APP评论数据来源于安卓市场(网址:www.hiapp.com)。使用爬虫程序从安卓市场上获取文本,获取的APP评论信息包括APP名称、用户名、APP评论、APP简介等信息。汉语和其它语言在表达方式上有差异,在得到APP评论后,需要对其分词以便于理解文本。本文采用的分词工具是中科院的NLPIR汉语分词系统(网站:http://ictclas.nlpir.org/),分词后的结果如表1所示。

2.2停用词处理

通过对大量APP评论的观察,发现存在很多词语对文本分析作用较小的情况,称之为“停用词”。为加快文本分析效率,需对停用词进行一定的筛除。一般的处理方式是采用很多研究者总结出的停用词表,例如“哈工大停用词词库”和“四川大学机器学习智能实验室停用词库”。但由于这些停用词表综合了多个领域的词语,针对某个特定领域时作用不大。文本在借鉴已有停用词表基础上引入词频元素,步骤如下:

(1)网上有很多用于文本分析而参考的停用词表,如“哈工大停用词词库”和“四川大学机器学习智能实验室停用词库”,对两者内容进行合并和去重,得到停用词表S1。

(2)对所有APP评论计算每个词语的词频TF,公式为:

TFi,j=ni,j∑knk,j(7)

式(7)中,ni,j是该词在文件dj中的出现次数,而分母则是在文件dj中所有字词出现的次数之和。

通过公式(7)得到所有词语的TF集合,集合样式是[w,n],w代表词语,n代表该词语的TF值。通过该集合,可以清楚了解词语的出现情况,然后按照TF值的大小对词语从大到小排序,得到集合L1。

(3)遍历集合L1的每个词语,把取到的每个词语与停用词表S1进行比对。令集合L1当前被取到的词语为Wc,若Wc被包含在停用词表S1中,则将Wc存入新集合L2中,直至集合L2词语的个数达到Q个。实验显示当Q取20时,得到的停用词更为准确。

(4)遍历集合L2中的所有词语。若一条APP评论中包含集合L2中的词语,则将其从APP评论中筛除。

通过以上处理,得到的APP评论更能反映核心表达内容,能提高文本处理效率。

2.3文本特征选择

本文研究对象是APP缺陷问题评论的特征。若要对其分析出好的效果,文本特征的选择尤为重要。特征选择步骤如下:

(1)APP简介中的信息反映了APP功能,即是特征选择中提到的特征。APP簡介信息如表1所示。取APP简介中词性为名词和动词的词语作为该APP的特征[17],即APP评论分词以n和v作为后缀的词语。以表1中的APP简介分词为例,“地图/n”、“功能/n”、“智能/n”、“语音/n”、“美食/n”、“机票/n” “酒店/n”等词语作为APP特征。若APP评论出现前面几个词语,将存入APP的特征集Lf1。

(2)虽然文献[4]使用引入频度的卡方统计对微博特征进行选择,但在APP缺陷问题评论中只通过加入频度,还不能得到较好的特征选择结果。通过大量观察发现,真正能反映APP缺陷问题评论的文本特征具有同时出现的特点,比如在崩溃问题中, “总是”和“崩溃”多同时出现,而且两个词语之间的距离也较近。又比如在APP软件整体缺陷问题中,“不”和“好”也多同时出现,并且这两个词语在APP评论中的距离很近。根据这个特点,在使用传统卡方统计进行特征选择时,加入词语同时出现[18]和词语距离因素,以提高特征选择方法的准确度。

根据卡方统计值定义,将公式(1)转化为:

χ2(t,cv)=N·(AD-CB)2(A+C)(B+D)(A+B)(C+D)(8)

且N=A+B+C+D。

式(8)中,N代表所有文本的数量,t代表特征词,cv代表某个文本类别,A代表在类别cv文本集中包含特征词t的文本数量,B代表其它类别文本集中包含特征词t的文本数量,C代表类别cv文本集中不包含特征词t的文本数量,D为其它类别文本集中不包含特征词t的文本数量。

根据步骤(2)对卡方统计的改进,将公式(8)转化为:

χ2([tp,tq],cv)=N·(AD-CB)2(A+C)(B+D)(A+B)(C+D)(9)

同样满足N=A+B+C+D。

令N表示所有文本特定的数量,tp和tq代表特征词,cv代表某个文本类别,A代表在类别cv文本集中同时包含特征词tp和tq的文本数量,B代表其它类别文本集中包含特征词tp和tq的文本数量,C代表类别cv文本集中不包含特征词tp和tq的文本数量,D为其它类别文本集中不包含特征词tp和tq的文本数量。

算法流程如图1所示。

为得到所有词语卡方值,根据公式(10)找出词语和各类别卡方值集合中的最大值作为分类系统的卡方值,并选择一定数目k1的卡方值存入APP特征集Lf2。

χ2max=maxχ2([tp,tq],cv)(10)

最终APP特征集是Lf= Lf1∪Lf2,本文最终使用的APP特征集是Lf。通过上述步骤,特征选择效果更好,内容更全面准确。

2.4实验

2.4.1评价指标

文本分类评价指标主要有召回率(Recall,R)、精准率(Precision,P)和F1值,F1是精准率和召回率的调和平均数,各指标计算公式如下:

P=TPTP+FP(11)

R=TPTP+FN(12)

F1=TP+TNTP+TN+FP+FN(13)

公式(11)、(12)、(13)中,TP表示正确分类的正元组数,FP表示错误标记为正元组的负元组数,TN表示分类正确的负元组数,FN表示错误标记为负元组的正元组数。

2.4.2实验分析

本文实验使用APP缺陷问题评论8 677条,包括7种缺陷问题:①崩溃问题。指评论中提到的“崩溃”类似的问题,如评论“这个APP老是崩溃”;②响应时间问题。指评论中提到的“反应慢”类似的问题,如评论“它老是反应慢”;③功能表现不佳问题。指评论中提到的针对APP具体功能出现的问题评论,如评论“QQ不能发消息了”;④安装问题。指用户在安装APP时出现的问题,如评论“微信老是安装不上”;⑤下载问题。指用户在下载APP时出现的问题,如评论“这个下载问题比较严重”;⑥资源问题。指用户在使用APP过程中出现的智能设备资源消耗过大问题,如评论“这个APP耗电太多”;⑦整体缺陷问题。指用户对APP整体体验较差问题,如评论“这个太烂”。

实验的分类算法使用朴素贝叶斯算法,卡方值数量k1=1 300,在两个词语的距离阈值k2=4时实验效果最好,最后通过十折交叉验证。

表2和表3展示在不同类别的APP缺陷问题评论中,本文方法与传统卡方统计方法的试验结果比较。可以看出,在不同指标上本文方法都有提高,这是因为传统的卡方统计方法没有考虑到APP缺陷评论问题特点,即能正确反映APP缺陷问题的词语之间有同时出现的特点。

APP缺陷问题评论类型的多样性也是影响分类效果的一个因素。例如整体缺陷问题的有关评论,其内容较少,不能很好地对其特征进行选择,导致分类效果低于80%。而下载问题的评论,其内容格式较为稳定,所以分类效果较好。

3结语

通过对APP缺陷问题评论的分析与研究,本文提出了一种改进卡方统计APP评论特征选择方法。首先,对APP评论进行预处理,包括分词和停用词处理。然后根据APP缺陷问题评论特点,对传统卡方统计方法进行改进,加入了词语共同出现和词语距离因素。实验结果表明,改进的特征选择方法分类效果有所提高。但本文方法对已定义好的7种缺陷问题分类效果较好,而对出现未知的缺陷问题分类效果就不是很好。今后要使分类器具有学习功能,使其能对未知问题学习并识别未知问题特点,能归成一类或多类。

参考文献参考文献:

[1]白成刚.基于Bayes网的软件可靠性研究[D].杭州:浙江大学, 1999.

[2]尹国定.网络软件故障分析[J].计算机工程与应用, 1987(12):56.

[3]周爱武,马那那,刘慧婷.基于卡方统计的情感文本分类[J].微电子学与计算机,2017,34(8):5761.

[4]徐明,高翔,许志刚,等.基于改进卡方统计的微博特征提取方法[J].计算机工程与应用,2014,50(19):113117.

[5]張辉宜,谢业名,袁志祥,等.一种基于概率的卡方特征选择方法[J].计算机工程,2016,42(8):194198.

[6]李平,戴月明,王艳.基于混合卡方统计量与逻辑回归的文本情感分析[J].计算机工程,2017(12):3536.

[7]宋钰婷,徐德华.基于LDA和SVM的中文文本分类研究[J].现代计算机,2016(5):1823.

[8]万本帅.基于MRTLDA模型的微博文本分类[D].广州:华南师范大学,2016.

[9]张金瑞,柴玉梅,昝红英,等.基于LDA的弱监督文本分类方法[J].计算机工程与设计,2017,38(1):8691.

[10]吕超镇,姬东鸿,吴飞飞.基于LDA特征扩展的短文本分类[J].计算机工程与应用,2015,51(4):123127.

[11]郭克友,王艺伟,郭晓丽.LDA与LSD相结合的车道线分类检测算法[J].计算机工程与应用,2017,53(24):219225.

[12]谢晨阳,卢焱鑫.基于HDP的监督多标签文本分类研究[J].计算机工程与应用,2017,53(23):1823.

[13]熊志斌,刘冬.朴素贝叶斯在文本分类中的应用[J].软件导刊,2013,12(2):4951.

[14]张雯,张化祥.属性加权的朴素贝叶斯集成分类器[J].计算机工程与应用,2010,46(29):144146.

[15]邓维斌,王国胤,洪智勇.基于粗糙集的加权朴素贝叶斯邮件过滤方法[J].计算机科学,2011,38(2):218221.

[16]罗慧钦,陆向艳,张雄宝,等.基于隐朴素贝叶斯的商品评论情感分类方法[J].计算机工程与设计,2017,38(1):203208.

[17]冉猛,姜瑛.APP软件的用户评论模式分析方法[J].计算机科学,2017,44(11):181186.

[18]时永宾,余青松.基于共现词卡方值的关键词提取算法[J].计算机工程,2016,42(6):191195.

责任编辑(责任编辑:杜能钢)

猜你喜欢

文本分类
基于组合分类算法的源代码注释质量评估方法
不同情境下中文文本分类模型的表现及选择
基于内容的英语录音教材标注研究与应用