摘要

如何提高异构的自然语言查询输入和高度结构化程序语言源代码的匹配准确度,是代码搜索的一个基本问题.代码特征的准确提取是提高匹配准确度的关键之一.代码语句表达的语义不仅与其本身有关,还与其所处的上下文相关.代码的结构模型为理解代码功能提供了丰富的上下文信息.提出一个基于函数功能多重图嵌入的代码搜索方法.在所提方法中,使用早期融合的策略,将代码语句的数据依赖关系融合到控制流图中,构建函数功能多重图来表示代码.该多重图通过数据依赖关系显式表达控制流图中缺乏的非直接前驱后继节点的依赖关系,增强语句节点的上下文信息.同时,针对多重图的边的异质性,采用关系图卷积网络方法从函数多重图中提取代码的特征.在公开数据集的实验表明,相比现有基于代码文本和结构模型的方法,所提方法的MRR提高5%以上.通过消融实验也表明控制流图较数据依赖图在搜索准确度上贡献较大.

全文