摘要:函数自动命名技术旨在为输入的源代码自动生成目标函数名, 增强程序代码的可读性以及加速软件开发进程, 是软件工程领域中一项重要的研究任务. 现有基于机器学习的技术主要是通过序列模型对源代码进行编码, 进而自动生成函数名, 但存在长程依赖问题和代码结构编码问题. 为了更好的提取程序中的结构信息和语义信息, 本文提出了一个基于图卷积(Graph Convolutional Network, GCN)的神经网络模型—TrGCN (a Transformer and GCN based automatic method naming). TrGCN利用了Transformer中的自注意力机制来缓解长程依赖问题, 同时采用Character-word注意力机制提取代码的语义信息. TrGCN引入了一种基于图卷积的AST Encoder结构, 丰富了AST节点特征向量的信息, 可以很好地对源代码结构信息进行建模. 在实证研究中, 使用了3个不同规模的数据集来评估TrGCN的有效性, 实验结果表明TrGCN比当前广泛使用的模型code2seq和Sequence-GNNs能更好的自动生成函数名, 其中F1分数分别提高了平均5.2%、2.1%.