当前位置: 首页 > 专利查询>重庆大学专利>正文

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

技术编号:10322779 阅读:203 留言:0更新日期:2014-08-14 09:58
本发明专利技术提供了一种基于半监督概率潜在语义分析的软件变更日志分类方法,该方法结合了先验知识所确定的单词字典,并根据单词与单词之间的概率相关性、单词与变更日志类别之间的概率相关性、以及软件变更日志自身与变更日志类别之间的概率相关性,客观地对软件变更日志进行分类,避免了依据词频特性的权重值进行软件变更日志的分类,使得分类的准确性得以提升,有效地解决了现有技术中因人为设定权重值导致软件变更日志分类存在误差、准确性较低的问题。

【技术实现步骤摘要】
基于半监督概率潜在语义分析的软件变更日志分类方法
本专利技术属于计算机信息技术及软件工程
,尤其涉及一种基于半监督概率潜在语义分析的软件变更日志分类方法。
技术介绍
目前,在计算机领域中,通常会对已经处理的操作进行记录,生成处理日志,用于后续能够从记录的处理日志中了解已经进行的操作情况,以及还可以根据记录的处理日志确定相应的后续操作策略。在计算机软件的运行、管理和维护过程中,往往因为软件存在BUG、错误或者缺陷需要对软件进行修复处理,或者为了适应新的环境或新的需求而对软件新增软件功能或软件特征,或者为了提高软件的可读性、可重用性、可维护性等而需要对软件进行重新编辑或重新构建(也称为软件重构)。这些操作,都会对使得软件代码程序发生变更,相应地,也会产生软件变更日志,以便于后期对计算机软件的管理和维护过程中,能够根据软件变更日志了解软件的变更历史,从而能够对软件所出现问题加以统计、定位处理,进而对软件产品的质量指标、生命周期、运行风险等进行分析。而软件的日志数据库中,软件变更日志可能数量众多,要根据软件变更日志进行软件相关分析,就必须要对软件变更日志加以分类,以了解软件变更日志所记载的变更操作类型。在现有技术中,通常都通过计算机信息处理技术,利用软件变更日志分类方法,由计算机执行对软件变更日志的分类,以解决人工分类工作量大、耗时长、效率低下的问题。目前,领域内也对软件变更日志分类技术进行了一些相关的研究。常用的软件变更日志分类方法如下:步骤一:从软件的日志数据库中提取出软件变更日志。步骤二:利用现有的词干提取算法,对软件变更日志进行词干提取处理,得到软件变更日志的词干中所包含的各个单词。词干提取处理,是为了获取能够表征软件变更日志所描述主要内容的特征性单词,通常在词干提取过程中需要剔除“the”、“on”、“a”、“which”等无实际内容表征意义的词。步骤三:基于词频特性,根据单词在某一类别软件变更日志中出现的频率,对单词赋予该类别的权重值;单词出现的频率越高,则其在该类别被赋予的权重值相应越大。然后,对比提取出的软件变更日志的词干中各个单词,若词干中也出现了相同的单词,则根据相应单词的类别权重值,来判断该软件变更日志所属的类别。但这样的软件变更日志分类方式中,单词的类别权重值往往都由人为地根据经验来设定,而对于一些同义词、多义词,如果其设置的类别权重值不合理,则容易容易出现误分类等问题。例如,因互为同义词的两个词分别在两个不同类别中出现的频率较高,而原本归属于类别B的软件变更日志中出现了该同义词,该同义词在类别A中的权重值更大,则导致该软件变更日志被误分类为类别A;又例如,某个单词为多义词,并在类别A中出现的概率非常高,具有较大的权重值,而原本归属于类别B的一个软件变更日志中出现了该多义词却并非表示其通常含义,但因为该多义词在类别A被赋予的权重值太大,而导致该软件变更日志被误分类为类别A。这些误分类现象,都容易导致日志管理人员得出错误的软件变更日志分析结果。因此,如何克服人为设定权重值导致的误差,进一步的提高软件变更日志分类的准确性,成为软件变更日志分类技术中首要解决的问题。
技术实现思路
针对现有技术中存在的上述问题,本专利技术提供了一种基于半监督概率潜在语义分析的软件变更日志分类方法,该方法结合了先验知识所确定的单词字典,并根据单词与单词之间的概率相关性、单词与变更日志类别之间的概率相关性、以及软件变更日志自身与变更日志类别之间的概率相关性,客观地对软件变更日志进行分类,避免了依据词频特性的权重值进行软件变更日志的分类,由此克服了人为设定权重值导致的误差,提高了软件变更日志分类的准确性,以解决现有技术中因人为设定权重值导致软件变更日志分类存在误差、准确性较低的问题。为实现上述目的,本专利技术采用了如下技术手段:基于半监督概率潜在语义分析的软件变更日志分类方法,包括如下步骤:A)根据先验知识,划分变更日志类别,并确定每个变更日志类别对应的关键单词,将各个变更日志类别对应的全部关键单词的集合作为单词字典;所述单词字典中每个变更日志类别对应的一个关键单词,是根据先验知识对属于相应变更日志类别的软件变更日志进行词干提取所获得的词干中的一个单词;所述变更日志类别具体划分为三类,即:第1个变更日志类别z1:修复软件损坏、错误或缺陷所产生的软件变更日志;第2个变更日志类别z2:新增软件功能或软件特征所产生的软件变更日志;第3个变更日志类别z3:对软件进行重新编辑或重新构建所产生的软件变更日志;B)获取若干个属于上述三个变更日志类别且所属变更日志类别已知的软件变更日志作为训练样本,所有训练样本的集合作为训练数据库;分别统计训练数据库中属于第k个变更日志类别zk的训练样本个数nk,k∈{1,2,...,K},K为变更日志类别数,即K=3,并对训练数据库中每个训练样本分别进行词干提取处理,得到每个训练样本的词干中所包含的各个单词;C)建立单词字典中的关键单词、软件变更日志与变更日志类别之间的概率潜在语义分析模型:其中,P(wj|zk)表示单词字典中第j个关键单词wj与第k个变更日志类别zk的概率关系,k∈{1,2,3};P(zk|di)表示第k个变更日志类别zk与第i个软件变更日志di的概率关系;P(di)表示第i个软件变更日志di相对于训练数据库的单词数量概率,即ni表示第i个软件变更日志di的词干中所包含的单词数,Nbace表示训练数据库中所有训练样本的词干所包含的单词数量总和;D)构造概率潜在语义分析模型的似然函数L:其中,i∈{1,2,...,M},M表示软件变更日志的总数量;j∈{1,2,...,N},N表示单词字典中关键单词的总数量;n(wj,di)表示单词字典中第j个关键单词wj在软件变更日志di中出现的次数;E)将训练数据库中的每个训练样本分别作为软件变更日志di代入到步骤D构造的似然函数L中,采用期望最大化算法,对单词字典中各个关键单词wj与各个变更日志类别zk的概率关系以及各个变更日志类别zk与作为软件变更日志di的各个训练样本的概率关系进行求解;将期望最大化算法收敛求解所得的单词字典中各个关键单词wj与各个变更日志类别zk的概率关系标记为Pc(wj|zk),将期望最大化算法收敛求解所得的各个变更日志类别zk与作为软件变更日志di的各个训练样本的概率关系标记为Pc(zk|di),j∈{1,2,...,N},i∈{1,2,...,M},k∈{1,2,...,K};并分别计算每个变更日志类别zk的样本中心概率关系,其中,第k个变更日志类别zk的样本中心概率关系为:此时软件变更日志的总数量M取值为训练数据库中训练样本的总数量;F)获取待确定所属变更日志类别的软件变更日志作为待测样本,所有待测样本的集合作为测试数据库;对测试数据库中每个待测样本分别进行词干提取处理,得到每个待测样本的词干中所包含的各个单词;G)将测试数据库中的每个待测样本分别作为软件变更日志di代入到步骤D构造的似然函数L中,采用期望最大化算法,对各个变更日志类别zk与作为软件变更日志di的各个待测样本的概率关系进行求解;H)根据步骤G中求得的各个变更日志类别zk与各个待测样本的概率关系,以及各个变更日志类别zk的样本中心概率关系分别本文档来自技高网
...
基于半监督概率潜在语义分析的软件变更日志分类方法

【技术保护点】
基于半监督概率潜在语义分析的软件变更日志分类方法,其特征在于,包括如下步骤:A)根据先验知识,划分变更日志类别,并确定每个变更日志类别对应的关键单词,将各个变更日志类别对应的全部关键单词的集合作为单词字典;所述单词字典中每个变更日志类别对应的一个关键单词,是根据先验知识对属于相应变更日志类别的软件变更日志进行词干提取所获得的词干中的一个单词;所述变更日志类别具体划分为三类,即:第1个变更日志类别z1:修复软件损坏、错误或缺陷所产生的软件变更日志;第2个变更日志类别z2:新增软件功能或软件特征所产生的软件变更日志;第3个变更日志类别z3:对软件进行重新编辑或重新构建所产生的软件变更日志;B)获取若干个属于上述三个变更日志类别且所属变更日志类别已知的软件变更日志作为训练样本,所有训练样本的集合作为训练数据库;分别统计训练数据库中属于第k个变更日志类别zk的训练样本个数nk,k∈{1,2,...,K},K为变更日志类别数,即K=3,并对训练数据库中每个训练样本分别进行词干提取处理,得到每个训练样本的词干中所包含的各个单词;C)建立单词字典中的关键单词、软件变更日志与变更日志类别之间的概率潜在语义分析模型:P(wj,di)=P(di)Σk=1K[P(zk|di)P(wj|zk)];]]>其中,P(wj|zk)表示单词字典中第j个关键单词wj与第k个变更日志类别zk的概率关系,k∈{1,2,3};P(zk|di)表示第k个变更日志类别zk与第i个软件变更日志di的概率关系;P(di)表示第i个软件变更日志di相对于训练数据库的单词数量概率,即ni表示第i个软件变更日志di的词干中所包含的单词数,Nbace表示训练数据库中所有训练样本的词干所包含的单词数量总和;D)构造概率潜在语义分析模型的似然函数L:L=Πi=1MΠj=1NP(di)Σk=1K[P(zk|di)P(wj|zk)n(wj,di)];]]>其中,i∈{1,2,...,M},M表示软件变更日志的总数量;j∈{1,2,...,N},N表示单词字典中关键单词的总数量;n(wj,di)表示单词字典中第j个关键单词wj在软件变更日志di中出现的次数;E)将训练数据库中的每个训练样本分别作为软件变更日志di代入到步骤D构造的似然函数L中,采用期望最大化算法,对单词字典中各个关键单词wj与各个变更日志类别zk的概率关系以及各个变更日志类别zk与作为软件变更日志di的各个训练样本的概率关系进行求解;将期望最大化算法收敛求解所得的单词字典中各个关键单词wj与各个变更日志类别zk的概率关系标记为Pc(wj|zk),将期望最大化算法收敛求解所得的各个变更日志类别zk与作为软件变更日志di的各个训练样本的概率关系标记为Pc(zk|di),j∈{1,2,...,N},i∈{1,2,...,M},k∈{1,2,...,K};并分别计算每个变更日志类别zk的样本中心概率关系,其中,第k个变更日志类别zk的样本中心概率关系为:P‾c(zk)=Σi=1MPc(zk|di)M;]]>此时软件变更日志的总数量M取值为训练数据库中训练样本的总数量;F)获取待确定所属变更日志类别的软件变更日志作为待测样本,所有待测样本的集合作为测试数据库;对测试数据库中每个待测样本分别进行词干提取处理,得到每个待测样本的词干中所包含的各个单词;G)将测试数据库中的每个待测样本分别作为软件变更日志di代入到步骤D构造的似然函数L中,采用期望最大化算法,对各个变更日志类别zk与作为软件变更日志di的各个待测样本的概率关系进行求解;H)根据步骤G中求得的各个变更日志类别zk与各个待测样本的概率关系,以及各个变更日志类别zk的样本中心概率关系分别计算各个待测样本与各个变更日志类别zk样本中心概率的相似度Sim(dx,m,zk),从而确定各个待测样本所属的变更日志类别:Xm=argmaxk[Sim(dx,m,zk)],k∈{1,2,3};]]>其中,Xm表示任意的第m个待测样本dx,m所属的变更日志类别;相似度Sim(dx,m,zk)为:Sim(dx,m,zk)=Σk=1K[Px(zk|dx,m)·P‾c(zk)]Σk=1KPx(zk|dx,m)2·Σk=1KP‾c(zk)2;]]>其中,Px(zk|dx,m)表示步骤G中求得的第k个变更日志类别zk与第m个待测样本dx,m的概率关系;由此,根据所确定的各个待测样本所属的变更日志类别,对各个作为待测样本的软件变更日志添加类别标记。...

【技术特征摘要】
1.基于半监督概率潜在语义分析的软件变更日志分类方法,其特征在于,包括如下步骤:A)根据先验知识,划分变更日志类别,并确定每个变更日志类别对应的关键单词,将各个变更日志类别对应的全部关键单词的集合作为单词字典;所述单词字典中每个变更日志类别对应的一个关键单词,是根据先验知识对属于相应变更日志类别的软件变更日志进行词干提取所获得的词干中的一个单词;所述变更日志类别具体划分为三类,即:第1个变更日志类别z1:修复软件损坏、错误或缺陷所产生的软件变更日志;第2个变更日志类别z2:新增软件功能或软件特征所产生的软件变更日志;第3个变更日志类别z3:对软件进行重新编辑或重新构建所产生的软件变更日志;B)获取若干个属于上述三个变更日志类别且所属变更日志类别已知的软件变更日志作为训练样本,所有训练样本的集合作为训练数据库;分别统计训练数据库中属于第k个变更日志类别zk的训练样本个数nk,k∈{1,2,…,K},K为变更日志类别数,即K=3,并对训练数据库中每个训练样本分别进行词干提取处理,得到每个训练样本的词干中所包含的各个单词;C)建立单词字典中的关键单词、软件变更日志与变更日志类别之间的概率潜在语义分析模型:其中,P(wj|zk)表示单词字典中第j个关键单词wj与第k个变更日志类别zk的概率关系,k∈{1,2,3};P(zk|di)表示第k个变更日志类别zk与第i个软件变更日志di的概率关系;P(di)表示第i个软件变更日志di相对于训练数据库的单词数量概率,即ni表示第i个软件变更日志di的词干中所包含的单词数,Nbace表示训练数据库中所有训练样本的词干所包含的单词数量总和;D)构造概率潜在语义分析模型的似然函数L:其中,i∈{1,2,…,M},M表示软件变更日志的总数量;j∈{1,2,…,N},N表示单词字典中关键单词的总数量;n(wj,di)表示单词字典中第j个关键单词wj在软件变更日志di中出现的次数;E)将训练数据库中的每个训练样本分别作为软件变更日志di代入到步骤D构造的似然函数L中,采用期望最大化算法,对单词字典中各个关键单词wj与各个变更日志类别zk的概率关系以及各个变更日志类别zk与作为软件变更日志di的各个训练样本的概率关系进行求解;将期望最大化算法收敛求解所得的单词字典中各个关键单词wj与各个变更日志类别zk的概率关系标记为Pc(wj|zk),将期望最大化算法收敛求解所得的各个变更日志类别zk与作为软件变更日志di的各个训练样本的概率关系标记为Pc(zk|di),j∈{1,2,…,N},i∈{1,2,…,M},k∈{1,2,…,K};并分别计算每个变更日志类别zk的样本中心概率关系,其中,第k个变更日志类别zk的样本中心概率关系为:此时软件变更日志的总数量M取值为训练数据库中训练样本的总数量;该步骤具体为:e1)将训练数据库中的每个训练样本分别作为软件变更日志di代入到步骤D构造的似然函数L中,i∈{1,2,…,M},此时软件变更日志的总数量M取值为训练数据库中训练样本的总数量;对第k个变更日志类别zk与作为软件变更日志di的训练样本的概率关系P(zk|di)的初始取值进行随机取值,对单词字典中第j个关键单词wj与第k个变更日志类别zk的概率关系P(wj|zk)的初始取值为:其中,nk表示训练数据库中属于第k个变更日志类别zk的训练样本个数,k∈{1,2,3};nj,k表示单词字典中第j个关键单词wj在训练数据库中属于第k个变更日志类别zk的训练样本中所出现的次数;e2)在期望最大化算法的E-step中,根据当前概率关系P(wj|zk)和概率关系P(zk|di)的取值,分别计算各个变更日志类别zk的条件分布概率P(zk|di,wj),k∈{1,2,…,K}:e3)在期望最大化算法的M-step中,利用步骤e2得到的条件分布概率P(zk|di,wj),分别针对单词字典中的各个关键单词wj,j∈{1,2,…,N},训练数据库中作为软件变更日志di的各个训练样本,i∈{1,2,…,M},以及各个变更日志类别zk,k∈{1,2,…,K},对概率关系P(wj|zk)和概率关系P(zk|di)的取值进行更新:

【专利技术属性】
技术研发人员:张小洪鄢萌傅颖徐玲杨梦宁洪明坚葛永新杨丹
申请(专利权)人:重庆大学
类型:发明
国别省市:重庆;85

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1