-
公开(公告)号:CN116700780A
公开(公告)日:2023-09-05
申请号:CN202310778652.7
申请日:2023-06-29
Applicant: 南通大学
IPC: G06F8/72 , G06F8/75 , G06F8/33 , G06F40/289
Abstract: 本发明提供一种基于抽象语法树代码表征的代码补全方法,包括:S1、收集Github上开源的代码补全数据集DeepCom,选取Java源代码部分并剔除其对应注释,构建代码语料库;S2、将Java源代码转换为其对应的AST抽象语法树,使用切分遍历算法遍历Java代码的AST,获取切分遍历后的序列;S3、利用预训练GPT‑2模型对代码补全任务进行微调操作,并使用BPE算法对输入的文本序列进行分词;S4、在微调过程中使用FGM算法进行对抗训练,为模型在训练过程中添加扰动,增强模型鲁棒性;S5、在推理解码阶段,模型输入代补全代码,逐个词元生成补全代码序列,直到代码补全完整或出现停止符。本发明可以更好地利用源代码丰富的语法结构和语义信息进行完整代码补全,有效提高代码补全的准确性。