首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

一种基于CodeBERT微调和检索增强的Bash代码注释生成方法 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:南通大学

摘要:本发明提供了一种基于CodeBERT微调和检索增强的Bash代码注释生成方法,属于计算机技术领域,解决了Bash代码开发过程中需要耗费人工成本手动编写注释的问题。其技术方案为:1使用构建的数据集对预训练模型CodeBERT进行微调;2在代码注释生成阶段,使用构建的双重信息检索方法检索出目标代码的最相似代码;4将目标代码和相似代码输入到微调后的CodeBERT编码器中,对得到的两个表征向量经过归一化操作;5将两个表征向量输入到融合层得到融合向量;6将融合向量输入到解码器中得到代码注释。本发明的有益效果为:快速根据现有Bash代码生成对应注释,提高Bash代码可读性和理解性。

主权项:1.一种基于CodeBERT微调和检索增强的Bash代码注释生成方法,其特征在于,包括以下步骤:1搜集高质量的Bash代码片段以及对应注释作为原始数据,形成原始语料库,对该语料库进行去重操作,得到数据集D,设定数据集D中数据格式为Bash代码,代码注释,该语料库包含来自10592个Bash代码数据;2使用数据集D对预训练模型CodeBERT进行微调,在微调结束后冻结CodeBRET模型的参数,得到适配Bash代码的编码器模型;3使用构建的双重信息检索方法从训练集中检索出目标代码的最相似代码Csim;4将目标代码Ctar和相似代码Csim作为两个输入,分别输入到微调的CodeBERT编码器中,得到对应的两个表征向量Vtar和Vsim;5对两个代码的表征向量进行L2归一化操作,得到两个归一化后的表征向量Mtar和Msim;6将两个归一化后的表征向量输入到构建的融合层中,融合层通过三层前馈神经网络输出将两个向量融合输出融合向量G;7将融合向量G输入到Transformer中的编码器中,最终输出对应的代码注释;所述步骤3中通过双重信息检索方法从训练集中检索出目标代码的相似代码,具体包括如下步骤:2-1通过语义相似度检索出k个相似度最高的代码;2-1-1对于给定的Bash代码片段,将其视为文本序列,根据空格对序列进行分割,得到输入序列W;2-1-2将序列W输入到CodeBert中,提取输出中第一层隐藏状态h0和最后一层的隐藏状态hn,并对它们取平均值,得到代码段的语义特征向量2-1-3通过计算目标代码段的语义特征向量和训练集中代码段语义特征向量之间的欧式距离,计算出代码段间的语义相似度,语义相似度计算公式为,其中j为向量维度: 2-1-4使用FaceBook开发的FAISS库作为向量检索工具,根据语义相似度检索训练集中排在前k位的候选相似代码;2-2通过词法相似度从k个候选代码中检索出最相似代码;2-2-1首先将代码片段视为词元集合,对代码序列内的重复词元进行去重删除操作,获取两个代码片段的集合A和B;2-2-2然后计算两个集合之间的文本编辑距离disA,B;2-2-3根据计算的文本编辑距离计算得到两个代码片段之间的词法相似度lexical_similarityA,B,计算公式为:其中len表示集合的规模大小;所述步骤5对目标代码和相似代码的表征向量的归一化操作,具体包括如下步骤:3-1得到的两个表征向量Vtar和Vsim进行L2归一化操作,对两个向量的三位空间进行归一化处理得到归一化向量Mtar和Msim,用于加快模型训练的收敛速度,提高模型的性能;3-2归一化的计算公式为: 所述步骤6中通过融合层将两个归一化向量Mtar和Msim融合,具体包括如下步骤:4-1首先通过单层的前馈神经网络F1将两个向量融合,生成向量G1,公式表达为:G1=F1[Mtar;Msim]其中[;]表示向量直接拼接;4-2然后通过单层的前馈神经网络F2将两个向量融合,生成向量G2,公式表达为:G2=F2[Mtar-Msim]其中[-]表示两个向量相减,突出两个向量之间的差异性;4-3接着,通过单层的前馈神经网络F3将两个向量融合,生成向量G3,公式表达为: 其中[°]表示向量的点乘运算,从而突出两个向量之间的相似性;4-4最后,通过单层的前馈神经网络F将上述三个向量G1,G2和G3进行融合,生成最终的融合向量G,公式表达为:G=F[G1;G2;G3]。

全文数据:

权利要求:

百度查询: 南通大学 一种基于CodeBERT微调和检索增强的Bash代码注释生成方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。