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

一种基于双通道卷积神经网络的重复缺陷报告检测方法技术

技术编号:21999919 阅读:35 留言:0更新日期:2019-08-31 05:19
本发明专利技术涉及一种基于双通道卷积神经网络的重复缺陷报告检测方法,包括三个步骤,数据准备、建立CNN模型和待预测缺陷报告预测;在数据准备,对重复报告有用的字段,从缺陷报告中提取出来,对每一个报告,结构化信息和非结构化信息一起放入一个文本发明专利技术档中,经过预处理,每个由文本表示的报告被转化成一个单通道矩阵,把单通道矩阵组合成双通道矩阵,然后把一部分作为训练集,剩下的部分作为验证集。在CNN模型建立,以训练集为输入训练模型。在待预测缺陷报告预测阶段,训练好的模型加载预测一个未知缺陷报告与已知缺陷报告组成的缺陷报告对的相似度,这个相似度是一个表示缺陷报告对重复可能性的概率。本发明专利技术方法具有较高的预测准确性。

A Repeated Defect Reporting Detection Method Based on Two-Channel Convolutional Neural Network

【技术实现步骤摘要】
一种基于双通道卷积神经网络的重复缺陷报告检测方法
本专利技术涉及软件测试
,特别涉及一种基于双通道卷积神经网络的重复缺陷报告检测方法。
技术介绍
现代软件项目使用如Bugzilla[17]的缺陷跟踪系统来存储和管理缺陷报告。软件开发人员,软件测试人员和终端用户在遇到软件问题时,提交缺陷报告来描述这些问题。缺陷报告可以帮助指导软件维护和修复工作。随着软件系统的发展,每天都会有数百个缺陷报告被提交。当超过一个人提交缺陷报告来描述一个相同的bug时,重复缺陷报告就产生了。因为缺陷报告总是用自然语言描述,因此同一个bug也很可能以不同的形式描述。因为缺陷报告数量庞大,手动检测重复缺陷报告是一个艰难的工作。此外,因为缺陷报告以自然语言描述,提供一个标准模版也是不实际的。因此,重复缺陷报告的自动检测是一件有意义的工作,它可以避免多次修复同一个bug。今年来,许多重复缺陷报告自动检测技术被提出来以解决这个问题。这些方法可以被粗略地分为信息检索和机器学习两个方向。信息检索方法,它通常计算两个缺陷报告在文本上的相似度,即专注于根据文本描述来计算相似度。例如Hiew使用VSM(VectorSpaceModel)建立了一个模型,它将一个报告计算为一个具有TF-IDF(TermFrequency-InverseDocumentFrequency)术语加权方案的向量。基于VSM,Runeson等人首次运用自然语言处理技术来检测重复缺陷报告。Wang等人认为仅仅考虑自然语言信息不能很好地解决这个问题,因此他们还将执行信息作为一个特征来进行重复报告检测。然而,仅仅只有一小部分报告具有执行信息,所以这种方法具有很大的局限性。Sun等人提出了REP,这种方法不仅仅使用了summary和description,还使用了product,component,version等结构化信息。为了得到更高的文本相似度,他们扩展了BM25F,一种在信息检索领域有效的相似度计算方法。除了文本相似度和结构化相似度,Alipour等人还考虑了上下文信息对重复报告检测的影响。他们将LDA运用到这些特征上,取得了更好的结果。基于信息减速的方法在准确率和时间效率上都表现得很好,但是当一个问题以不同的术语描述时,结果就不令人满意了。机器学习方法通过自学习的算法来提取报告的潜在特征,但是传统的机器学习方法无法很好地学习输入的深度特征。SVM是机器学习一个经典的方法。Jalbert等人用它建立了一个可以过滤重复报告的分类系统。同时,他们认为先前的方法没有充分利用缺陷报告中的各种特征,因此他们在模型中使用了表面特征,文本语义和图聚类。在Jalbert等人工作的基础上,Tian等人考虑了一些新的特征并建立了一个线性模型。从特征和不平衡数据的角度出发,他们提高了重复报告检测的准确率。Sun等人运用SVM建立了一个解释模型,他们也首次把缺陷报告分为重复和非重复两类。L2R是另外一个非常有用的机器学习方法。基于此,Zhou等人考虑了文本和统计特征,并对他们使用了随机梯度下降算法。这个方法比传统的信息检索方法,例如VSM和BM25F具有更好的效果。随着词嵌入技术[在自然语言处理领域的应用,越来越多的研究人员用它来检测重复报告。Budhiraja等人用词嵌入技术将缺陷报告转化为向量然后计算它们的相似度。实验结果表明,这种方法具有提高重复报告检测准确率的潜力。
技术实现思路
本专利技术要解决的技术问题是重复报告自动检测问题,这个问题可以进一步分解为判断两个缺陷报告之间的关系,即,一个由两个报告组成的缺陷报告对是重复的还是不重复的。为实现上述目的,本专利技术采用如下技术方案:一种基于双通道卷积神经网络的重复缺陷报告检测方法,包括如下步骤:S100:数据准备S101:提取软件的缺陷报告,所有缺陷报告均由结构化信息和非结构化信息组成,对于每一个缺陷报告,将所有结构化信息和非结构化信息放入一个单独的文本专利技术档中;S102:对于每一个缺陷报告,进行预处理步骤,包括分词、提取词干、去除停用词和大小写转化;S103:预处理后,所有缺陷报告中的词被组合成一个语料库,在语料库上使用现有的Word2vec并选择CBOW模型,获得每一个词的向量表示,即得到每个缺陷报告的二维矩阵表示,称为缺陷报告的二维单通道矩阵;根据提取软件的缺陷报告时,该软件缺陷跟踪系统给出的已知信息(这个配对的信息是数据集中的,是由创建数据集的人处理得到的),将两个缺陷报告组成的缺陷报告对通过二维双通道矩阵表示,所述二维双通道矩阵由所述两个缺陷报告对应的二维单通道矩阵组合而成,然后给该双通道矩阵它打上重复或者不重复的标签;将所有打上标签的双通道矩阵,分为训练集和验证集;S200:建立CNN模型S201:将训练集和验证集中的所有双通道矩阵一起输入CNN模型;S202:在第一个卷积层中,设置个卷积核其中d是卷积核的长度,kw是卷积核的宽度;在第一次卷积后,双通道矩阵的两个通道就合并成一个了,第一层卷积公式为:其中C1表示第一个卷积层的输出,i表示第一个卷积层输入I1的第i个通道,j1表示输入的第j1行,b1表示偏移量,f1表示非线性的激活函数,给定输入的长度l(l=nw),填充值P=0和步长S=1,输出的长度O1可以被计算为:第一个卷积层的输出形状为将第一个卷积层的输出形状重塑成然后再卷积,在第二个卷积层,又设置了三种大小的卷积核每种卷积核个,第二层卷积的公式为:其中C2表示第二个卷积层的输出,j2表示第二个卷积层输入I2的第j2行,b2表示偏移量,f2表示非线性的激活函数,在这次卷积之后,会得到三种形状为的特征图,其中O2可以根据l(l=O1)和不同的卷积核长度d,按照公式(2)计算;S203:对所有的特征图进行最大池化;S204:重塑并拼接所有的特征图以得到一个维的向量,它将被作为全连接层的输入;两个全连接层之后,得到一个独立的概率simpredict,它代表了两个报告被预测的相似度;在最后一层,使用sigmoid作为激活函数得到simpredict;给定第一个全连接层的输出T={x1,x2,…,x300}和权重向量W={w1,w2,…,w300},simpredict可以被计算为:其中i表示T的第i个元素,b表示偏移量;S205:遍历训练集中的所有缺陷报告对,重复S202-S204;S206:根据损失函数进行反向传播以更新模型的隐藏参数,损失函数如公式(5):其中labelreal表示预设的缺陷报告对的标签,i表示第i个缺陷报告对,n表示缺陷报告对的总数;S207:每个epoch训练结束后,使用验证集对模型进行验证;当验证集的损失在5个epoch内都不再降低时,停止更新模型参数;否则返回S201,继续训练CNN模型;S300:待预测缺陷报告预测首先采用S102中的方法对待预测缺陷报告进行预处理,然后采用S103中的方法将该待预测缺陷报告转化为预测缺陷报告的二维单通道矩阵;将预测缺陷报告的二维单通道矩阵与该软件已有的N个缺陷报告的二维单通道矩阵两两组合得到N个待预测双通道矩阵,将N对待预测双通道矩阵构成预测集,将预测集中的每个待预测双通道矩阵作为输入,输入到所述CNN模型中,得到一个概率;当N个概率中,概率大于阈值的则认为该概率所本文档来自技高网
...

【技术保护点】
1.一种基于双通道卷积神经网络的重复缺陷报告检测方法,其特征在于:包括如下步骤:S100:数据准备S101:提取软件的缺陷报告,所有缺陷报告均由结构化信息和非结构化信息组成,对于每一个缺陷报告,将所有结构化信息和非结构化信息放入一个单独的文本专利技术档中;S102:对于每一个缺陷报告,进行预处理步骤,包括分词、提取词干、去除停用词和大小写转化;S103:预处理后,所有缺陷报告中的词被组合成一个语料库,在语料库上使用现有的Word2vec并选择CBOW模型,获得每一个词的向量表示,即得到每个缺陷报告的二维矩阵表示,称为缺陷报告的二维单通道矩阵;根据提取软件的缺陷报告时,该软件缺陷跟踪系统给出的已知信息(这个配对的信息是数据集中的,是由创建数据集的人处理得到的),将两个缺陷报告组成的缺陷报告对通过二维双通道矩阵表示,所述二维双通道矩阵由所述两个缺陷报告对应的二维单通道矩阵组合而成,然后给该双通道矩阵它打上重复或者不重复的标签;将所有打上标签的双通道矩阵,分为训练集和验证集;S200:建立CNN模型S201:将训练集和验证集中的所有双通道矩阵一起输入CNN模型;S202:在第一个卷积层中,设...

【技术特征摘要】
1.一种基于双通道卷积神经网络的重复缺陷报告检测方法,其特征在于:包括如下步骤:S100:数据准备S101:提取软件的缺陷报告,所有缺陷报告均由结构化信息和非结构化信息组成,对于每一个缺陷报告,将所有结构化信息和非结构化信息放入一个单独的文本发明档中;S102:对于每一个缺陷报告,进行预处理步骤,包括分词、提取词干、去除停用词和大小写转化;S103:预处理后,所有缺陷报告中的词被组合成一个语料库,在语料库上使用现有的Word2vec并选择CBOW模型,获得每一个词的向量表示,即得到每个缺陷报告的二维矩阵表示,称为缺陷报告的二维单通道矩阵;根据提取软件的缺陷报告时,该软件缺陷跟踪系统给出的已知信息(这个配对的信息是数据集中的,是由创建数据集的人处理得到的),将两个缺陷报告组成的缺陷报告对通过二维双通道矩阵表示,所述二维双通道矩阵由所述两个缺陷报告对应的二维单通道矩阵组合而成,然后给该双通道矩阵它打上重复或者不重复的标签;将所有打上标签的双通道矩阵,分为训练集和验证集;S200:建立CNN模型S201:将训练集和验证集中的所有双通道矩阵一起输入CNN模型;S202:在第一个卷积层中,设置个卷积核其中d是卷积核的长度,kw是卷积核的宽度;在第一次卷积后,双通道矩阵的两个通道就合并成一个了,第一层卷积公式为:其中C1表示第一个卷积层的输出,i表示第一个卷积层输入I1的第i个通道,j1表示输入的第j1行,b1表示偏移量,f1表示非线性的激活函数,给定输入的长度l(l=nw),填充值P=0和步长S=1,输出的长度O1可以被计算为:第一个卷积层的输出形状为将第一个卷积层的输出形状重塑成然后再卷积,在第二个卷积层,又设置了三种大小的卷积核每种卷积核个,第二层卷积的公式为:其中C2表示第二个卷积层的输出,j2表示第二个卷积层输入I2的第j2行,b2表示偏移量,f2表示非线性的激活函数,在这次卷积之后,会得到三种形状为的特征图,其中O2可以根据l(l=O1)和不同的卷积核长度d,按...

【专利技术属性】
技术研发人员:徐玲何健军帅鉴航杨梦宁张小洪洪明坚葛永新杨丹王洪星黄晟陈飞宇
申请(专利权)人:重庆大学
类型:发明
国别省市:重庆,50

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

1