Page 237 - 《软件学报》2021年第7期
P. 237

牛长安  等:基于指针生成网络的代码注释自动生成模型                                                      2155


                    BLEU 还存在一个问题,就是 n-gram 的匹配度可能会随着句子长度的变短而变好,因此 BLEU 在最后的评
                 分结果中引入了长度惩罚因子(brevity penalty,简称 BP),对于长度为 c 的候选句子和有效长度为 r 的目标句子,
                 惩罚因子 BP 的计算方法如下.
                                                          1,        if c   r
                                                    BP        1   r                           (16)
                                                         e     c   ,  if c ≤ r
                 因此,最终的 BLEU 分数为
                                                              N      
                                                BLEU   BP   exp   W n log p   n                 (17)
                                                              n 1   
                 其中,exp 为指数函数,p n 为公式(15)得到的结果,对于 n-gram,W n =1/n,对于 BLEU-4,N=4.
                    本次实验使用了 corpus-level BLEU 和 sentence-level BLEU,前者则是在整个语料库中进行的 BLEU 评分,
                 也就是在测试完成后,对所有生成的注释进行评分;后者是对每一对候选句子和参考句子进行 BLEU 评分,最后
                 得出平均值.评分通常使用累积 n-gram 得分,即最终的得分由各 n-gram 加权平均得到,本次实验采用的 BLEU-4
                 为 1-gram、2-gram、3-gram、4-gram 下的得分进行加权平均,权重为 BLEU-4 所设定的默认值,均为 0.25.
                 3.3.2    METEOR
                    METEOR 由 Denkowski 等人    [45] 提出,基于单精度的加权调和平均数和单字召回率,其目的是解决一些
                 BLEU 标准中固有的缺陷,其最大的特点就是引入了同义词匹配,本实验的同义词匹配基于 wordnet(https://
                 wordnet.princeton.edu/).
                    METEOR 首先找到候选句子和参考句子之间的一个最优匹配,然后计算准确率(precision)P 和召回率
                 (recall)R.本次实验中,准确率为候选句子中存在匹配的单词数量除以候选句子的总单词数量,召回率为候选
                 句子中匹配的单词数量除以参考句子的总单词数量,得到 P 和 R 后,接着计算两者的参数化调和平均值 F mean ,
                 公式为
                                                            PR
                                                   F mean                                           (18)
                                                          P  (1      )R
                 其中,为可设定的参数.单词之外,为了考虑短语的匹配程度,METEOR 引入了 chunks,表示在参考句子中相邻
                 的若干个单词,其在候选句子中匹配的单词也相邻的短语,使用 c 表示 chunks 的数量,m 表示匹配的单词数量,
                 则惩罚因子 Pen 为
                                                              c   
                                                          
                                                      Pen                                         (19)
                                                              m 
                 其中,和为可设定的参数.可以看出,当候选句子和参考句子没有短语匹配,均为单个词匹配时,c=m,惩罚因子
                 最大,当 chunk 变长时,c 变小,惩罚因子变小,因此 METEOR 得分为
                                                   Score   (1 Pen F  )   mean                     (20)
                    实验中我们对每一个生成的注释进行 METEOR 评估,最终取平均值作为 METEOR 得分.参数方面,根据文
                 献[45]中基于数据实验得到的参数设定,我们取=0.9,=3,=0.5.
                 3.4    实验结果及分析

                    本节首先在第 3.4.1 节直观罗列不同方案最终的实验结果,从词库规模和评估方式两个维度对最终的结果
                 进行对比,并且对比了不同方案的参数规模和训练开销,第 3.4.2 节~第 3.4.4 节深入分析了实验结果并分别回答
                 了 3 个研究问题.
                 3.4.1    实验结果
                    模型在不同词库大小下的运行时间大约为 20~25 小时,训练阶段均是通过早停法结束.最终得分见表 1.表
                 中,C-BLEU 表示 corpus-level BLEU,S-BLEU 表示 sentence-level BLEU,得分采用百分制.
   232   233   234   235   236   237   238   239   240   241   242