本公开涉及计算机,具体地,涉及一种代码生成方法、装置、存储介质及电子设备。
背景技术:
1、程序代码自动生成是软件智能化的重要技术手段,其可以辅助软件开发人员完成一些通用代码的开发,从而有效提高研发效率并节约研发成本。另外,随着自然语言处理技术的不断发展,预训练语言模型被广泛应用于程序代码生成。然而,相关技术主要基于条件概率语言模型的方式进行代码生成,即基于已有的上文信息来预测下一个程序符号出现的概率,只能学习到程序符号的统计分布。
技术实现思路
1、提供该
技术实现要素:
部分以便以简要的形式介绍构思,这些构思将在后面的具体实施方式部分被详细描述。该发明内容部分并不旨在标识要求保护的技术方案的关键特征或必要特征,也不旨在用于限制所要求的保护的技术方案的范围。
2、第一方面,本公开提供一种代码生成方法,所述方法包括:
3、获取目标文本,所述目标文本包括待补充的程序代码文本或用于描述代码功能的自然语言文本;
4、将所述目标文本输入代码生成模型,得到基于所述目标文本生成的目标程序代码,其中,所述代码生成模型由代码理解任务和代码生成任务训练得到,且所述代码理解任务用于所述代码生成模型学习样本程序代码的语法特征和语义特征,所述代码生成任务用于所述代码生成模型学习基于所述样本程序代码生成新的程序代码的过程。
5、第二方面,本公开提供一种代码生成装置,所述装置包括:
6、获取模块,用于获取目标文本,所述目标文本为待补充的程序代码文本或用于描述代码功能的自然语言文本;
7、生成模块,用于将所述目标文本输入代码生成模型,得到基于所述目标文本生成的目标程序代码,其中,所述代码生成模型由代码理解任务和代码生成任务训练得到,且所述代码理解任务用于所述代码生成模型学习样本程序代码的语法特征和语义特征,所述代码生成任务用于所述代码生成模型学习基于所述样本程序代码生成新的程序代码的过程。
8、第三方面,本公开提供一种非临时性计算机可读介质,其上存储有计算机程序,该程序被处理装置执行时实现第一方面中所述方法的步骤。
9、第四方面,本公开提供一种电子设备,包括:
10、存储装置,其上存储有计算机程序;
11、处理装置,用于执行所述存储装置中的所述计算机程序,以实现第一方面中所述方法的步骤。
12、通过上述技术方案,代码生成模型可以通过代码理解任务和代码生成任务训练得到。其中,代码理解任务用于代码生成模型学习样本程序代码的语法和语义知识,代码生成任务用于代码生成模型学习基于样本程序代码生成新的程序代码的过程。由此,经过训练后的代码生成模型可以根据目标文本的语法和语义生成目标程序代码,提高自动生成代码的准确性。
13、本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
1.一种代码生成方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述代码生成模型包括代码理解层、代码生成层和共享表示层,所述共享表示层输出的结果用于输入所述代码理解层或所述代码生成层,所述代码生成模型的训练步骤包括:
3.根据权利要求2所述的方法,其特征在于,所述对所述样本程序代码进行掩码处理,得到掩码序列,包括:
4.根据权利要求2所述的方法,其特征在于,所述对所述样本程序代码进行掩码处理,得到掩码序列,包括:
5.根据权利要求2-4任一所述的方法,其特征在于,所述将所述掩码序列输入所述代码生成模型,以通过所述共享表示层和所述代码理解层得到第一预测代码,包括:
6.根据权利要求2-4任一所述的方法,其特征在于,所述将所述样本程序代码输入所述代码生成模型,以通过所述共享表示层和所述代码生成层得到第二预测代码,包括:
7.根据权利要求1-4任一所述的方法,其特征在于,所述样本程序代码是通过如下方式得到的:
8.根据权利要求1-4任一所述的方法,其特征在于,所述代码生成模型用于通过如下方式得到基于所述目标文本生成的目标程序代码:
9.一种代码生成装置,其特征在于,所述装置包括:
10.一种非临时性计算机可读介质,其上存储有计算机程序,其特征在于,该程序被处理装置执行时实现权利要求1-8中任一项所述方法的步骤。
11.一种电子设备,其特征在于,包括: