Page 198 - 《软件学报》2026年第2期
P. 198
张育博 等: 基于依赖感知分层神经网络的代码注释增强方法 677
600 60
50
500
训练时间 (min) 400 推理时间 (min) 40
30
300
20
200
100
0 10 0
(a) Python 数据集上的训练时间 (b) Python 数据集上的推理时间
600 60
50
500
训练时间 (min) 400 推理时间 (min) 40
300
30
200
20
100
0 10 0
(c) Java 数据集上的训练时间 (d) Java 数据集上的推理时间
600 60
训练时间 (min) 400 推理时间 (min) 40
500
50
30
300
200
20
100
0 10 0
(e) Go 数据集上的训练时间 (f) Go 数据集上的推理时间
DHCS NeuralCodeSum RoBERTa CodeBERT UniXcoder CodeT5 CodeT5+ StarCoder EACS
图 6 3 个数据集上的训练时间 (每个 epoch) 和推理时间
如表 6 所示, 当将子函数信息作为额外输入时, 大多数 baseline 模型在 3 个指标上的得分略有下降. 这些方法
仅将子函数信息视为目标函数的附加输入, 并未有效地捕捉子函数和目标函数之间的依赖关系. 虽然 StarCoder 的
表现略有改善, 但整体表现并未显著提升, 仍然不如本文方法. 这表明, 虽然大语言模型确实能够捕捉到更长的上
下文, 但它们并未完全理解子函数和目标函数之间的依赖关系. 这也验证了本文方法的有效性, 能够有效捕捉代码
中的上下文依赖关系.
表 6 含子函数信息的输入对 DHCS 和 baseline 模型的影响 (%)
BLEU-4 METEOR ROUGE-L
方法
Python Java Go Python Java Go Python Java Go
NeuralCodeSum 10.79 7.81 9.90 10.47 6.68 9.74 17.78 15.44 19.79
NeuralCodeSum_wsf 10.51 7.27 8.72 9.68 6.49 8.67 17.56 12.20 17.77
RoBERTa 10.37 10.98 13.53 8.11 10.17 13.82 17.10 23.40 30.12
RoBERTa_wsf 8.25 10.15 7.67 6.61 7.82 6.48 15.60 16.88 14.37
CodeBERT 14.87 12.77 14.89 13.65 11.47 14.44 28.09 25.75 32.60
CodeBERT_wsf 14.36 12.45 13.01 13.53 11.37 11.76 26.96 25.06 26.50
UniXcoder 17.22 15.61 15.81 15.19 13.48 15.84 30.51 30.18 34.79
UniXcoder_wsf 16.80 14.93 15.66 14.96 13.26 15.52 29.45 28.94 33.48
CodeT5 17.69 16.22 17.28 17.19 14.93 17.04 34.03 32.00 36.75
CodeT5_wsf 17.30 16.15 17.16 17.05 14.16 16.27 33.62 31.30 36.22
GPT-3.5-turbo 15.56 13.15 12.51 16.87 15.84 16.82 27.17 22.84 22.89
GPT-3.5-turbo_wsf 13.87 13.41 12.18 16.20 16.68 16.37 22.52 23.64 22.26
CodeT5+ 17.76 15.07 12.29 17.35 15.01 12.49 22.80 22.19 19.17
CodeT5+_wsf 17.79 14.94 15.58 18.19 15.00 17.51 22.98 22.28 30.87

