System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本说明书涉及自然语言处理,尤其涉及一种模型训练、代码生成方法、装置、存储介质及设备。
技术介绍
1、随着深度学习模型在自然语言处理和机器翻译等领域的发展以及编程语言的语法和结构的规范化,越来越多的能够将自然语言描述转化为计算机程序代码的深度学习模型逐渐出现。
2、但是,由于这些深度学习不能很好的学习到代码的内部结构信息,从而使得通过这些深度学习模型生成的计算机程序代码的语义准确性较低的同时,还存在生成的部分计算机程序代码不符合编程语言的语法规范的问题。
3、因此,如何能够提升通过深度学习模型生成的计算机程序代码的准确性,则是一个亟待解决的问题。
技术实现思路
1、本说明书提供一种模型训练、代码生成方法、装置、存储介质及设备,以部分的解决现有技术存在的上述问题。
2、本说明书采用下述技术方案:
3、本说明书提供了一种模型训练方法,所述方法包括:
4、获取样本序列,所述样本序列包括:样本代码中包含的代码注释序列、样本代码中包含的变量序列、样本代码对应的代码序列;
5、将所述样本序列输入到预设的代码生成模型中,以通过所述代码生成模型,针对所述样本序列中包含的每个语义单元,若该语义单元为所述变量序列中包含的变量,则从在所述样本代码中在作为该语义单元之前的各语义单元中,确定出除与作为该语义单元的变量之间不存在依赖关系的其他变量对应的语义单元之外的其他语义单元,作为该语义单元对应的参考语义单元,根据该语义单元和所述参考语义
6、根据该语义单元的注意力特征表示,预测在所述样本代码中位于该语义单元之后的下一个语义单元,作为预测语义单元;
7、以最小化所述预测语义单元和所述预测语义单元在所述样本代码中实际对应的语义单元之间的偏差为优化目标,对所述代码生成模型进行训练,得到训练后代码生成模型,并通过所述训练后代码生成模型进行任务执行。
8、可选地,将所述样本序列输入到预设的代码生成模型中,具体包括:
9、对所述样本代码进行解析,生成所述样本代码对应的抽象语法树;
10、根据所述抽象语法树,确定所述样本代码中包含的各变量以及各变量之间的依赖关系,并根据所述依赖关系,生成数据流图;
11、将所述样本序列以及所述数据流图输入到预设的代码生成模型中。
12、可选地,将所述样本序列以及所述数据流图输入到预设的代码生成模型中,具体包括:
13、根据所述数据流图中包含的各变量之间的依赖关系,生成掩码矩阵,其中,针对每两个变量,若该两个变量在所述数据流图中对应的节点之间不存在边相连,则该两个变量在所述掩码矩阵中对应的值为指定标识值;
14、将所述样本序列以及所述掩码矩阵输入到预设的代码生成模型中。
15、可选地,以最小化所述预测语义单元和所述预测语义单元在所述样本代码中实际对应的语义单元之间的偏差为优化目标,对所述代码生成模型进行训练,得到训练后代码生成模型,具体包括:
16、从各语义单元中确定出为所述代码序列中包含的代码的各语义单元,作为目标语义单元;
17、以最小化所述目标语义单元对应的预测语义单元和所述目标语义单元之间的偏差为优化目标,对所述代码生成模型进行训练,得到训练后代码生成模型。
18、本说明书提供了一种代码生成方法,所述方法包括:
19、获取用户输入的描述文本;
20、将所述描述文本输入到预先训练的代码生成模型中,以通过所述代码生成模型,根据所述描述文本,生成目标代码,并根据所述目标代码进行任务执行,所述代码生成模型是通过上述模型训练方法训练得到。
21、本说明书提供了一种模型训练装置,包括:
22、获取模块,用于获取样本序列,所述样本序列包括:样本代码中包含的代码注释序列、样本代码中包含的变量序列、样本代码对应的代码序列;
23、确定模块,用于将所述样本序列输入到预设的代码生成模型中,以通过所述代码生成模型,针对所述样本序列中包含的每个语义单元,若该语义单元为所述变量序列中包含的变量,则从在所述样本代码中在作为该语义单元之前的各语义单元中,确定出除与作为该语义单元的变量之间不存在依赖关系的其他变量对应的语义单元之外的其他语义单元,作为该语义单元对应的参考语义单元,根据该语义单元和所述参考语义单元之间的相关度,确定该语义单元的注意力特征表示,若该语义单元不为所述变量序列中包含的变量,则根据该语义单元和在所述样本代码中在该语义单元之前的其他语义单元之间的相关度,确定该语义单元的注意力特征表示;
24、预测模块,用于根据该语义单元的注意力特征表示,预测在所述样本代码中位于该语义单元之后的下一个语义单元,作为预测语义单元;
25、训练模块,用于以最小化所述预测语义单元和所述预测语义单元在所述样本代码中实际对应的语义单元之间的偏差为优化目标,对所述代码生成模型进行训练,得到训练后代码生成模型,并通过所述训练后代码生成模型进行任务执行。
26、可选地,所述装置还包括:解析模块;
27、所述解析模块用于对所述样本代码进行解析,生成所述样本代码对应的抽象语法树;
28、根据所述抽象语法树,确定所述样本代码中包含的各变量以及各变量之间的依赖关系,并根据所述依赖关系,生成数据流图;
29、将所述样本序列以及所述数据流图输入到预设的代码生成模型中。
30、本说明书提供了一种代码生成装置,包括:
31、文本获取模块,用于获取用户输入的描述文本;
32、生成模块,用于将所述描述文本输入到预先训练的代码生成模型中,以通过所述代码生成模型,根据所述描述文本,生成目标代码,并根据所述目标代码进行任务执行,所述代码生成模型是通过上述模型训练的方法训练得到。
33、本说明书提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述模型训练、代码生成方法。
34、本说明书提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述模型训练、代码生成方法。
35、本说明书采用的上述至少一个技术方案能够达到以下有益效果:
36、在本说明书提供的代码生成方法中,获取样本序列,样本序列包括:样本代码对应的代码序列、样本代码中包含的代码注释序列、样本代码中包含的变量序列,将各样本序列输入到预设的代码生成模型中,以通过代码生成模型,针对样本序列中包含的每个语义单元,若该语义单元为变量序列中包含的变量,则从在样本代码中在作为该语义单元之前的各语义单元本文档来自技高网...
【技术保护点】
1.一种模型训练方法,其特征在于,所述方法包括:
2.如权利要求1所述的方法,其特征在于,将所述样本序列输入到预设的代码生成模型中,具体包括:
3.如权利要求2所述的方法,其特征在于,将所述样本序列以及所述数据流图输入到预设的代码生成模型中,具体包括:
4.如权利要求2所述的方法,其特征在于,以最小化所述预测语义单元和所述预测语义单元在所述样本代码中实际对应的语义单元之间的偏差为优化目标,对所述代码生成模型进行训练,得到训练后代码生成模型,具体包括:
5.一种代码生成方法,其特征在于,所述方法包括:
6.一种模型训练装置,其特征在于,包括:
7.如权利要求6所述的装置,其特征在于,所述装置还包括:解析模块;
8.一种代码生成装置,其特征在于,包括:
9.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述权利要求1~5任一项所述的方法。
10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其
...【技术特征摘要】
1.一种模型训练方法,其特征在于,所述方法包括:
2.如权利要求1所述的方法,其特征在于,将所述样本序列输入到预设的代码生成模型中,具体包括:
3.如权利要求2所述的方法,其特征在于,将所述样本序列以及所述数据流图输入到预设的代码生成模型中,具体包括:
4.如权利要求2所述的方法,其特征在于,以最小化所述预测语义单元和所述预测语义单元在所述样本代码中实际对应的语义单元之间的偏差为优化目标,对所述代码生成模型进行训练,得到训练后代码生成模型,具体包括:
5.一种代码生成方法,其特征在...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。