Page 192 - 《软件学报》2026年第2期
P. 192
张育博 等: 基于依赖感知分层神经网络的代码注释增强方法 671
Python Java Go
Test Test Test
3 647 Valid 2 108 Valid 6 866 Valid
Train Train Train
206 4 836 297
6 968 384
421 309 201 482 包含子函数
560 621 459 9 794 688 个数
1 999 1 840 481 1 862 蓝色=1
1 582 1 467 红色=2
1 814 绿色≥3
30 898
27 560
22 726
图 3 在 Python、Java 和 Go 数据集中包含不同数量的子函数
BLEU (bilingual evaluation understudy): 由 IBM 在 2002 年提出, BLEU 是自然语言处理 (NLP) 任务中广泛使
用的评估指标, 如机器翻译和文本摘要. BLEU 主要基于精度的概念, BLEU 有多种变体, 按 n-gram 评估分类. 最常
用的变体包括 BLEU-1、BLEU-2、BLEU-3 和 BLEU-4, 其中 n-gram 表示连续词汇的数量. 值得注意的是, BLEU-4
相比 BLEU-1 等指标更加注重句子的流畅度. BLEU-4 的计算公式为:
n
∑
BLEU-4 = bp·exp w n logp n (20)
i=0
其中, n 取值为 4, 表示 n-gram 的长度, w n 是正权重, p n 是精度得分. bp 是长度惩罚因子, 用于惩罚生成摘要长度与
参考摘要长度不一致的情况. bp 的计算公式为:
{
1, c > r
bp = r (21)
e 1− c , c ⩽ r
其中, r 表示参考摘要的长度, 表示生成摘要的长度. BLEU-4 评分的范围在 0–100% 之间, 得分越高表示生成的
c
摘要质量越高, 并且与参考摘要的匹配度越高. 近年来, BLEU-4 已成为研究中最主要的评估指标. 基于这一趋势,
本文同样采用 smoothed BLEU-4 [61] 作为评估指标.
METEOR (metric for evaluation of translation with explicit ordering): 作为一种综合评估指标, 涵盖了精确度和
召回率, 旨在解决 BLEU 可能存在的局限性. METEOR 的计算涉及使用一个校准集 m, 该集源自 WordNet 词库. 它
利用这个校准集, 通过比较最佳候选翻译与参考翻译, 计算精度 P 和召回率 R 的调和平均值, 计算公式如下:
PR
F mean = (22)
αP+(1−α)R
( ) θ
#chunks
Penalty = γ (23)
#unigram_matched
METEOR = F mean ×(1− Penalty) (24)
其中, Penalty 是惩罚因子, #chunks 表示候选翻译与参考翻译之间连续匹配的片段数, #unigram_matched 指的是匹
θ
配的单个词的数量. #chunks 越小, 候选翻译与参考翻译的匹配程度越高. α, γ 和 是用于评估的超参数, 通常在机
器翻译评估中取值为 α = 0.9, γ = 0.5, θ = 0.3.
METEOR 是一种综合评估指标, 不仅考虑了整个语料库范围内的精确度和召回率, 还考虑了句子流畅性以及
同义词对语义理解的影响. 然而, 需要注意的是, METEOR 对文本长度可能较为敏感, 并且可能依赖于外部资源来
获取参考信息.
ROUGE-L (recall-oriented understudy for gisting evaluation): 是一种主要聚焦于评估召回率的度量. 它特别擅长
衡量摘要之间的 n-gram 共现信息, 通常在生成包含多个句子或段落的长文本摘要时被使用. ROUGE-L 通过计算
最长公共子序列的重叠度来量化其重合率, 具体如下:

