基于BERT和BILSTM的重复缺陷报告检测方法技术

技术编号:38613889 阅读:11 留言:0更新日期:2023-08-26 23:41
本发明专利技术公开了基于BERT和BILSTM的重复缺陷报告检测方法。首先,使用BERT的词嵌入法将缺陷报告的文本信息映射成高维特征向量,捕获文本的深层语义信息。然后,将BERT模型输出的单词嵌入向量输入到BILSTM中,捕获时序信息,得到文本的高级特征表示。通过BERT的位置编码可以解决同样的词语,排列位置不同,语义可能不同的问题,而多头注意力机制扩展了模型关注不同位置的能力,BILSTM则可以更好的捕捉双向的语义依赖,在提取词的语义信息时更好的结合上下文。最后,采用MLP分类器来预测缺陷报告是否重复。实验结果表明该方法能够进一步提升重复缺陷报告检测的准确率。复缺陷报告检测的准确率。复缺陷报告检测的准确率。

【技术实现步骤摘要】
基于BERT和BILSTM的重复缺陷报告检测方法


[0001]本专利技术属于信息管理
,涉及软件开发缺陷报告的检测,具体涉及基于BERT和BILSTM的重复缺陷报告检测方法。

技术介绍

[0002]随着信息产业的迅猛发展,软件产业规模的不断增长以及软件开发流程的愈加复杂,软件缺陷无法避免。越来越多的项目使用Bugzilla、Debian等缺陷追踪系统来存储和管理软件缺陷报告。由于在整个流程中,开发人员、测试人员、用户等多方都会进行缺陷报告的编写与提交,因此一个缺陷可能会同时出现在多份报告中,并且错误报告总是以自然语言编写,因此对于一个相同的缺陷,在不同的报告中可能会以不同的方式描述。随着缺陷追踪系统中存储的报告越来越多,难免会存在大量内容重复的缺陷报告,影响后续的缺陷报告分派以及缺陷修复。通过人工手动检测系统中的重复缺陷报告是一个费时费力的问题。因此,如何有效检测重复的缺陷报告对于精简缺陷报告数量、降低缺陷报告分派的工作量、防止分派错误以及提高缺陷修复效率具有非常重要的意义。
[0003]为了提高检测重复缺陷报告的效率,从而降低缺陷报告分派的工作量,近年来研究者们提出了许多自动检测重复缺陷报告检测的技术,大致可以分为三类:基于信息检索技术的方法、基于机器学习的方法、基于深度学习的方法。前两类方法使用BM25、TF

IDF、主题建模等技术来判断两个缺陷报告是否重复,但这些方法大都使用静态词嵌入方法,仅仅考虑了缺陷报告文本的词频信息,并不能提取到文本的深层语义信息以及时序信息,也就无法解决一词多义等问题。对于第三类方法,虽然可以根据词嵌入动态的提取文本特征,但目前依然存在特征提取不充足、无法有效地处理复杂的单词依赖关系等问题,导致检测的准确率较低。因此,对于准确检测重复缺陷报告仍存在挑战。

技术实现思路

[0004]针对现有技术的不足,本专利技术提出了基于BERT和BILSTM的重复缺陷报告检测方法,结合缺陷报告对之间的交互特征和上下文信息,从而实现重复缺陷报告的准确检测。
[0005]基于BERT和BILSTM的重复缺陷报告检测方法,具体包括以下步骤:
[0006]步骤1、获取缺陷报告公开数据集,并构建重复和非重复的缺陷报告对。
[0007]步骤2、针对缺陷报告对进行噪声删除与文本预处理。
[0008]步骤3、提取缺陷报告对之间的全局语义特征及上下文时序特征,具体步骤如下:
[0009]步骤3

1、将处理后的缺陷报告对文本输入BERT模型,通过BERT词嵌入的方式得到带有位置信息的单词向量,然后基于多头注意力机制,从单词向量中提取包含缺陷报告对交互信息的全局语义特征。
[0010]步骤3

2、将步骤3

1得到的单词向量输入BILSTM模型中,提取上下文特征。
[0011]步骤4、将步骤3中得到的全局语义特征与上下文特征拼接融合,并输入到全连接层中,通过Softmax计算缺陷报告对重复的概率。
[0012]步骤5、使用交叉熵损失函数训练步骤3中的模型参数,使得步骤4中重复缺陷报告对的重复概率接近1,不重复缺陷报告对的重复概率接近0。
[0013]步骤6、针对待处理的缺陷报告进行预处理后,通过步骤3、4的方法检测该缺陷报告与数据集中的缺陷报告是否重复,若不重复,则将其加入数据集中,若重复,将其标记为重复缺陷报告,再加入数据集中。
[0014]本专利技术具有以下有益效果:
[0015]1、基于BERT及BILSTM进行特征提取,不仅可以获取缺陷报告文本的长距离依赖关系及全局特征,还可以更好的捕捉缺陷报告对之间的双向的语义依赖,在提取词的语义信息时更好地结合上下文,避免出现梯度消失和梯度爆炸等现象。
[0016]2、采用BERT模型下一句预测(Next Sentence Prediction,NSP)的方式对缺陷报告对进行向量嵌入以及特征提取,这样提取到的特征结合了两个缺陷报告之间的交互信息,能够识别相同词语在不同位置代表不同语义的情况,进一步提高重复缺陷报告检测的准确率。
附图说明
[0017]图1为重复缺陷报告检测方法流程图;
[0018]图2为实施例中使用的检测模型示意图。
具体实施方式
[0019]以下结合附图对本专利技术作进一步的解释说明;
[0020]本专利技术提出了一种基于BERT和BILSTM的重复缺陷报告检测方法,如图1所示,将一对经过预处理的缺陷报告文本内容输入训练后的网络模型,判断其内容是否重复。网络模型如图2所示,包括输入层、嵌入层、特征提取层、特征融合层和输出层。具体检测步骤如下:
[0021]步骤1、从公开数据集中获取缺陷报告,一份完整的缺陷报告包含摘要、描述、所属产品、组件、评论、重复缺陷报告ID等信息,其中摘要部分是对缺陷的简要描述,描述部分是缺陷报告的提交者对缺陷的具体描述。选择缺陷报告中的摘要与描述部分的内容,作为缺陷报告文本数据,再根据重复缺陷报告ID构造重复缺陷报告对和非重复缺陷报告对,并按比例划分为训练集及测试集。
[0022]步骤2、在缺陷报告的描述部分,除了用自然语言编写的对缺陷的详细描述外,还包括大量的非自然语言信息,例如:堆栈信息、url、代码片段等,这些内容并不包含语义信息,因此将其作为噪声,通过正则表达式删除。然后对剩余内容进行分词、词干化和小写转换、去除停用词等操作。
[0023]步骤3、采用监督学习的方式训练重复缺陷报告检测模型。
[0024]步骤3

1、将预处理后缺陷报告对文本输入到嵌入层,嵌入层采用BERT词嵌入的方式,通过在两个缺陷报告文本之间插入特殊标记[SEP]进行区分,然后将其文本内容转化为768维的词向量。BERT词嵌入在单词嵌入的基础上加入了位置嵌入,在文本向量表示时考虑到了文本的位置信息对文本语义的影响。位置嵌入向量的计算公式如下:
[0025][0026][0027]其中,p代表单词的位置,d
pos
表示位置嵌入向量的维度,i表示从0到d
pos
/2

1的整数,则2i表示位置嵌入向量中的偶数维,2i+1表示位置嵌入向量中的奇数维,PE为位置矩阵。PE
2i
(p)是矩阵PE中第p行、第2i列的数值。PE
2i+1
(p)是矩阵PE中第p行,第2i+1列的数值。即针对奇数列和偶数列上的数值,分别使用不同的公式计算。
[0028]将BERT词嵌入所得的词向量和位置嵌入向量进行求和运算,即可得到带有位置信息的单词向量。这种单词向量,不仅具有文本语义信息,而且还具有单词的位置信息,有利于后续步骤中的注意力计算操作。
[0029]步骤3

2、将词嵌入层输出的两篇缺陷报告的文本单词向量按顺序拼接成一个词嵌入矩阵,词嵌入矩阵与三个随机初始化的矩阵相乘,分别作为Query、Key、Val本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.基于BERT和BILSTM的重复缺陷报告检测方法,其特征在于:具体包括以下步骤:步骤1、获取缺陷报告公开数据集,选择缺陷报告中的摘要与描述部分的内容,构建重复和非重复的缺陷报告对;步骤2、针对缺陷报告对进行噪声删除与文本预处理;步骤3、提取缺陷报告对之间的全局语义特征及上下文时序特征,具体步骤如下:步骤3

1、将处理后的缺陷报告对文本输入BERT模型,通过BERT词嵌入的方式得到带有位置信息的单词向量,然后基于多头注意力机制,从单词向量中提取包含缺陷报告对交互信息的全局语义特征;步骤3

2、将步骤3

1得到的单词向量输入BILSTM模型中,提取上下文特征;步骤4、将步骤3中得到的全局语义特征与上下文特征拼接融合,并输入到全连接层中,通过Softmax计算缺陷报告对重复的概率;步骤5、使用交叉熵损失函数训练步骤3中的模型参数,使得步骤4中重复缺陷报告对的重复概率接近1,不重复缺陷报告对的重复概率接近0;步骤6、针对待处理的缺陷报告进行预处理后,通过步骤3、4的方法检测该缺陷报告与数据集中的缺陷报告是否重复,若不重复,则将其加入数据集中,若重复,将其标记为重复缺陷报告,再加入数据集中。2.如权利要求1所述基于BERT和BILSTM的重复缺陷报告检测方法,其特征在于:将缺相报告对中的非自然语言视为噪声信息,利用正则表达式删除。3.如权利要求1或2所述基于BERT和BILSTM的重复缺陷报告检测方法,其特征在于:针对噪声删除后的缺陷报告内容,进行分词、词干化和小写转换、去除停用词处理。4.如权利要求1所述基于BERT和BILSTM的重复缺陷报告检测方法,其特征在于:所述BER...

【专利技术属性】
技术研发人员:邵艳利霍佳敏王兴起方景龙魏丹陈滨
申请(专利权)人:杭州电子科技大学
类型:发明
国别省市:

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

1