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 指标上的均值结果. 相比于数据集中的人工参考注释, 生成注释
   331   332   333   334   335   336   337   338   339   340   341