什么是rouge metric

采用分类任务的指标评估生成任务的问题

举个例子,在一个seq2seq模型中,黄金标签是“police killed the gunman”,模型输出是"the gunman police killed",两句话的意思是有差别的,但是从unigram的角度,它们都包含了"The", "police", "killed", "gunman",是完全相同的。

以常用的分类指标precision, recall, f1为例。precision = TP/(TP+FP), recall = TP/(TP+FN)。

在上面情境中,模型预测出"the" "gunman" "killed" "police"四个unigram,还都预测对了,因为它们在黄金标签“police killed the gunman”中也出现了,因此TP=4, 因为没有预测错误的unigram,FP=0,precision =1。

同理,对recall而言,TP=4,因为黄金标签中的4个unigram,全都被模型预测出来了,没有漏网之鱼,因此FN=0,即没有那些本来为阳性,却预测为阴性的unigram。因此recall为1.

因此F1 = TP/(TP+FN)=1,从分类的角度看,模型的预测是非常成功的。

但是我们一眼就看出,模型生成的结果改变了黄金标签的意思。这时候怎么去衡量模型生成结果的质量呢。

rouge-1

首先介绍rouge-1,这个1指的就是连续的一个单词。上图中绿色的是机器生成的,黄色的是人类给的标注,从单个连续单词的角度,一共有六个匹配的单词,按照图中给出的公式计算,即可算出rouge-1。

rouge-2

通过把模型生成的句子和人类给出的标注分拆成bi-gram的形式,与计算rouge-1类似,寻找匹配的bi-gram个数,带入公式,即可计算出rouge-2。

rouge-L

对于rouge-L,它不比较两句话中有多少个L-gram是相互匹配的,而是用两句话的最长公共子序列来计算。图中两句话的最长公共子序列长度为6,代入图中的ROUGE-L公式,即可计算出precision和recall。

如何调包计算rouge

可以调用load_metric包来计算rouge

  • 6
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值