基于半监督概率潜在语义分析的软件变更日志分类方法

文档序号:6548032阅读:230来源:国知局
基于半监督概率潜在语义分析的软件变更日志分类方法
【专利摘要】本发明提供了一种基于半监督概率潜在语义分析的软件变更日志分类方法,该方法结合了先验知识所确定的单词字典,并根据单词与单词之间的概率相关性、单词与变更日志类别之间的概率相关性、以及软件变更日志自身与变更日志类别之间的概率相关性,客观地对软件变更日志进行分类,避免了依据词频特性的权重值进行软件变更日志的分类,使得分类的准确性得以提升,有效地解决了现有技术中因人为设定权重值导致软件变更日志分类存在误差、准确性较低的问题。
【专利说明】基于半监督概率潜在语义分析的软件变更日志分类方法
【技术领域】
[0001]本发明属于计算机信息技术及软件工程【技术领域】,尤其涉及一种基于半监督概率潜在语义分析的软件变更日志分类方法。
【背景技术】
[0002]目前,在计算机领域中,通常会对已经处理的操作进行记录,生成处理日志,用于后续能够从记录的处理日志中了解已经进行的操作情况,以及还可以根据记录的处理日志确定相应的 后续操作策略。
[0003]在计算机软件的运行、管理和维护过程中,往往因为软件存在BUG、错误或者缺陷需要对软件进行修复处理,或者为了适应新的环境或新的需求而对软件新增软件功能或软件特征,或者为了提高软件的可读性、可重用性、可维护性等而需要对软件进行重新编辑或重新构建(也称为软件重构)。这些操作,都会对使得软件代码程序发生变更,相应地,也会产生软件变更日志,以便于后期对计算机软件的管理和维护过程中,能够根据软件变更日志了解软件的变更历史,从而能够对软件所出现问题加以统计、定位处理,进而对软件产品的质量指标、生命周期、运行风险等进行分析。而软件的日志数据库中,软件变更日志可能数量众多,要根据软件变更日志进行软件相关分析,就必须要对软件变更日志加以分类,以了解软件变更日志所记载的变更操作类型。
[0004]在现有技术中,通常都通过计算机信息处理技术,利用软件变更日志分类方法,由计算机执行对软件变更日志的分类,以解决人工分类工作量大、耗时长、效率低下的问题。目前,领域内也对软件变更日志分类技术进行了一些相关的研究。常用的软件变更日志分类方法如下:
[0005]步骤一:从软件的日志数据库中提取出软件变更日志。
[0006]步骤二:利用现有的词干提取算法,对软件变更日志进行词干提取处理,得到软件变更日志的词干中所包含的各个单词。词干提取处理,是为了获取能够表征软件变更日志所描述主要内容的特征性单词,通常在词干提取过程中需要剔除“访6”、“011”、“&”、“^(*”等无实际内容表征意义的词。
[0007]步骤三:基于词频特性,根据单词在某一类别软件变更日志中出现的频率,对单词赋予该类别的权重值;单词出现的频率越高,则其在该类别被赋予的权重值相应越大。然后,对比提取出的软件变更日志的词干中各个单词,若词干中也出现了相同的单词,则根据相应单词的类别权重值,来判断该软件变更日志所属的类别。
[0008]但这样的软件变更日志分类方式中,单词的类别权重值往往都由人为地根据经验来设定,而对于一些同义词、多义词,如果其设置的类别权重值不合理,则容易容易出现误分类等问题。例如,因互为同义词的两个词分别在两个不同类别中出现的频率较高,而原本归属于类别B的软件变更日志中出现了该同义词,该同义词在类别A中的权重值更大,则导致该软件变更日志被误分类为类别A ;又例如,某个单词为多义词,并在类别A中出现的概率非常高,具有较大的权重值,而原本归属于类别B的一个软件变更日志中出现了该多义词却并非表示其通常含义,但因为该多义词在类别A被赋予的权重值太大,而导致该软件变更日志被误分类为类别A。这些误分类现象,都容易导致日志管理人员得出错误的软件变更日志分析结果。因此,如何克服人为设定权重值导致的误差,进一步的提高软件变更日志分类的准确性,成为软件变更日志分类技术中首要解决的问题。

【发明内容】

[0009]针对现有技术中存在的上述问题,本发明提供了一种基于半监督概率潜在语义分析的软件变更日志分类方法,该方法结合了先验知识所确定的单词字典,并根据单词与单词之间的概率相关性、单词与变更日志类别之间的概率相关性、以及软件变更日志自身与变更日志类别之间的概率相关性,客观地对软件变更日志进行分类,避免了依据词频特性的权重值进行软件变更日志的分类,由此克服了人为设定权重值导致的误差,提高了软件变更日志分类的准确性,以解决现有技术中因人为设定权重值导致软件变更日志分类存在误差、准确性较低的问题。
[0010]为实现上述目的,本发明采用了如下技术手段:
[0011]基于半监督概率潜在语义分析的软件变更日志分类方法,包括如下步骤:
[0012]A)根据先验知识,划分变更日志类别,并确定每个变更日志类别对应的关键单词,将各个变更日志类别对应的全部关键单词的集合作为单词字典;所述单词字典中每个变更日志类别对应的一个关键单词,是根据先验知识对属于相应变更日志类别的软件变更日志进行词干提取所获得的 词干中的一个单词;所述变更日志类别具体划分为三类,即:
[0013]第I个变更日志类别Z1:修复软件损坏、错误或缺陷所产生的软件变更日志;
[0014]第2个变更日志类别Z2:新增软件功能或软件特征所产生的软件变更日志;
[0015]第3个变更日志类别Z3:对软件进行重新编辑或重新构建所产生的软件变更日志;
[0016]B)获取若干个属于上述三个变更日志类别且所属变更日志类别已知的软件变更日志作为训练样本,所有训练样本的集合作为训练数据库;分别统计训练数据库中属于第k个变更日志类别Zk的训练样本个数nk,k e {1,2,...,K},K为变更日志类别数,即K = 3,并对训练数据库中每个训练样本分别进行词干提取处理,得到每个训练样本的词干中所包含的各个单词;
[0017]C)建立单词字典中的关键单词、软件变更日志与变更日志类别之间的概率潜在语义分析模型:
[0018]
【权利要求】
1.基于半监督概率潜在语义分析的软件变更日志分类方法,其特征在于,包括如下步骤: A)根据先验知识,划分变更日志类别,并确定每个变更日志类别对应的关键单词,将各个变更日志类别对应的全部关键单词的集合作为单词字典;所述单词字典中每个变更日志类别对应的一个关键单词,是根据先验知识对属于相应变更日志类别的软件变更日志进行词干提取所获得的词干中的一个单词;所述变更日志类别具体划分为三类,即: 第I个变更日志类别Z1:修复软件损坏、错误或缺陷所产生的软件变更日志; 第2个变更日志类别Z2:新增软件功能或软件特征所产生的软件变更日志; 第3个变更日志类别Z3:对软件进行重新编辑或重新构建所产生的软件变更日志; B)获取若干个属于上述三个变更日志类别且所属变更日志类别已知的软件变更日志作为训练样本,所有训练样本的集合作为训练数据库;分别统计训练数据库中属于第k个变更日志类别Zk的训练样本个数nk,k e {1,2,...,K},K为变更日志类别数,即K = 3,并对训练数据库中每个训练样本分别进行词干提取处理,得到每个训练样本的词干中所包含的各个单词; C)建立单词字典中的关键单词、软件变更日志与变更日志类别之间的概率潜在语义分析模型:
2.根据权利要求1所述基于半监督概率潜在语义分析的软件变更日志分类方法,其特征在于,所述步骤E具体为: el)将训练数据库中的每个训练样本分别作为软件变更日志Cli代入到步骤D构造的似然函数L中,i e {1,2,...,M},此时软件变更日志的总数量M取值为训练数据库中训练样本的总数量;对第k个变更日志类别Zk与作为软件变更日志Cli的训练样本的概率关系P(ZkIdi)的初始取值进行随机取值,对单词字典中第j个关键单词 ' 与第k个变更日志类别Zk的概率关系P (Wj I zk)的初始取值为:
3.根据权利要求1所述基于半监督概率潜在语义分析的软件变更日志分类方法,其特征在于,所述步骤G具体为: gl)将测试数据库中的每个待测样本分别作为软件变更日志Cli代入到步骤D构造的似然函数L中,i e {1,2,...,M},此时软件变更日志的总数量M取值为测试数据库中待测样本的总数量;对第k个变更日志类别Zk与作为软件变更日志Cli的待测样本的概率关系P(ZkIdi)的初始取值进行随机取值,对单词字典中第j个关键单词^与第k个变更日志类别Zk的概率关系P (Wj I zk)的初始取值为:
P (Wj I Zk) = Pc (Wj I Zk); g2)在期望最大化算法的E-step中,根据当前概率关系P(w」zk)和概率关系P(ZkIdi)的取值,分别计算各个变更日志类别Zk的条件分布概率P (zk I C^wjLk e {1,2,...,K}:
【文档编号】G06F17/30GK103984756SQ201410234156
【公开日】2014年8月13日 申请日期:2014年5月29日 优先权日:2014年5月29日
【发明者】张小洪, 鄢萌, 傅颖, 徐玲, 杨梦宁, 洪明坚, 葛永新, 杨丹 申请人:重庆大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1