1.一种代码注释生成方法,其特征在于,包括:
当接收到训练代码函数数据时,对所述训练代码函数数据进行函数预处理,生成对应的代码函数序列数据;
采用多个预设目标编码器与预设目标解码器构建初始函数注释生成网络模型;
采用所述代码函数序列数据对所述初始函数注释生成网络模型进行训练,生成目标函数注释生成网络模型;
当接收到目标代码函数数据时,对所述目标代码函数数据进行函数预处理,并通过所述目标函数注释生成网络模型生成对应的目标代码函数注释;
所述代码函数序列数据包括原始单词编号序列、驼峰单词编号序列和ASG语法图数据,所述当接收到训练代码函数数据时,对所述训练代码函数数据进行函数预处理,生成对应的代码函数序列数据的步骤,包括:获取训练代码函数数据,对所述训练代码函数数据进行分割,生成对应的原始单词序列;
对所述原始单词序列内的原始单词进行编号,得到对应的所述原始单词编号序列;
对符合标识符类型的原始单词执行编号变换操作,生成对应的所述驼峰单词编号序列;
通过预设语法树解析器将所述训练代码函数数据转换为AST语法树;
对所述AST语法树进行语法图转换,生成对应的所述ASG语法图数据;
所述对符合标识符类型的原始单词执行编号变换操作,生成对应的所述驼峰单词编号序列的步骤,包括:对符合标识符类型的原始单词执行切割操作,生成多个对应的驼峰单词与目标驼峰编号数据;
采用各所述驼峰单词与各所述驼峰单词关联的所述目标驼峰编号数据,构建多个对应的初始驼峰单词序偶数据;
按照预设切割先后顺序对多个所述初始驼峰单词序偶数据进行排列,生成多个对应的目标驼峰单词序偶数据;
将各所述目标驼峰单词序偶数据与所述原始单词编号序列中对应的原始序偶数据进行替换,生成对应的所述驼峰单词编号序列;
所述对所述AST语法树进行语法图转换,生成对应的所述ASG语法图数据的步骤,包括:对所述AST语法树进行先序遍历切分,得到多个语句子树;
对各个所述语句子树内的每个AST单词进行编号,得到多个AST单词编号对;
采用多个所述AST单词编号对,生成多个目标AST子树;
采用全部所述目标AST子树构建ASG语法图数据;
所述采用全部所述目标AST子树构建ASG语法图数据的步骤,包括:对所述目标AST子树中的每个所述AST单词编号对进行向量转换,生成多个对应的AST子树向量;
从多个所述目标AST子树中选取含有多个所述AST子树向量的关联目标AST子树;
将所述关联目标AST子树内的各所述AST子树向量依次连接,生成多条目标连接边;
计算所述目标连接边连接的两个所述AST子树向量之间的目标欧式距离对应的倒数,得到所述目标连接边的目标权重;
获取全部所述目标AST子树在所述AST语法树中的位置信息;
根据所述位置信息将所述目标AST子树作为目标节点,构建对应的ASG语法图数据;
所述目标函数注释生成网络模型包括源代码编码器、驼峰代码编码器和基于图神经网络搭建的语法树编码器、目标解码器和信息聚合层,所述当接收到目标代码函数数据时,对所述目标代码函数数据进行函数预处理,并通过所述目标函数注释生成网络模型生成对应的目标代码函数注释的步骤,包括:对目标代码函数数据进行函数预处理,生成对应的所述原始单词编号序列、所述驼峰单词编号序列和所述ASG语法图数据;
通过所述源代码编码器对所述原始单词编号序列进行编码,提取对应的函数权重信息;
通过所述驼峰代码编码器对所述驼峰单词编号序列进行编码,提取对应的函数语义信息;
通过所述基于图神经网络搭建的语法树编码器从所述ASG语法图数据提取对应的函数结构信息;
通过所述信息聚合层对所述函数语义信息与所述函数结构信息进行数据维度压缩,生成目标压缩数据;
通过所述目标解码器对所述函数权重信息与所述目标压缩数据进行解码,生成对应的目标代码函数注释;
所述通过所述基于图神经网络搭建的语法树编码器从所述ASG语法图数据提取对应的函数结构信息的步骤,包括:获取所述ASG语法图数据内的ASG节点向量;
对所述ASG节点向量进行聚合,生成对应的ASG节点聚合向量;
获取所述ASG节点聚合向量在关联的AST语法树中的关联位置数据;
根据所述关联位置数据将所述ASG节点聚合向量作为连接节点,构建对应的函数结构信息。
2.根据权利要求1所述的代码注释生成方法,其特征在于,所述采用所述代码函数序列数据对所述初始函数注释生成网络模型进行训练,生成目标函数注释生成网络模型的步骤,包括:将所述代码函数序列数据输入所述初始函数注释生成网络模型,生成对应的训练代码函数注释;
连续计算所述训练代码函数注释与关联的标准代码函数注释之间的多个轮次的平均损失值;
计算每一轮次的所述平均损失值与前一轮次的所述平均损失值之差,生成多个目标损失值;
若所有所述目标损失值的绝对值均小于预设的标准阈值时,停止训练,生成目标函数注释生成网络模型。
3.根据权利要求2所述的代码注释生成方法,其特征在于,还包括:若任一所述目标损失值的绝对值大于或等于预设的标准阈值时,则按照预设梯度调整所述初始函数注释生成网络模型的参数,并跳转所述将所述代码函数序列数据输入所述初始函数注释生成网络模型,生成对应的训练代码函数注释的步骤。
4.一种代码注释生成系统,其特征在于,包括:
数据函数预处理模块,用于当接收到训练代码函数数据时,对所述训练代码函数数据进行函数预处理,生成对应的代码函数序列数据;
初始函数注释生成网络模型构建模块,用于采用多个预设目标编码器与预设目标解码器构建初始函数注释生成网络模型;
目标函数注释生成网络模型生成模块,用于采用所述代码函数序列数据对所述初始函数注释生成网络模型进行训练,生成目标函数注释生成网络模型;
目标代码函数注释生成模块,用于当接收到目标代码函数数据时,对所述目标代码函数数据进行函数预处理,并通过所述目标函数注释生成网络模型生成对应的目标代码函数注释;
所述代码函数序列数据包括原始单词编号序列、驼峰单词编号序列和ASG语法图数据,所述数据函数预处理模块包括:原始单词序列获取子模块,用于获取训练代码函数数据,对所述训练代码函数数据进行分割,生成对应的原始单词序列;
原始单词编号序列获取子模块,用于对所述原始单词序列内的原始单词进行编号,得到对应的所述原始单词编号序列;
驼峰单词编号序列获取子模块,用于对符合标识符类型的原始单词执行编号变换操作,生成对应的所述驼峰单词编号序列;
AST语法树转换子模块,用于通过预设语法树解析器将所述训练代码函数数据转换为AST语法树;
ASG语法图数据生成子模块,用于对所述AST语法树进行语法图转换,生成对应的所述ASG语法图数据;
所述驼峰单词编号序列获取子模块包括:
切割单元,用于对符合标识符类型的原始单词执行切割操作,生成多个对应的驼峰单词与目标驼峰编号数据;
初始驼峰单词序偶数据获取单元,用于采用各所述驼峰单词与各所述驼峰单词关联的所述目标驼峰编号数据,构建多个对应的初始驼峰单词序偶数据;
目标驼峰单词序偶数据获取单元,用于按照预设切割先后顺序对多个所述初始驼峰单词序偶数据进行排列,生成多个对应的目标驼峰单词序偶数据;
驼峰单词编号序列生成单元,用于将各所述目标驼峰单词序偶数据与所述原始单词编号序列中对应的原始序偶数据进行替换,生成对应的所述驼峰单词编号序列;
所述ASG语法图数据生成子模块包括:
语句子树获取单元,用于对所述AST语法树进行先序遍历切分,得到多个语句子树;
AST单词编号对获取单元,用于对各个所述语句子树内的每个AST单词进行编号,得到多个AST单词编号对;
目标AST子树获取单元,用于采用多个所述AST单词编号对,生成多个目标AST子树;
ASG语法图数据构建单元,用于采用全部所述目标AST子树构建ASG语法图数据;
所述ASG语法图数据构建单元包括:
AST子树向量生成子单元,用于对所述目标AST子树中的每个所述AST单词编号对进行向量转换,生成多个对应的AST子树向量;
关联目标AST子树获取子单元,用于从多个所述目标AST子树中选取含有多个所述AST子树向量的关联目标AST子树;
目标连接边生成子单元,用于将所述关联目标AST子树内的各所述AST子树向量依次连接,生成多条目标连接边;
目标权重获取子单元,用于计算所述目标连接边连接的两个所述AST子树向量之间的目标欧式距离对应的倒数,得到所述目标连接边的目标权重;
位置信息获取子单元,用于获取全部所述目标AST子树在所述AST语法树中的位置信息;
ASG语法图数据构建子单元,用于根据所述位置信息将所述目标AST子树作为目标节点,构建对应的ASG语法图数据;
所述目标函数注释生成网络模型包括源代码编码器、驼峰代码编码器和基于图神经网络搭建的语法树编码器、目标解码器和信息聚合层,所述目标代码函数注释生成模块包括:目标代码函数数据处理子模块,用于对目标代码函数数据进行函数预处理,生成对应的所述原始单词编号序列、所述驼峰单词编号序列和所述ASG语法图数据;
函数权重信息提取子模块,用于通过所述源代码编码器对所述原始单词编号序列进行编码,提取对应的函数权重信息;
函数语义信息提取子模块,用于通过所述驼峰代码编码器对所述驼峰单词编号序列进行编码,提取对应的函数语义信息;
函数结构信息提取子模块,用于通过所述基于图神经网络搭建的语法树编码器从所述ASG语法图数据提取对应的函数结构信息;
目标压缩数据获取子模块,用于通过所述信息聚合层对所述函数语义信息与所述函数结构信息进行数据维度压缩,生成目标压缩数据;
解码子模块,用于通过所述目标解码器对所述函数权重信息与所述目标压缩数据进行解码,生成对应的目标代码函数注释;
所述函数结构信息提取子模块包括:
ASG节点向量获取单元,用于获取所述ASG语法图数据内的ASG节点向量;
ASG节点聚合向量生成单元,用于对所述ASG节点向量进行聚合,生成对应的ASG节点聚合向量;
关联位置数据获取单元,用于获取所述ASG节点聚合向量在关联的AST语法树中的关联位置数据;
函数结构信息获取单元,用于根据所述关联位置数据将所述ASG节点聚合向量作为连接节点,构建对应的函数结构信息。