【技术实现步骤摘要】
基于双向LSTM和注意力机制的软件技术债务识别方法
本专利技术属于软件工程领域,具体涉及到一种基于双向LSTM和注意力机制的软件技术债务识别技术。
技术介绍
在软件开发过程中,软件项目的最终目标是提交高质量且无缺陷的软件给用户。但是,由于资源受限或者时间不足等原因,开发人员通常会提交不完整的或临时修复的代码。这种现象被WardCunningham隐喻为技术债务,他认为这是一种以牺牲长期代码质量为代价而寻求短期收益的技术折中。与金融债务类似,技术债务也会产生利息,会影响软件的质量、成本和开发效率,因此需要开发者在未来付出额外成本来偿还。传统的做法是开发人员手动检查软件项目,并确定哪些模块存在技术债务需要被偿还。在实际操作中,由于开发者之间实践经验不同,一些开发人员不知道自己编写的代码存在技术债务。另外,与软件系统中存在的缺陷不同,技术债务通常是看不见的,这导致技术债务不能被及时发现。近年来,越来越多的学者致力于识别技术债务,他们提出不同的技术债务识别方法。一方面,他们从源代码角度出发,通过工具分析源代码并检测代码异常, ...
【技术保护点】
1.基于双向LSTM和注意力机制的软件技术债务识别方法,其特征在于包括如下步骤:/n步骤(1)获取代码注释集合S=(S
【技术特征摘要】
1.基于双向LSTM和注意力机制的软件技术债务识别方法,其特征在于包括如下步骤:
步骤(1)获取代码注释集合S=(S1,S2,...,Sm),m为代码注释的数量,将集合中的每个样本表示成St=<id,project,y,comment>,t=1,2,3,...,m,其中id表示代码注释编号,project表示代码注释所属项目,y表示代码注释的标签,即是否是技术债务,y=1,表示为技术债务;y=0,表示为非技术债务,comment表示代码注释的文本信息;
步骤(2)对每条comment进行预处理,包括删除完全相同的代码注释、历史修订记录、不含英文字母的字符和停用词,并转换大写字母为小写字母;经过预处理后每个样本为St=<id,project,y,preComment>,其中preComment表示预处理后代码注释的文本信息;
步骤(3)使用Glove方法对预处理后的每个代码注释文本的每个单词wr生成一个d维的词向量υr;
步骤(4)设置双向LSTM和注意力机制模型的参数,包括:隐藏单元数Numberofhiddenunits、LSTM训练最大迭代次数IterMax、批量大小Batchsize、L2和学习率Learningrate、将集合S分为训练数据集合ζtrain和验证数据集合ζves;
步骤(5)将训练数据集合ζ...
【专利技术属性】
技术研发人员:俞东进,王琳,陈信,郭世明,
申请(专利权)人:杭州电子科技大学,
类型:发明
国别省市:浙江;33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。