基于信息检索的源代码自动命名OA北大核心CSTPCD
源代码自动命名是指为给定代码的方法体命名一个反映代码功能的有意义的名称,可以使代码易读易懂,提高软件开发效率。传统自动命名方法仅使用代码的词法或者语法等单一信息,基于深度学习的自动命名方法通常忽略了语料库中的相似代码,影响命名准确率。针对上述问题,提出一种基于信息检索的源代码自动命名方法。首先,利用预训练模型和BERT-whitening方法提取输入代码和语料库中代码的有效特征,使用欧氏距离计算两者之间的语义相似度。其次,在语料库代码中选择与输入代码语义相似度较高的代码组成候选库,利用Jaccard系数和最长公共子序列分别计算输入代码与候选库代码的词法和语法相似度。最后,使用加权和来匹配候选库中与输入代码最相似的代码片段,复用该代码片段的方法名称作为输入代码的方法名称。实验结果表明,在公开的Java-small数据集上,与基于向量空间模型(VSM)和基于深度学习模型Code2Vec的自动命名方法相比,该方法的F1值分别提升了6.93和1.22个百分点,具有较优的预测性能。
李雪;王雅文;张前进;
北京邮电大学网络与交换技术全国重点实验室,北京100876
计算机与自动化
自动命名信息检索深度学习BERT-whitening方法语义相似度
《计算机工程》 2024 (006)
P.304-310 / 7
国家自然科学基金(U1736110)。
评论