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
   193   194   195   196   197   198   199   200   201   202   203