语法规则评价

语法规则评价

程序语言有严格的语法规范,对于计算机来说,任何歧义和不符合语法规范的程序语句都无法被执行。所以首先要确保生成的代码符合语法规范。

代码句补全

选取一段代码,挖掉中间的几句,看程序能不能正确预测出来。程序有多个输出(假设有16个输出),分别计算正确代码句出现在第一位、前三位、所有位置的正确率。
挖掉代码句示例:

评价标准示例:

代码段补全

概述与问题

序生成一段代码。借鉴BLEU评价方法,选取一部分代码作为参考代码,以代码句作为单位,采用修正的N-gram的匹配规则,比较生成代码句和参考译文代码句之间N-gram词组的相似的占比。(N-gram暂定为1-gram,也就是一句一句代码比较)。但是这种方法也存在问题。
1、如果程序输出了很多句正确但完全相同的代码,BLEU分数会很高,但这样显然是不对的。

2、如果参考代码很长,程序生成的代码段很短,程序生成的代码句的命中几率就会较大,这样也不合理。
针对以上两个问题,需要对评价方法进行修正。
2、修正方法
(1)删除参考代码中匹配过的句子
(2)引入惩罚因子BP
当待评价代码同任意一个参考代码长度相等或超过参考代码长度时,BP值为1,当待评价代码的长度较短时,则用一个算法得出BP值。 以c来表示待评价代码的长度,r来表示参考代码的文字长度, 则

3、例子

你可能感兴趣的:(语法规则评价)