1.一种基于自注意力机制的软件缺陷报告分配方法,其特征在于,包括如下步骤:
步骤1、收集并整理软件项目的缺陷报告以及修复人员数据,获取软件缺陷报告的类别、项目、组件、摘要、详细描述以及修复该缺陷的开发人员;
步骤2、对缺陷报告数据进行预处理;
步骤3、利用基于自注意力机制的神经网络训练预处理后的历史缺陷报告,挖掘其中隐含的语义信息,并匹配缺陷的最佳分配对象;其具体过程为:
3-1.使用预训练的语言表示模型,即BERT;进行自注意力机制计算;
3-2.神经网络输入层,即Embedding层,采用了词嵌入、和位置嵌入两种嵌入向量;
3-2-1.词嵌入层是要将输入缺陷报告的各个词转换成固定维度的向量;缺陷报告文本输入词嵌入层之前,要先进行单词分割处理,在文本的开头插入[CLS]标记,在文本结尾插入[SEP]标记;
3-2-2.位置嵌入层表达缺陷报告文本中的单词顺序,用来代表缺陷报告的局部甚至是全局的结构;需要对缺陷报告中的单词位置信息进行编码,让模型捕获到不同位置的单词;
缺陷报告经过神经网络输入层,将得到的两种嵌入向量相加,输入到神经网络中间层,进行自注意力机制计算;
3-3神经网络中间层,即自注意力层,它是Transformer编码器的双向语言表示模型;基于此模型进行自注意力机制计算;自注意力层由6个相同的Transformer的编码器子层堆叠而成,每一层中由两个子层组成,第一个子层是多头自注意力层,第二个子层是位置敏感的全连接前向网络层,并且每一个子网络层都采用了残差连接和网络层正则化;3-4神经网络输出层,即softmax输出层;此层的神经单元个数为候选缺陷报告修复者的个数,输出看作此缺陷报告与每位候选缺陷报告修复者的概率;将输入层的[CLS]标记经过自注意力层计算后,与此层的神经单元全连接,经过softmax计算后,输出每位候选修复者的概率。
2.根据权利要求1所述的一种基于自注意力机制的软件缺陷报告分配方法,其特征在于:收集并整理软件项目的缺陷报告以及修复人员数据,其具体过程为:首先,利用爬虫技术,从缺陷追踪系统中爬取软件项目的历史缺陷报告,选取页面中”Resolution”字段为”FIXED”的缺陷报告,其中包含了描述该缺陷的文本属性,包括类别、项目、组件、摘要、详细描述,以及修复该缺陷的开发人员,然后保存到本地,过滤属性或开发人员字段缺失的缺陷报告。
3.根据权利要求1所述的一种基于自注意力机制的软件缺陷报告分配方法,其特征在于:对缺陷报告数据进行预处理;其具体如下:首先,把每个缺陷报告的类别、项目、组件、摘要、详细描述,以及修复该缺陷的开发人员信息拼接在一起,组成一个文本,供模型进行特征提取;其中许多字段是缩写的术语词,这些缩写词对分配缺陷报告至关重要,而缩写词无法让模型很好地学习其特征,因此将常见的缩写词进行还原;
在缺陷报告的描述中,对缺陷报告中对连续的单词无法让模型有效的提取特征进行单词分割;
接着进行文本预处理工作,包括分词、去除停用词和词干提取,把清洗后的缺陷报告作为模型的训练数据。