Page 133 - 《软件学报》2026年第2期
P. 133
612 软件学报 2026 年第 37 卷第 2 期
表 2 不同代码注释生成方法在 JCSD 和 PCSD 数据集上的有效性 (%)
JCSD PCSD
类型 比较方法
BLEU ROUGE-L METEOR BLEU ROUGE-L METEOR
词法检索 46.13 53.65 29.07 35.45 46.10 20.82
基于信息检索
语义检索 47.18 55.27 30.12 35.72 47.48 21.61
SiT 45.17 55.21 26.83 36.53 49.93 21.80
Script 46.01 55.97 27.67 36.63 49.96 21.93
AST-Trans 46.34 53.63 29.28 33.96 40.53 19.90
CodeBERT 44.63 55.94 26.53 36.53 50.82 22.37
基于深度学习
CodeT5 48.44 59.74 29.83 39.17 54.27 25.22
Code LLaMA-fewshot 11.99 20.13 9.27 13.77 16.5 11.81
DeepSeek-Coder-fewshot 7.31 17.68 13.43 4.66 12.32 20.66
Qwen-Coder-fewshot 9.61 18.85 21.94 11.10 17.31 18.31
Re2Com 38.20 49.52 23.04 33.73 45.68 19.79
Recons 47.14 56.39 28.67 36.84 49.22 21.96
EditSum 24.54 37.63 12.77 19.92 32.93 10.83
基于 DECOM 46.52 56.84 28.84 36.48 49.68 21.95
集成
Code LLaMA-RAG 26.46 39.77 17.17 28.35 43.75 19.70
DeepSeek-Coder-RAG 11.29 22.21 24.18 7.31 16.19 22.10
Qwen-Coder-RAG 13.20 24.28 27.72 15.52 22.93 24.28
SRBCS 49.25 60.19 31.61 39.26 54.28 25.47
第一, 对于 JCSD 和 PCSD 两个实验数据集, 本文所提出的方法在 BLEU、ROUGE-L 和 METEOR 这 3 个性能
指标上均优于基线方法. 从 BLEU 分数看, 对应于基于词法检索的方法、基于语义检索的方法、SiT、Script、
AST-Trans、CodeBERT、CodeT5、Code LLaMA-fewshot、DeepSeek-Coder-fewshot、Qwen-Coder-fewshot、
Re2Com、Recons、EditSum、DECOM、Code LLaMA-RAG、DeepSeek-Coder-RAG 和 Qwen-Coder-RAG,
SRBCS 方法在 JCSD 数据集上分别提升了 6.77%、4.39%、9.05%、7.05%、6.28%、10.36%、1.67%、310.76%、
569.06%、412.49%、28.92%、4.47%、100.72%、5.87%、86.13%、336.23% 和 273.11%; 在 PCSD 数据集上分别
提升了 10.75%、9.90%、7.47%、7.18%、15.60%、7.47%、0.23%、185.11%、437.07%、253.69%、16.39%、
6.57%、59.98%、7.63%、38.48%、437.07% 和 152.96%. 这些实验结果表明, SRBCS 相较于现有代码注释生成方
法可以生成更高质量的代码注释.
第二, 从表 2 中还发现, 现有基于集成的方法通常无法很好地利用信息检索技术和深度学习技术在生成代码
注释方面的能力, 基于集成的方法在某些情况下性能甚至差于仅使用信息检索或仅使用深度学习的代码注释生成
方法. 例如, 基于语义检索的方法在 JCSD 上的 METEOR 分数为 30.12%, 但最优的基于集成的方法的 METEOR 分
数仅为 28.84% (DECOM 方法). 不同于现有基于集成的方法, 我们的方法在所有情况下都实现了优于基于信息检
索的方法和基于深度学习的方法的性能. 这意味着本文方法相较于现有基于集成的方法可以更好地利用并集成信
息检索技术和深度学习技术的优势.
第三, 我们注意到基于代码大模型的代码注释生成方法表现欠佳. 举例来说, 基于少样本提示的 DeepSeek-
Coder-fewshot 在 JCSD 数据集和 PCSD 数据集上仅分别得到 7.31% 和 4.66% 的 BLEU 分数 (所有基线方法中最
低). 我们猜测其中的原因是特定任务的数据分布与代码大模型的训练数据分布存在不对齐的情况, 导致大语言模
型在生成目标任务中测试代码的注释时具有高不确定性, 从而生成低质量的代码注释. 这一发现说明在面向特定
任务进行代码注释生成时, 相较于直接部署代码大模型, 训练一个任务特定的规模较小的代码模型会更加有效. 尽
管通过信息检索增强的方式可以一定程度缓解代码大模型中的数据分布不对齐情况, 但基于信息检索增强的代码
大模型的性能与其他基线方法相比仍存在一定差距. 以 DeepSeek-Coder-RAG 为例, 在 JCSD 数据集和 PCSD 数据
集上, SRBCS 的 BLEU 分数分别比 DeepSeek-Coder-RAG 的 BLEU 分数高 336.33% 和 437.07%. 这一发现进一步
阐明了相较于将检索结果直接输入深度学习模型进行代码注释生成的方式, 对检索结果和深度学习模型生成结果

