Duplicate Bug Report Detection Using Dual-Channel Convolution Neural Networks
文件大小:
19k
资源说明:《使用双通道卷积神经网络的重复bug报告检测》这篇论文提出了一种创新的方法来解决软件开发中的重复bug报告问题。传统的bug报告检测通常依赖于人工检查,效率低下且容易出错。论文作者受到图像处理领域的启发,将卷积神经网络(CNN)应用到文本数据上,特别是bug报告的文本分析。
文章的贡献主要集中在以下四点:
1. 将bug报告看作是双通道矩阵,类似于图像处理中的灰度图像和彩色图像的概念。一个bug报告被表示为一个单通道矩阵,两个报告的矩阵组合形成双通道矩阵,用以区分重复和非重复的bug报告。
2. 使用词嵌入技术将每个错误报告转化为二维矩阵,便于CNN处理。相比于RNN和LSTM等其他神经网络模型,CNN更擅长处理多通道输入,能有效地捕捉文本中的上下文关系。
3. 设计了一个包含数据预处理、训练和部署三个阶段的DC-CNN框架。在预处理阶段,提取了错误报告的关键信息(如组件、产品、摘要和描述),进行了文本清洗和标准化。接着使用word2vec模型捕捉语料库的语义规则,并将文本表示为单通道矩阵。构建双通道矩阵进行训练和测试。
4. 提出了一种CNN模型,其中包含了不同大小的卷积核,用于从错误报告对中提取特征。模型的第一卷积层有三个分支,每个分支对应不同大小的内核,以捕获不同长度的上下文信息。通过多次卷积和池化操作,最终得到用于分类的特征向量。
CNN模型的工作流程如下:通过卷积层提取特征,接着通过池化层减少数据维度并保留关键特征,最后通过全连接层进行分类。模型的输出是一个独立的概率值`¿predict`,代表两个报告之间的预测相似性。损失函数被设定为与Sigmoid激活函数相适应的形式,以确保输出值在0和1之间,表示相似度。
论文还介绍了评估方法和实验设置,使用了来自三个开源项目的数据集,并将它们合并成一个“combined”数据集,以验证方法的有效性。通过与其他方法的对比实验,展示了双通道CNN模型在检测重复bug报告方面的优越性能。
这篇论文引入了一种新颖的深度学习方法,利用双通道CNN来提高bug报告重复性的检测效率,降低了开发人员的工作负担,有助于提升软件开发的质量和效率。这种方法不仅在理论上具有创新性,而且在实践中也显示出良好的应用前景。
本源码包内暂不包含可直接显示的源代码文件,请下载源码包。
English
