CN113743064A - 基于决策的融合信息检索和深度学习的代码注释生成方法 - Google Patents

基于决策的融合信息检索和深度学习的代码注释生成方法 Download PDF

Info

Publication number
CN113743064A
CN113743064A CN202111060940.6A CN202111060940A CN113743064A CN 113743064 A CN113743064 A CN 113743064A CN 202111060940 A CN202111060940 A CN 202111060940A CN 113743064 A CN113743064 A CN 113743064A
Authority
CN
China
Prior art keywords
code
deep learning
model
information retrieval
similarity
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202111060940.6A
Other languages
English (en)
Inventor
陈翔
周彦琳
杨光
于池
刘珂
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nantong University
Original Assignee
Nantong University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nantong University filed Critical Nantong University
Priority to CN202111060940.6A priority Critical patent/CN113743064A/zh
Publication of CN113743064A publication Critical patent/CN113743064A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/169Annotation, e.g. comment data or footnotes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2415Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on parametric or probabilistic models, e.g. based on likelihood ratio or false acceptance rate versus a false rejection rate
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis
    • G06F8/436Semantic checking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Molecular Biology (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Probability & Statistics with Applications (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种基于决策的融合信息检索和深度学习的代码注释生成方法,包括以下步骤:(1)基于GitHub网站,挖掘高质量开源项目,搜集代码内的函数及其注释形成语料库,并划分成训练集和验证集;(2)构建基于信息检索的模型,通过融合语义、词法和语法相似度,在训练集中搜索出与目标代码段c最为相似的代码段csim,并复用其注释;(3)构建基于深度学习的模型,考虑对抗样本,并使用一种基于Transformer的模型生成代码注释;(4)在验证集上分析这两种模型的性能与两个代码段c和csim之间相似度分数的关系,确定相似度阈值;(5)当为一个新的目标代码生成注释时,根据决策模块输出对应的代码注释。本发明的有益效果为:可以生成高质量的代码注释。

Description

基于决策的融合信息检索和深度学习的代码注释生成方法
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于决策的融合信息检索和深度学习的代码注释生成方法。
背景技术
代码注释生成旨在帮助软件开发人员理解代码片段的设计意图和功能。由于项目开发预算有限或对代码注释的编写不够重视,代码注释的质量很难保证。此外,代码注释往往不能随着代码片段的演变而自动更新。因此,迫切需要设计有效的方法,在分析目标代码段的语义后自动生成高质量的代码注释。
以往的研究通常将信息检索用于代码注释生成任务,并取得了良好的性能。由于代码克隆在软件开发中十分普遍,基于信息检索的代码克隆检测技术可用于从现有代码存储库(如Github)或开发人员问答网站(如Stack Overflow)检索类似的代码片段。然后,开发人员可以复用类似代码段的注释。然而,这种方法缺乏普遍性。这意味着,如果检索到的代码段和目标代码段之间的相似度分数不高,那么直接使用检索到的代码段的注释是没有用的。
近年来,越来越多的研究应用深度学习方法生成代码注释,将代码注释生成任务建模为机器翻译任务。这些研究主要采用以源代码为输入、注释为输出的编码器-解码器框架。实验研究表明,这些方法可以取得较好的性能,并有较高的泛化能力,但生成的注释中倾向于包含高频词,难以覆盖到低频词。
除了基于信息检索或深度学习的方法外,最近的研究也致力于将信息检索和深度学习融合起来,取得了良好的效果。因此,为了提高代码注释生成的性能,需要探索更为有效的基于信息检索和基于深度学习的模型,并分析提出一种简单、高效的融合方法来进一步提升性能。
如何解决上述技术问题成为本发明面临的课题。
发明内容
本发明的目的在于提供一种基于决策的融合信息检索和深度学习的代码注释生成方法,该方法可以根据输入代码段c和训练集中检索到的最为相似的代码段csim的相似程度选择合适的代码注释生成模型,从而生成高质量的代码注释。
本发明的思想为:本发明提出基于决策的融合信息检索和深度学习的代码注释生成方法,首先分别构建了基于信息检索和基于深度学习的新模型,接着在验证集上分析给定代码段c与从训练集中检索到的最为相似的代码段csim之间的相似度分数与两个模型性能之间的关系,并确定相似度阈值,最后,当面对新的目标代码,决策模块选择输出对应的注释:如果目标代码c与基于信息检索模块检索出的最相似代码csim的相似度分数大于阈值,则选择基于信息检索模型输出的注释,否则选择基于深度学习模型输出的注释,本发明的方法在相同的语料库中取得了比基准方法更好的性能。
本发明是通过如下措施实现的:一种基于决策的融合信息检索和深度学习的代码注释生成方法,其中,包括以下步骤:
(1)基于GitHub网站,通过挖掘高质量的开源项目,搜集开源代码内的函数和对应的注释形成语料库,并进一步划分成训练集和验证集;
(2)构建基于信息检索的模型:通过融合语义、词法和语法相似度,为目标代码段c找到训练集中最为相似的代码段csim,然后,通过复用这个最相似代码段的注释作为目标代码段的注释,具体包括如下步骤:
(2-1)计算语义相似度:使用适用于代码的预训练模型CodeBert来提取代码语义特征,并通过BERT-whitening操作进行代码语义特征中关键特征提取和降维;通过计算目标代码段c和训练集中代码段的语义向量之间的L2距离,确定出代码段间的语义相似度;随后选择排在前k位语义最相似的代码片段作为候选代码;
(2-2)计算词法相似度:首先根据驼峰大小写命名规则来分割代码序列中的标识符;对代码序列进行去重复操作,以获得代码片段的词元集合;通过Jaccard相似度计算两个代码段之间的词法相似度;
(2-3)计算语法相似度:首先将代码转换为相应的抽象语法树;随后遍历代码抽象语法树的类型节点,以获得有序序列;最后通过计算有序序列之间的编辑距离来计算两个代码段之间的语法相似度;
(2-4)根据词法和语法相似度融合的比例加权求和计算出混合分数后,从候选代码中找出最相似的代码片段csim,复用它的代码注释。
(3)构建基于深度学习的模型:考虑对抗样本,并使用一种基于Transformer的模型生成代码注释,首先预先训练一个通用模型,然后在特定的语料库上对该模型进行微调,具体包括如下步骤:
(3-1)预训练阶段:根据命名规则进行标识符分割,接着通过BPE算法进行子词划分,得到代码序列C=(c1,c2,…,cn),解析代码成抽象语法树并遍历它以获得抽象语法树序列A=(a1,a2,…,an)。拼接这两个序列并使用标识符<ast>来分隔它们,得到输入序列Xinput=(c1,c2,…,cn,<ast>,a1,a2,…,an);通过嵌入层和位置编码,得到向量Xemb
(3-2)将向量输入双向编码器进行语义学习。首先将向量输入到多头注意层,利用残差连接和层归一化使矩阵运算维一致,并将网络中的隐含层归一化为标准正态分布,加快了模型的训练和收敛速度。接着,通过前馈层和两个线性映射层,使用激活函数生成向量Xhidden,通过残差连接和层归一化得到隐藏语义向量;
(3-3)解码器的每一层在编码器的最终隐藏层上执行额外的交叉注意计算,并通过交叉注意连接;解码器的输出被发送到一个完全连接的神经网络,它可以通过softmax层来预测下一个词元的概率;
(3-4)最后,借助束搜索算法来提高生成的代码注释的质量;
(3-5)微调阶段:不调整模型的bias和LayerNorm.weight参数,采用AdamW方法对其他参数进行微调;使用快速梯度法来获得对抗样本,添加扰乱Radv到编码器的嵌入层,获得对抗样本后用它进行训练。
(4)计算相似度阈值:在分别获得了基于信息检索模型和基于深度学习模型产生的代码注释后,在验证集上分析这两种模型的性能与两个代码段c和csim之间相似度分数之间的关系,确定相似度阈值,具体包括如下步骤:
(4-1)对于验证集中的每一个代码,都能得到基于信息检索和基于深度学习模型产生的注释以及相似度分数(基于信息检索模块计算的混合分数);
(4-2)然后把相似度分数集合划分到以0.1为间隔的10个子集上,分别计算每个子集上基于信息检索模型和基于深度学习模型的平均性能。对于每一个评测指标,当两个模型的性能比较结果发生变化时,确定阈值。最后,取四个评测指标(即BLEU、METEOR、ROUGE-L和CIDER这四个评测指标)下阈值的均值作为最终的相似度阈值。
(5)决策模块:当为一个新的目标代码生成注释时,根据基于决策的模块输出对应的代码注释,如果目标代码c与基于信息检索模块检索出的最为相似代码csim的相似度分数大于阈值,则选择基于信息检索模型输出的注释,否则选择基于深度学习模型输出的注释。
基于决策的融合信息检索和深度学习的代码注释生成方法的参数设置如下:
Figure BDA0003256516870000031
Figure BDA0003256516870000041
与现有技术相比,本发明的有益效果为:本发明提出了一种基于决策的融合信息检索和深度学习的代码注释生成方法,首先分别构建了基于信息检索的模型和基于深度学习的模型用于生成代码注释,所提的两个模型与相应类型的基准方法相比,都能取得更好的性能。通过分析发现,这两个模型的性能取决于基于信息检索模型检索到的最为相似代码的相似程度,因此进一步提出了一种基于决策的融合信息检索和深度学习的代码注释生成方法,如果目标代码c与基于信息检索模块检索出的最相似代码csim的相似度分数大于阈值,则选择基于信息检索模型输出的注释,否则选择基于深度学习模型输出的注释,这种基于决策的融合方法与最先进的融合基准方法相比,可以生成更高质量的代码注释,有助于提高开发人员的代码理解效率,易于软件的开发和维护。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。
图1为本发明提供的一种基于决策的融合信息检索和深度学习的代码注释生成方法的系统框架图;
图2为本发明提供的基于深度学习模型中编码器的结构。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。当然,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
实施例1
参见图1、图2所示,本发明提供了一种基于决策的融合信息检索和深度学习的代码注释生成方法,具体包括以下内容:
(1)搜集两个大规模语料库PCSD(Python代码注释数据集)和JCSD(Java代码注释数据集)作为实验对象,这两个语料库都是从GitHub挖掘的<函数,注释>对,并进一步划分成训练集、验证集和测试集,具体的统计信息(如代码段的数量、代码中的平均词元数和注释中的平均词元数)如表1所示。
表1
Figure BDA0003256516870000051
(2)构建基于信息检索的模型,通过融合语义、词法和语法相似度,为目标代码段c找到训练集中最为相似的代码段csim,然后,通过复用这个最相似代码段的注释作为目标代码段的注释,具体包括如下步骤:
(2-1)计算语义相似度:使用适用于代码的预训练模型CodeBert来提取代码语义特征,并通过BERT-whitening操作进行代码语义特征中关键特征提取和降维;通过计算目标代码段c和训练集中代码段的语义向量之间的L2距离,确定出代码段间的语义相似度;随后选择排在前k位语义最相似的代码片段作为候选代码;
(2-2)计算词法相似度:首先根据驼峰大小写命名规则来分割代码序列中的标识符;对代码序列进行去重复操作,以获得代码片段的词元集合;通过Jaccard相似度计算两个代码段之间的词法相似度;
(2-3)计算语法相似度:首先将代码转换为相应的抽象语法树;随后遍历代码抽象语法树的类型节点,以获得有序序列;最后通过计算有序序列之间的编辑距离来计算两个代码段之间的语法相似度;
(2-4)根据词法和语法相似度融合的比例加权求和计算出混合分数后,从候选代码中找出最相似的代码片段csim,复用它的代码注释。
(3)训练基于深度学习的模型:考虑对抗样本,并使用一种基于Transformer的模型生成代码注释,首先预先训练一个通用模型,然后在特定的语料库上对该模型进行微调,具体包括如下步骤:
(3-1)预训练阶段:根据命名规则进行标识符分割,接着通过BPE算法进行子词划分,得到代码序列C=(c1,c2,…,cn),解析代码成抽象语法树并遍历它以获得抽象语法树序列A=(a1,a2,…,an)。拼接这两个序列并使用标识符<ast>来分隔它们,得到输入序列Xinput=(c1,c2,…,cn,<ast>,a1,a2,…,an);通过嵌入层和位置编码,得到向量Xemb
(3-2)将向量输入双向编码器进行语义学习。首先将向量输入到多头注意层,利用残差连接和层归一化使矩阵运算维一致,并将网络中的隐含层归一化为标准正态分布,加快了模型的训练和收敛速度。接着,通过前馈层和两个线性映射层,使用激活函数生成向量Xhidden,通过残差连接和层归一化得到隐藏语义向量;
(3-3)解码器的每一层在编码器的最终隐藏层上执行额外的交叉注意计算,并通过交叉注意连接;解码器的输出被发送到一个完全连接的神经网络,它可以通过softmax层来预测下一个词元的概率;
(3-4)最后,借助束搜索算法来提高生成的代码注释的质量;
(3-5)微调阶段:不调整模型的bias和LayerNorm.weight参数,采用AdamW方法对其他参数进行微调;使用快速梯度法来获得对抗样本,添加扰乱Radv到编码器的嵌入层,获得对抗样本后用它进行训练。
(4)计算相似度阈值:在分别获得了基于信息检索模型和基于深度学习模型产生的代码注释后,在验证集上分析这两种模型的性能与两个代码段c和csim之间相似度分数之间的关系,确定相似度阈值,具体包括如下步骤:
(4-1)对于验证集中的每一个代码,都能得到基于信息检索和基于深度学习模型产生的注释以及相似度分数(基于信息检索模块计算的混合分数);
(4-2)然后把相似度分数集合划分到以0.1为间隔的10个子集上,分别计算每个子集上基于信息检索模型和基于深度学习模型的平均性能。对于每一个评测指标,当两个模型的性能比较结果发生变化时,确定阈值。最后,取四个评测指标(即BLEU、METEOR、ROUGE-L和CIDER这四个评测指标)下阈值的均值作为最终阈值。
(5)决策模块:当为一个新的目标代码生成注释时,根据基于决策的模块输出对应的代码注释,如果目标代码c与基于信息检索模块检索出的最为相似代码csim的相似度分数大于阈值,则选择基于信息检索模型输出的注释,否则选择基于深度学习模型输出的注释。
(6)该基于决策的融合信息检索和深度学习的代码注释生成方法的参数设置如表2所示:
表2
Figure BDA0003256516870000061
Figure BDA0003256516870000071
(7)在相同的语料库上对本发明方法和已有代码注释生成方法进行评估,使用来自神经机器翻译研究领域的四个评测指标(即BLEU、METEOR、ROUGE-L和CIDER)来自动评估生成注释的质量。表3显示了本发明构建的基于信息检索的模型和各信息检索基准方法的比较结果;表4显示了本发明构建的基于深度学习的模型和各深度学习基准方法的比较结果;表5显示了本发明提出的基于决策的融合方法和最先进的融合基准方法之间的比较结果。
表3基于信息检索的模型和基准方法的比较结果
Figure BDA0003256516870000072
Figure BDA0003256516870000081
经实验表明,本发明提出的基于信息检索的代码注释生成模型相较于4个最先进的信息检索基准方法,能生成更高质量的代码注释。消融实验也表明,使用BERT-whitening操作进行关键特征提取和降维,考虑词法和语法级别的相似度对模型性能的提升很有价值。
表4基于深度学习的模型和基准方法的比较结果
Figure BDA0003256516870000082
经实验表明,本发明提出的基于深度学习的代码注释生成模型相较于4个最先进的深度学习基准方法,能生成更高质量的代码注释。消融实验也表明,考虑对抗训练能进一步提升模型的性能。
表5基于决策的融合方法和最先进的融合基准方法的比较结果
Figure BDA0003256516870000091
经实验表明,本发明提出的基于决策的融合信息检索和深度学习的代码注释生成方法相较于先进的融合基准方法而言,在所有指标上都取得了更好的性能,也就是说能生成更高质量的代码注释。具体来看,最好的结果是在JCSD语料库上,其中ROUGE-L指标可以提高3.1。就评测指标而言,本发明提出的基于决策的融合方法比最先进的融合方法Rencos更简单、更有效,表明了本发明所提方法的竞争力。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (5)

1.一种基于决策的融合信息检索和深度学习的代码注释生成方法,其特征在于,包括以下步骤:
(1)基于GitHub网站,通过挖掘高质量的开源项目,搜集开源代码内的函数和对应的注释形成语料库,并进一步划分成训练集和验证集;
(2)构建基于信息检索的模型,通过融合语义、词法和语法相似度,为目标代码段c找到训练集中最为相似的代码段csim,然后,通过复用这个最相似代码段的注释作为目标代码段的注释;
(3)构建基于深度学习的模型,使用一种基于Transformer的深度学习模型用于生成相应的代码注释,首先预先训练一个通用模型,然后在特定的语料库上对该模型进行微调;
(4)在分别获得了基于信息检索模型和基于深度学习模型产生的代码注释后,在验证集上分析这两种模型的性能与两个代码段c和csim之间相似度分数之间的关系,确定相似度阈值;
(5)当为一个新的目标代码生成注释时,根据基于决策的模块输出对应的代码注释。
2.根据权利要求1所述的基于决策的融合信息检索和深度学习的代码注释生成方法,其特征在于,所述步骤(2)中通过融合语义、词法和语法相似度,为目标代码段c找到训练集中最为相似的代码段csim并复用它的注释,具体包括如下步骤:
(2-1)计算语义相似度:使用适用于代码的预训练模型CodeBert来提取代码语义特征,并通过BERT-whitening操作进行代码语义特征中关键特征提取和降维;通过计算目标代码段c和训练集中代码段的语义向量之间的L2距离,确定出代码段间的语义相似度;随后选择排在前k位语义最相似的代码片段作为候选代码;
(2-2)计算词法相似度:首先根据驼峰大小写命名规则来分割代码序列中的标识符;对代码序列进行去重复操作,以获得代码片段的词元集合;通过Jaccard相似度计算两个代码段之间的词法相似度;
(2-3)计算语法相似度:首先将代码转换为相应的抽象语法树;随后遍历代码抽象语法树的类型节点,以获得有序序列;最后通过计算有序序列之间的编辑距离来计算两个代码段之间的语法相似度;
(2-4)根据词法和语法相似度融合的比例加权求和计算出混合分数后,从候选代码中找出最相似的代码片段csim,复用它的代码注释。
3.根据权利要求1所述的基于决策的融合信息检索和深度学习的代码注释生成方法,其特征在于,所述步骤(3)中使用基于深度学习的模型生成相应的代码注释,具体包括如下步骤:
(3-1)预训练阶段:根据命名规则进行标识符分割,接着通过BPE算法进行子词划分,得到代码序列C=(c1,c2,…,cn),解析代码成抽象语法树并遍历它以获得抽象语法树序列A=(a1,a2,…,an),拼接这两个序列并使用标识符<ast>来分隔它们,得到输入序列Xinput=(c1,c2,…,cn,<ast>,a1,a2,…,an);通过嵌入层和位置编码,得到向量Xemb
(3-2)将向量输入双向编码器进行语义学习,首先将向量输入到多头注意层,利用残差连接和层归一化使矩阵运算维一致,并将网络中的隐含层归一化为标准正态分布,加快了模型的训练和收敛速度,接着,通过前馈层和两个线性映射层,使用激活函数生成向量Xhidden,通过残差连接和层归一化得到隐藏语义向量;
(3-3)解码器的每一层在编码器的最终隐藏层上执行额外的交叉注意计算,并通过交叉注意连接;解码器的输出被发送到一个完全连接的神经网络,它可以通过softmax层来预测下一个词元的概率;
(3-4)最后,借助束搜索算法来提高生成的代码注释的质量;
(3-5)微调阶段:不调整模型的bias和LayerNorm.weight参数,采用AdamW方法对其他参数进行微调;使用快速梯度法来获得对抗样本,添加扰乱Radv到编码器的嵌入层,获得对抗样本后用它进行训练。
4.根据权利要求1所述的基于决策的融合信息检索和深度学习的代码注释生成方法,其特征在于,所述步骤(4)中在验证集上分析两种模型的性能与两个代码段c和csim之间相似度分数之间的关系,并计算出相似度阈值,具体包括如下步骤:
(4-1)对于验证集中的每一个代码,都能得到基于信息检索和基于深度学习模型产生的注释以及相似度分数;
(4-2)然后把相似度分数集合划分到以0.1为间隔的10个子集上,分别计算每个子集上基于信息检索模型和基于深度学习模型的平均性能,对于每一个评测指标,当两个模型的性能比较结果发生变化时,确定阈值,最后,取四个评测指标下阈值的均值作为最终阈值。
5.根据权利要求1所述的基于决策的融合信息检索和深度学习的代码注释生成方法,其特征在于,所述步骤(5)中当为一个新的目标代码生成注释时,根据基于决策的模块输出对应的代码注释,如果目标代码c与基于信息检索模块检索出的最相似代码csim的相似度分数大于阈值,则选择基于信息检索模型输出的注释,否则选择基于深度学习模型输出的注释。
CN202111060940.6A 2021-09-10 2021-09-10 基于决策的融合信息检索和深度学习的代码注释生成方法 Pending CN113743064A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111060940.6A CN113743064A (zh) 2021-09-10 2021-09-10 基于决策的融合信息检索和深度学习的代码注释生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111060940.6A CN113743064A (zh) 2021-09-10 2021-09-10 基于决策的融合信息检索和深度学习的代码注释生成方法

Publications (1)

Publication Number Publication Date
CN113743064A true CN113743064A (zh) 2021-12-03

Family

ID=78737886

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111060940.6A Pending CN113743064A (zh) 2021-09-10 2021-09-10 基于决策的融合信息检索和深度学习的代码注释生成方法

Country Status (1)

Country Link
CN (1) CN113743064A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114418033A (zh) * 2022-02-24 2022-04-29 南通大学 一种利用CodeBert各层表征信息的代码编程语言分类方法
CN114880022A (zh) * 2022-04-28 2022-08-09 南通大学 一种基于CodeBERT微调和检索增强的Bash代码注释生成方法
CN117850870A (zh) * 2024-03-08 2024-04-09 四川大学 一种代码注释生成方法、装置、电子设备及存储介质
CN117873487A (zh) * 2024-01-15 2024-04-12 广东工业大学 一种基于gvg的代码注释生成方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114418033A (zh) * 2022-02-24 2022-04-29 南通大学 一种利用CodeBert各层表征信息的代码编程语言分类方法
CN114418033B (zh) * 2022-02-24 2024-05-24 南通大学 一种利用CodeBert各层表征信息的代码编程语言分类方法
CN114880022A (zh) * 2022-04-28 2022-08-09 南通大学 一种基于CodeBERT微调和检索增强的Bash代码注释生成方法
CN117873487A (zh) * 2024-01-15 2024-04-12 广东工业大学 一种基于gvg的代码注释生成方法
CN117850870A (zh) * 2024-03-08 2024-04-09 四川大学 一种代码注释生成方法、装置、电子设备及存储介质
CN117850870B (zh) * 2024-03-08 2024-05-07 四川大学 一种代码注释生成方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
US11816441B2 (en) Device and method for machine reading comprehension question and answer
CN113743064A (zh) 基于决策的融合信息检索和深度学习的代码注释生成方法
CN105335352A (zh) 基于微博情感的实体识别方法
CN103544255A (zh) 基于文本语义相关的网络舆情信息分析方法
Hertling et al. DOME Results for OAEI 2019.
Selamat et al. Arabic script web page language identifications using decision tree neural networks
Wang et al. Heloc: Hierarchical contrastive learning of source code representation
US20220075809A1 (en) Bootstrapping of text classifiers
Mohan et al. Lattice abstraction-based content summarization using baseline abstractive lexical chaining progress
Alsubhi et al. Pre-trained transformer-based approach for arabic question answering: A comparative study
Wang et al. Combining self-supervised learning and active learning for disfluency detection
CN114676700A (zh) 基于混合多原型的小样本命名实体识别方法
CN114676346A (zh) 新闻事件处理方法、装置、计算机设备和存储介质
Yang et al. Domain specific NMT based on knowledge graph embedding and attention
CN111382333B (zh) 基于案件相关性联合学习与图卷积的新闻文本句中案件要素抽取方法
Liu Automatic argumentative-zoning using word2vec
CN107562774A (zh) 小语种词嵌入模型的生成方法、系统及问答方法和系统
Kim et al. Extracting clinical relations in electronic health records using enriched parse trees
Suhasini et al. A Hybrid TF-IDF and N-Grams Based Feature Extraction Approach for Accurate Detection of Fake News on Twitter Data
Hu et al. Efficient Mind-Map generation via Sequence-to-Graph and reinforced graph refinement
Reshadat et al. Confidence measure estimation for open information extraction
Li et al. [Retracted] Matching Subsequence Music Retrieval in a Software Integration Environment
Bhowmick et al. Globally Aware Contextual Embeddings for Named Entity Recognition in Social Media Streams
Naseria et al. Accelerating Legislation Processes through Semantic Similarity Analysis with BERT-based Deep Learning
Ross et al. Identifying raga similarity in hindustani classical music through distributed representation of raga names

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination