[发明专利]基于双向LSTM和注意力机制的软件技术债务识别方法在审
申请号: | 202010036852.1 | 申请日: | 2020-01-14 |
公开(公告)号: | CN111273911A | 公开(公告)日: | 2020-06-12 |
发明(设计)人: | 俞东进;王琳;陈信;郭世明 | 申请(专利权)人: | 杭州电子科技大学 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06N3/04;G06N3/08 |
代理公司: | 浙江千克知识产权代理有限公司 33246 | 代理人: | 周希良 |
地址: | 310018 浙江*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 双向 lstm 注意力 机制 软件技术 债务 识别 方法 | ||
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和注意力机制模型的参数,包括:隐藏单元数Number of hiddenunits、LSTM训练最大迭代次数IterMax、批量大小Batch size、L2和学习率Learning rate、将集合S分为训练数据集合ζtrain和验证数据集合ζves;
步骤(5)将训练数据集合ζtrain和验证数据集合ζves中的代码注释文本的每个单词转化为步骤(3)获得的词向量,则每一条代码注释被表示为Seq={υ1,υ2,...,υn},n为最长代码注释对应的单词的个数;
步骤(6)将上述得到的Seq输入到双向LSTM网络层,正向LSTM获得Seq中单词正向特征向量反向LSTM获得Seq中单词反向特征向量并将上述的正向特征向量和反向特征向量进行连接组合为表示连接符,k=1,2,3,...,n;则每条代码注释被表示为Hb={h1,h2,...,hn};
步骤(7)使用注意力机制为得到的特征向量Hb的每个hk分配一个权重αk,通过计算获得处理后的新的特征向量o;
步骤(8)上述得到的特征向量o通过sigmoid函数得到每个输入样本的预测概率
步骤(9)使用类平衡交叉熵作为损失函数计算样本真实标签值y和预测概率的损失值;
步骤(10)训练上述基于注意力机制和双向LSTM模型的参数,当达到最大训练次数IterMax后,获得训练后的双向LSTM和注意力机制模型;
步骤(11)对于一条新的代码注释,首先按步骤(2)进行预处理,然后将预处理后的代码注释输入到步骤(10)获得的双向LSTM和注意力机制模型中,最终获得该代码注释的预测概率,如果预测概率大于等于0.5表示该代码注释是技术债务注释,小于0.5表示该代码注释不是技术债务注释。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州电子科技大学,未经杭州电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010036852.1/1.html,转载请声明来源钻瓜专利网。