【技术实现步骤摘要】
一种基于双重信息检索的Bash代码注释生成方法
[0001]本专利技术涉及计算机
,尤其涉及一种基于双重信息检索的Bash代码注释生成方法。
技术介绍
[0002]Shell是开发人员和Linux操作系统之间进行交互的接口。当前Linux操作系统支持不同类型的shell,其中Bash是Linux默认的shell命令语言,并且在程序开发过程中应用较为广泛。Bash作为一种脚本语言,通常包括三个基本组件:实用程序(例如:find、mkdir、cd、grep),选项标签(例如:
‑
name、
‑
i),以及参数(例如:“*.java”,“TODO”)。和传统的编程语言C语言、Java语言、Python语言等相比,Bash语言的使用场景较少,但是Bash语言在Linux系统的开发和维护过程中的作用仍然不可忽视。除此之外,Bash语言还具有应用领域广泛以及语言灵活等特点。对于不熟悉Bash语言的开发人员来说,使用Bash代码在完成开发和维护任务时仍具有一定困难。
[0003]高质量的代码 ...
【技术保护点】
【技术特征摘要】
1.一种基于双重信息检索的Bash代码注释生成方法,其特征在于,包括以下步骤:(1)搜集高质量的Bash代码片段以及对应注释作为原始数据,形成原始语料库,对该语料库进行去重操作,得到数据集D,设定数据集D中数据格式为<Bash代码,代码注释>,该语料库包含来自10592个Bash代码数据;(2)使用CodeBert提取Bash代码片段的语义特征,并通过BERT
‑
whitening对语义特征向量进行关键特征提取和降维,计算Bash代码之间的语义相似度,根据语义相似度排序检索出前k个语义最相似的Bash代码片段作为候选代码;(3)将代码片段视为由词元组成的集合,通过文本编辑距离计算集合之间的词法相似度;(4)在语义相似度检索的k个代码片段中,计算目标代码和候选代码之间的词法相似度,从候选代码中检索出词法相似度最高的代码片段;(5)根据双重检索获取的代码片段,复用该片段的代码注释作为目标Bash代码的代码注释。2.根据权利要求1所述的基于双重信息检索的Bash代码注释生成方法,其特征在于,所述步骤(2)中通过CodeBert和BERT
‑
whitening操作提取代码语义信息,具体包括如下步骤:(2
‑
1)对于给定的Bash代码片段,将其视为文本序列,根据空格对序列进行分割,得到输入序列W;(2
‑
2)将序列W输入到CodeBert中,提取输出中第一层隐藏状态h0和最后一层的隐藏状态h
n
,并对它们取平均值,得到代码段的语义特征向量X;(2
‑
3)使用B...
【专利技术属性】
技术研发人员:陈翔,于池,杨光,刘珂,夏鸿崚,胡新宇,顾亚锋,
申请(专利权)人:南通大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。