-
公开(公告)号:CN114676298B
公开(公告)日:2024-04-19
申请号:CN202210379210.0
申请日:2022-04-12
Applicant: 南通大学
IPC: G06F16/9035 , G06F16/951 , G06N3/045 , G06N3/08 , G06F18/22
Abstract: 本发明提供了一种基于质量过滤器的缺陷报告标题自动生成方法,属于软件质量保障技术领域。其技术方案为:首先从GitHub上选择高质量开源项目,再对数据集进行数据预处理,训练自动生成模型,当预测新的缺陷报告时,分别基于通过学习低质量缺陷报告特征进行过滤的深度学习模块和通过判断历史数据集中是否存在与新缺陷报告内容相似的数据实现预测的信息检索模块,来协同预测该缺陷报告能否生成高质量标题,若预测能,则通过自动生成模型生成标题,反之则提出警告。本发明的有益效果为:通过使用正则表达式进行数据预处理,提高了数据处理效率和方法的兼容性;通过双模块协同过滤,提高了自动生成模型生成的标题质量与效率。
-
公开(公告)号:CN114491540A
公开(公告)日:2022-05-13
申请号:CN202210161142.0
申请日:2022-02-22
Applicant: 南通大学
Abstract: 本发明提供了一种基于GraphCodeBERT的安全漏洞检测方法,其技术方案为:首先对源代码进行预处理,得到数据流词元、源代码词元和注释词元,作为安全漏洞检测模型的输入,模型采用编码器‑解码器框架,编码器端使用预训练的GraphCodeBERT,解码器端使用双向长短期记忆(BiLSTM)模型作为分类模型,最终输出一个二分类结果,用来判断代码是否包含安全漏洞。本发明的有益效果为:基于函数粒度,将安全漏洞检测问题建模为二分类问题;与传统的词向量方法不同,通过在编码器端考虑数据流信息,使得模型更容易学到漏洞模式。
-
公开(公告)号:CN114491540B
公开(公告)日:2024-09-10
申请号:CN202210161142.0
申请日:2022-02-22
Applicant: 南通大学
IPC: G06F21/56 , G06F21/57 , G06N3/0442
Abstract: 本发明提供了一种基于GraphCodeBERT的安全漏洞检测方法,其技术方案为:首先对源代码进行预处理,得到数据流词元、源代码词元和注释词元,作为安全漏洞检测模型的输入,模型采用编码器‑解码器框架,编码器端使用预训练的GraphCodeBERT,解码器端使用双向长短期记忆(BiLSTM)模型作为分类模型,最终输出一个二分类结果,用来判断代码是否包含安全漏洞。本发明的有益效果为:基于函数粒度,将安全漏洞检测问题建模为二分类问题;与传统的词向量方法不同,通过在编码器端考虑数据流信息,使得模型更容易学到漏洞模式。
-
公开(公告)号:CN114880022B
公开(公告)日:2024-06-14
申请号:CN202210469925.5
申请日:2022-04-28
Applicant: 南通大学
Abstract: 本发明提供了一种基于CodeBERT微调和检索增强的Bash代码注释生成方法,属于计算机技术领域,解决了Bash代码开发过程中需要耗费人工成本手动编写注释的问题。其技术方案为:(1)使用构建的数据集对预训练模型CodeBERT进行微调;(2)在代码注释生成阶段,使用构建的双重信息检索方法检索出目标代码的最相似代码;(4)将目标代码和相似代码输入到微调后的CodeBERT编码器中,对得到的两个表征向量经过归一化操作;(5)将两个表征向量输入到融合层得到融合向量;(6)将融合向量输入到解码器中得到代码注释。本发明的有益效果为:快速根据现有Bash代码生成对应注释,提高Bash代码可读性和理解性。
-
公开(公告)号:CN113743062A
公开(公告)日:2021-12-03
申请号:CN202110937182.5
申请日:2021-08-16
Applicant: 南通大学
IPC: G06F40/169 , G06F8/41 , G06N20/00
Abstract: 本发明提供了一种基于信息检索的智能合约代码注释生成方法,包括以下步骤:(1)搜集来自Etherscan.io的智能合约语料库,对该语料库进行预处理操作;(2)使用CodeBert提取代码语义特征,并通过BERT‑whitening进行关键特征提取和降维,计算语义相似度,选择排在前k位语义最相似的代码片段作为候选代码;(3)将代码片段视为由词元组成的集合,通过Jaccard相似度计算集合之间的词法相似度;(4)考虑智能合约代码的抽象语法树信息,通过编辑距离计算AST序列之间的语法相似度;(5)根据词法和语法相似度融合的比例计算出混合分数后,从候选代码中找出最相似的代码片段,用于生成代码注释。本发明的有益效果为:可以生成高质量的代码注释,提高智能合约代码的可读性和可理解性。
-
公开(公告)号:CN113743062B
公开(公告)日:2024-09-03
申请号:CN202110937182.5
申请日:2021-08-16
Applicant: 南通大学
IPC: G06F40/169 , G06F8/41 , G06N20/00
Abstract: 本发明提供了一种基于信息检索的智能合约代码注释生成方法,包括以下步骤:(1)搜集来自Etherscan.io的智能合约语料库,对该语料库进行预处理操作;(2)使用CodeBert提取代码语义特征,并通过BERT‑whitening进行关键特征提取和降维,计算语义相似度,选择排在前k位语义最相似的代码片段作为候选代码;(3)将代码片段视为由词元组成的集合,通过Jaccard相似度计算集合之间的词法相似度;(4)考虑智能合约代码的抽象语法树信息,通过编辑距离计算AST序列之间的语法相似度;(5)根据词法和语法相似度融合的比例计算出混合分数后,从候选代码中找出最相似的代码片段,用于生成代码注释。本发明的有益效果为:可以生成高质量的代码注释,提高智能合约代码的可读性和可理解性。
-
公开(公告)号:CN115480821A
公开(公告)日:2022-12-16
申请号:CN202211129739.3
申请日:2022-09-16
Applicant: 南通大学
Abstract: 本发明提供了一种基于主动学习的代码注释生成方法,属于计算机技术领域,解决了在有限的人工标注预算下,导致模型训练数据不足,难以生成高质量代码注释的问题其技术方案为:包括以下步骤:(1)搜集域内数据集;(2)预训练通用模型;(3)设计基于聚类和注意力分散的主动学习采样策略;(4)在数据采样、标记和模型微调这两个步骤中不断迭代,直到预算用完或达到预定义的终止条件;(5)在有限的人工标注预算下微调后的模型会为代码段生成更高质量的代码注释。本发明的有益效果为:基于主动学习训练的模型可以在有限的标注预算下使用较少的训练数据为代码片段生成更高质量的注释,从而平衡地达到一定注释质量所需的人力。
-
公开(公告)号:CN114880022A
公开(公告)日:2022-08-09
申请号:CN202210469925.5
申请日:2022-04-28
Applicant: 南通大学
Abstract: 本发明提供了一种基于CodeBERT微调和检索增强的Bash代码注释生成方法,属于计算机技术领域,解决了Bash代码开发过程中需要耗费人工成本手动编写注释的问题。其技术方案为:(1)使用构建的数据集对预训练模型CodeBERT进行微调;(2)在代码注释生成阶段,使用构建的双重信息检索方法检索出目标代码的最相似代码;(4)将目标代码和相似代码输入到微调后的CodeBERT编码器中,对得到的两个表征向量经过归一化操作;(5)将两个表征向量输入到融合层得到融合向量;(6)将融合向量输入到解码器中得到代码注释。本发明的有益效果为:快速根据现有Bash代码生成对应注释,提高Bash代码可读性和理解性。
-
公开(公告)号:CN113743064A
公开(公告)日:2021-12-03
申请号:CN202111060940.6
申请日:2021-09-10
Applicant: 南通大学
IPC: G06F40/169 , G06F8/41 , G06K9/62 , G06N3/04 , G06N3/08
Abstract: 本发明提供了一种基于决策的融合信息检索和深度学习的代码注释生成方法,包括以下步骤:(1)基于GitHub网站,挖掘高质量开源项目,搜集代码内的函数及其注释形成语料库,并划分成训练集和验证集;(2)构建基于信息检索的模型,通过融合语义、词法和语法相似度,在训练集中搜索出与目标代码段c最为相似的代码段csim,并复用其注释;(3)构建基于深度学习的模型,考虑对抗样本,并使用一种基于Transformer的模型生成代码注释;(4)在验证集上分析这两种模型的性能与两个代码段c和csim之间相似度分数的关系,确定相似度阈值;(5)当为一个新的目标代码生成注释时,根据决策模块输出对应的代码注释。本发明的有益效果为:可以生成高质量的代码注释。
-
公开(公告)号:CN113743064B
公开(公告)日:2024-09-06
申请号:CN202111060940.6
申请日:2021-09-10
Applicant: 南通大学
IPC: G06F40/169 , G06F8/41 , G06F18/2415 , G06N3/0464 , G06N3/0475 , G06N3/0455 , G06N3/094
Abstract: 本发明提供了一种基于决策的融合信息检索和深度学习的代码注释生成方法,包括以下步骤:(1)基于GitHub网站,挖掘高质量开源项目,搜集代码内的函数及其注释形成语料库,并划分成训练集和验证集;(2)构建基于信息检索的模型,通过融合语义、词法和语法相似度,在训练集中搜索出与目标代码段c最为相似的代码段csim,并复用其注释;(3)构建基于深度学习的模型,考虑对抗样本,并使用一种基于Transformer的模型生成代码注释;(4)在验证集上分析这两种模型的性能与两个代码段c和csim之间相似度分数的关系,确定相似度阈值;(5)当为一个新的目标代码生成注释时,根据决策模块输出对应的代码注释。本发明的有益效果为:可以生成高质量的代码注释。
-
-
-
-
-
-
-
-
-