1.基于多尺度AST和特征融合的代码摘要生成方法,其特征是,包括:获取目标代码;
针对目标代码,构建抽象语法树AST;
针对抽象语法树AST提取整个抽象语法树AST的节点嵌入向量;同时,针对抽象语法树AST分别提取每个节点的特征向量;
将整个抽象语法树AST的节点嵌入向量和每个节点的特征向量,输入到解码器中,输出生成的代码摘要。
2.如权利要求1所述的基于多尺度AST和特征融合的代码摘要生成方法,其特征是,针对抽象语法树AST提取整个抽象语法树AST的节点嵌入向量;具体步骤包括:首先,针对抽象语法树AST,提取AST每个节点的词向量;
其次,对AST所有节点,进行最大池化操作,得到整个抽象语法树AST的节点嵌入向量。
3.如权利要求2所述的基于多尺度AST和特征融合的代码摘要生成方法,其特征是,所述针对抽象语法树AST,提取AST每个节点的词向量;具体步骤包括:针对抽象语法树AST,采用word2vec提取AST每个节点的词向量。
4.如权利要求2所述的基于多尺度AST和特征融合的代码摘要生成方法,其特征是,所述对AST所有节点,进行最大池化操作,得到整个抽象语法树AST的节点嵌入向量;具体是采用最大池化层来实现最大池化操作。
5.如权利要求1所述的基于多尺度AST和特征融合的代码摘要生成方法,其特征是,针对抽象语法树AST分别提取每个节点的特征向量;具体步骤包括:针对抽象语法树AST,生成初始邻接矩阵;
对初始邻接矩阵进行尺度点乘处理,得到二次幂邻接矩阵;
对初始邻接矩阵进行尺度点乘处理,得到三次幂邻接矩阵;
针对抽象语法树AST的每个节点,进行初始化向量表示,得到每个节点的特征矩阵;
对初始邻接矩阵和每个节点的特征矩阵,进行特征提取,得到每个节点的初始特征向量矩阵;
对二次幂邻接矩阵和每个节点的特征矩阵,进行特征提取,得到每个节点的二次幂特征向量矩阵;
对三次幂邻接矩阵和每个节点的特征矩阵,进行特征提取,得到每个节点的三次幂特征向量矩阵;
对每个节点的初始特征向量矩阵、二次幂特征向量矩阵和三次幂特征向量矩阵进行特征融合,得到每个节点的特征向量矩阵;
对每个节点的特征向量矩阵进行转置,得到每个节点的特征向量。
6.如权利要求1所述的基于多尺度AST和特征融合的代码摘要生成方法,其特征是,将整个抽象语法树AST的节点嵌入向量和每个AST节点的特征向量,输入到解码器中,输出生成的代码摘要;具体步骤包括:
采用注意力机制对每个AST节点的特征向量进行分配权重;
将整个抽象语法树AST的节点嵌入向量与分配权重后的每个AST节点的特征向量进行融合,得到融合向量;
将融合向量输入到训练后的GRU解码器单元中,输出生成的代码摘要。
7.如权利要求6所述的基于多尺度AST和特征融合的代码摘要生成方法,其特征是,所述训练后的GRU解码器单元的训练步骤包括:构建训练集,所述训练集包括:已知代码摘要和已知代码摘要对应的代码;
对已知代码摘要对应的代码进行预处理,得到整个抽象语法树AST的节点嵌入向量与分配权重后的每个AST节点的特征向量;
对已知代码摘要进行预处理,得到已知代码摘要的向量序列;
将已知代码整个抽象语法树AST的节点嵌入向量与分配权重后的每个AST节点的特征向量作为GRU解码器单元的输入值,将已知代码摘要的向量序列作为GRU解码器单元的输出值,对GRU解码器单元进行训练;得到训练后的GRU解码器单元。
8.基于多尺度AST和特征融合的代码摘要生成系统,其特征是,包括:获取模块,其被配置为:获取目标代码;
抽象语法树构建模块,其被配置为:针对目标代码,构建抽象语法树AST;
向量提取模块,其被配置为:针对抽象语法树AST提取整个抽象语法树AST的节点嵌入向量;同时,针对抽象语法树AST分别提取每个节点的特征向量;
代码摘要生成模块,其被配置为:将整个抽象语法树AST的节点嵌入向量和每个节点的特征向量,输入到解码器中,输出生成的代码摘要。
9.一种电子设备,其特征是,包括:一个或多个处理器、一个或多个存储器、以及一个或多个计算机程序;其中,处理器与存储器连接,上述一个或多个计算机程序被存储在存储器中,当电子设备运行时,该处理器执行该存储器存储的一个或多个计算机程序,以使电子设备执行上述权利要求1‑7任一项所述的方法。
10.一种计算机可读存储介质,其特征是,用于存储计算机指令,所述计算机指令被处理器执行时,完成权利要求1‑7任一项所述的方法。