中国人民解放军军事科学院国防科技创新研究院何焱获国家专利权
买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
龙图腾网获悉中国人民解放军军事科学院国防科技创新研究院申请的专利一种基于深度学习的软件缺陷修复提交检测方法获国家发明授权专利权,本发明授权专利权由国家知识产权局授予,授权公告号为:CN116415146B 。
龙图腾网通过国家知识产权局官网在2026-03-20发布的发明授权授权公告中获悉:该发明授权的专利申请号/专利号为:202310209343.8,技术领域涉及:G06F18/214;该发明授权一种基于深度学习的软件缺陷修复提交检测方法是由何焱;李光杰;张翔;唐艺;易比一;李维昊设计研发完成,并于2023-03-07向国家知识产权局提交的专利申请。
本一种基于深度学习的软件缺陷修复提交检测方法在说明书摘要公布了:本发明涉及一种基于深度学习的软件缺陷修复提交检测方法,属于计算机软件技术领域。首先过滤掉开源软件提交消息中不包含任何与缺陷修复相关关键字的提交。然后利用提交消息中的文本信息以及提交所作修改的统计度量信息,训练基于深度学习和监督机制的分类系统,并判断剩余提交是否属于bug修复提交。本方法基于深度学习技术,能够排除大多数与缺陷修复无关的提交,并且识别出与缺陷修复相关的关键字,利用分类系统的投票机制,排除仅由单个分类器预测为错误修复的模棱两可提交,提高了检测准确率。本方法尤其适用于自动化构建大规模的软件缺陷库。
本发明授权一种基于深度学习的软件缺陷修复提交检测方法在权利要求书中公布了:1.一种基于深度学习的软件缺陷修复提交检测方法,其特征在于: 首先,过滤掉软件提交消息中不包含任何与缺陷修复相关关键字的提交,包括以下步骤: 步骤1.1:基于关键字的提交选择; 从项目版本控制系统的演化commits提交Cs中,选择不超过20%的比例与缺陷修复关键字列表相关的commits提交SC; 步骤1.2:特征提取; 对每个commit提交,提取提交消息语句和对应用程序所做的修改两部分特征数据:commit提交信息通常为自然语言形式,用于注释哪里做了修改以及为什么修改;对程序所做的修改通常由diff表示,表示程序部件的实际版本; 对每个commit提交提取的特征数据包括对程序所作修改的统计度量指标、消息语句、依赖关系树和语义n-grams.每个commit提交表示为: 1 2 其中,cm表示从每个commit提交信息中提取的特征数据,为对应用程序所做更改的统计度量指标,是包含关键字的第k个句子;对于包含关键字的第i个句子,包含3方面特征信息,其中为消息语句,为依赖关系树,为与𝑠𝑡i相关的语义n-grams; 然后,利用提交消息中的文本信息和提交所作修改的统计度量信息,训练基于深度学习和监督机制的分类系统,判断剩余提交是否属于bug修复提交;方法如下: 用提取的特征训练一个分类系统,将检测缺陷修复提交的问题形式化为一个二分类问题,其中,分类系统包括三个分类器:基于Transformer的分类器、基于语义n-gram的分类器、基于树型LSTM的分类器;当且仅当三个分类器中至少有两个预测提交为正例时,该提交被预测为正样本; 包括以下步骤: 步骤2.1:训练基于Transformer的分类器; 将文本和数值特征作为其输入,基于Transformer的分类器包括三个部分: 第一部分:用于处理文本输入的Transformer编码器,采用基于大小的预训练RoBERTa模型的架构和参数; 第二部分:用于处理数值特征输入的2层MLP; 第三部分:用于输入融合和预测的分类头; 对于每个样本,包括两个输入:预处理文本消息𝑡𝑥𝑡𝑖,以及经过最小-最大归一化处理的数值度量向量𝑠𝑀𝑒𝑡𝑟𝑖𝑐𝑠; 文本输入首先标记为令牌序列,称为s=[[CLS],𝑡1,···,𝑡𝑁],[CLS]表示整个序列的特殊全局令牌,𝑁是序列长度,𝑡𝑁表示文本输入分词后的第N个token; 将产生的令牌序列s提供给Transformer编码器,从最后一层获取每个令牌的隐藏状态[ℎ[CLS],ℎ,···,ℎ];将第一个令牌的隐藏状态作为整个序列的表示,称为ℎ=ℎ[CLS] 𝑠𝑀𝑒𝑡𝑟𝑖𝑐𝑠输入到多层感知器MLP中,得到输出向量ℎ=𝑀𝐿𝑃m,Θ,其中Θ表示感知器阈值; 最后,将分别表示文本消息和统计指标的输出向量连接起来,并将得到的向量输入分类器头部𝜙进行分类: 其中,p表示分类结果,x表示自变量,表示因变量,ℎ表示感知器输出; 使用RoBERTa初始化的Transformer模型通过标准交叉熵计算损失并微调参数𝜃和Θ; 步骤2.2:训练基于语义n-gram的分类器; 步骤2.2.1:特征提取; 基于语义n-gram的分类器,记为snClassifier,包括三个输入:提交信息;语义n-gram,即sn-grams;修改的统计度量指标; 首先,对提交消息进行文本预处理,删除不相关的标记,同时将词形还原为词根; 然后,将每个sn-gram作为一个token,并计算每个token的词频-逆文档频率TF-IDF;将sn-grams转换为一个数值向量;其中,TF-IDF根据不同token在不同文本中的重要性,赋予不同的权重; 最后,提取关于提交消息和sn-grams的统计度量指标#characters,#words,lenOfWords,#keywords,以及#sngrams;其中,#characters和#words分别是提交消息中characters和token的长度;lenOfWords=#characters除以#words,表示单词的平均长度;#keywords是出现在消息中的关键字的数量,来自𝑘𝑒𝑦𝑊𝑜𝑟d𝑠;#sngrams是sngrams的数量; 步骤2.2.2:训练基于SVM的分类器; 采用预处理后的提交消息、统计度量指标及步骤2.2.1中的特征来训练一个基于svm的二进制分类器,用于找到一个能够将正样本和负样本分开的超平面: 其中,f为训练数据计算决策曲面的判别函数,表示,w⊤是决策曲面的法线,称为权重向量,b是偏差; 一旦利用训练数据集训练好向量,如果w⊤c+𝑏0,则测试数据集的commit提交设置为1,即:预测为正样本,否则为负样本; 步骤2.3:训练基于树型LSTM的分类器; 该分类器包括三个部分,第一部分是一个标准的树型LSTM网络,用于处理依赖关系树,树中的每个节点都是一个LSTM单元,其输出转发给父节点; 第二部分是一个多层感知器网络MLP,处理修改的统计度量指标; 第三部分是一个合并层,将树型LSTM和MLP的输出合并,并通过softmax层生成预测;整个模型是随机初始化的,并使用标准的交叉熵损失进行训练; 分类系统包括三个分类器: 第一个分类器将提交消息看作标准文本,输入到Transformer文本分类器进行训练和预测; 第二个分类器将提交消息中包含的依赖关系和语义n-gram信息作为输入,并利用支持向量机SVM进行预测; 第三个分类器利用面向树的深度神经网络,利用提交信息中的依赖关系树信息,训练基于树的深度神经网络并进行预测; 当且仅当三个分类器中至少有两个分类器预测此提交为缺陷修复提交时,则该提交被检测为缺陷修复提交。
如需购买、转让、实施、许可或投资类似专利技术,可联系本专利的申请人或专利权人中国人民解放军军事科学院国防科技创新研究院,其通讯地址为:100071 北京市丰台区丰台东大街53号院;或者联系龙图腾网官方客服,联系龙图腾网可拨打电话0551-65771310或微信搜索“龙图腾网”。
以上内容由龙图腾AI智能生成。
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。

皖公网安备 34010402703815号
请提出您的宝贵建议,有机会获取IP积分或其他奖励