Page 336 - 《软件学报》2025年第8期
P. 336
赵衔麟 等: 面向代码注释生成任务的注释质量评价研究 3759
似的结果. 生成的注释在词汇语义上与代码的相似程度更高. 当参考注释与代码的词汇语义相似度较低时, 生成这
样的注释会更困难.
表 11 3 个注释集合在 lexical_tfidf 指标上的统计情况
指标 生成注释 参考注释 低BLEU集
lexical_tfidf 均值 0.417 3 0.305 1 0.244 9
lexical_tfidf 中位数 0.405 0 0.271 2 0.207 8
对于低 BLEU 集的参考注释, 本文进行了进一步的分析. 此类注释在词汇和语义上与代码的重合较少, 除用词
上存在差异之外, 如前文所述, 参考注释本身可能是对代码高层逻辑和意图的概括, 或者包含软件项目上下文的信
息. 但是, 参考注释也可能与代码没有关联, 甚至是错误的. 为此, 本文对低 BLEU 集开展了人工分析, 特别的, 共有
1 005 条生成注释的 BLEU 值为 0, 即与人工参考注释没有重叠, 从中抽取 100 条数据, 分析参考注释的实际情况.
结果显示, 有 34 条参考注释与代码实现本身没有关联, 包括开发者之间的沟通信息, 譬如“fixme”“to be removed”
等, 另有多条参考注释均为“visible for testing”, 表示该代码与测试代码的关系.
综上, 生成注释取得较低的 BLEU 值, 一方面是因为参考注释本身较难生成, 另一方面, 参考注释可能与代码
没有关联, 属于数据集中的噪音.
5.2 简洁性
图 9 展示了生成注释、人工参考注释以及低 BLEU 集中的人工参考注释在简洁性指标 comment_len、conciseness
上的分布情况. 可以看到, 生成注释的长度集中在 3–9, 在此区间上的样本比例显著高于人工参考注释, 分布也更
为集中. 这表明生成的注释相比于人工参考注释而言明显偏短. 此外, 低 BLEU 集在小于 9 的区间上的比例相对于
人工参考注释更低. 当长度大于等于 12 时, 低 BLEU 集在各区间的比例都高于人工参考注释. 这表明较长的注释
更难生成, 更容易取得较低的 BLEU 值.
42
Generate Generate
36 Dataset 40 Dataset
Low-BLEU Low-BLEU
30 30
Probability (%) 24 Probability (%) 20
18
12
10
6
0 0
0 3 6 9 12 15 18 21 24 27 30 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
comment_len conciseness
图 9 3 个注释集合在 comment_len、conciseness 指标上的分布
对于 conciseness 指标, 生成注释在 [0, 0.1] 区间的样本比例显著高于参考注释, 之后各区间的样本比例急剧下
降. 说明生成的注释更倾向于简洁. 在较高的区间内, 低 BLEU 集相对于整个数据集也呈现出更高的样本比例. 这
表明内容更丰富的注释较难生成.
5.3 自然性
图 10 展示了生成注释、人工参考注释以及低 BLEU 集中的人工参考注释在 flesch_ease 指标上的结果. 从核
密度图和箱形图均可看出, 生成注释的 flesch_ease 指标总体上高于数据集中的注释, 这说明生成的注释语句更为
简单易读. 从箱形图还可看出, 生成注释的异常点更少, 更不容易出现极端的情况.
表 12 展示了 3 个注释集合在 grammar_error 指标上的均值结果. 相比于数据集中的人工参考注释, 生成注释

