计算机工程与应用 ›› 2020, Vol. 56 ›› Issue (7): 176-183.DOI: 10.3778/j.issn.1002-8331.1901-0399
谭丁武,张坤芳,刘燕,郑一基,鲁鸣鸣
TAN Dingwu, ZHANG Kunfang, LIU Yan, ZHENG Yiji, LU Mingming
摘要:
在源代码挖掘领域,程序分类任务是实现机器自主理解源代码的基础工作。虽然自然语言处理相关模型和基于抽象语法树的系列模型已经被广泛应用于分类程序源代码,但这些工作没有考虑源代码中的数据流、控制流等数据信息。提出一种方法用于构建包含数据信息和语法结构的代码图EAST,并结合基于注意力机制的门控图神经网络模型(GGANN)实现程序分类。GGANN模型的注意力机制考虑到节点拓扑结构性质的差异性,从而对模型信息传播过程进行改进。实验表明,改进后的GGANN模型在程序分类任务上的精度高达98%。