首页 > 其他分享 >NLG常用metric整理

NLG常用metric整理

时间:2022-08-15 20:57:07浏览次数:55  
标签:bleu BLEU 常用 zh pred metric score NLG refs

概览

  • BLEU:基于比较词/短语的重叠比例,关注precision
  • Rouge:基于比较词/短语的重叠比例,关注recall
  • Meteor:基于比较词/短语的重叠比例,关注f1
  • Distinct:
  • Perplexity:

BLEU

BLEU (其全称为Bilingual Evaluation Understudy), 其意思是双语评估替补。所谓Understudy (替补),意思是代替人进行翻译结果的评估。尽管这项指标是为翻译而发明的,但它可以用于评估一组自然语言处理任务生成的文本。
计算公式:

举例:

主流的计算BLEU的python库有nltk和sacrebleu,计算结果的不同源自使用了不同的smooth算法。

from sacrebleu.tokenizers.tokenizer_zh import TokenizerZh
from sacrebleu.tokenizers.tokenizer_13a import Tokenizer13a
from sacrebleu import BLEU
import nltk.translate.bleu_score as nltkbleu


def tokenizer(s, lang):
    if lang == "zh":
        return TokenizerZh()(s).split(" ")
    else:
        return Tokenizer13a()(s).split(" ")


def sacre_bleu(refs, pred, n):
    bleu = BLEU(lowercase=True, tokenize="zh", max_ngram_order=n, effective_order=True)
    score = bleu.sentence_score(references=refs, hypothesis=pred).score
    print(score)


def nltk_bleu(refs, pred, n):
    """
    一般smoothing_function选择默认即可;
    默认n=4
    """
    refs = [tokenizer(ref, "zh") for ref in refs]
    pred = tokenizer(pred, "zh")
    weights = [1 / n for _ in range(n)]
    score = nltkbleu.sentence_bleu(
        refs,
        pred,
        smoothing_function=nltkbleu.SmoothingFunction().method7,
        weights=weights
    )
    print(score)


if __name__ == "__main__":
    s = "你好世界"
    sacre_bleu([s], s, 4)
    nltk_bleu([s], s, 4)

Rouge

标签:bleu,BLEU,常用,zh,pred,metric,score,NLG,refs
From: https://www.cnblogs.com/hyserendipity/p/16541665.html

相关文章

  • STL库常用数据结构用法
    介绍了map、vector、queue、set的使用。以及string与char【】的互相转换#include<iostream>#include<map>#include<set>#include<string>#include<unordered_map......
  • 常用的Linux命令
    获取linux服务器所有java进程及名称pidofjava|xargspwdxpidof:用于查找指定名称的进程的进程号id号-s一次只显示一个进程号-c只显示运行在root目录下的进程,这个......
  • git常用命令
    设置用户账户gitconfig--globaluser.name'xxx'设置用户邮箱gitconfig--globaluser.email'xxx'查看用户账户gitconfiguser.name查看用户邮箱......
  • 一些常用快捷键
    快捷键一、电脑快捷键ctrl+c复制ctrl+v粘贴ctrl+x剪切ctrl+z撤回ctrl+a全选ctrl+s保存shift+del永久删除win+f4关闭任务窗口win+r打开相应程......
  • oracle中常用函数大全
    oracle中常用函数大全1、数值型函数函数说明样例显示ceil(n)大于或等于数值n的最小整数selectceil(10.6)fromdual;11floor(n)小......
  • 1. 对常用I/O模型进行比较说明
      一、服务端I/O流程I/O在计算机中指Input/Output,IOPS(Input/OutputPerSecond)即每秒的输入输出量(或读写次数),是衡量磁盘性能的主要指标之一。IOPS是指单位时......
  • App测试时常用的adb命令你都掌握了哪些呢?
    本次训练营开营时间:8月7日14:00-17:00名额有限,扫码即可锁定听课名额adb全称为AndroidDebugBridge(Android调试桥),是AndroidSDK中提供的用于管理Android模拟......
  • str常用操作方法
    s='taiBai's1=s.upper()print(s1)全部转化为大写  username=input('用户名')password=input('密码')code='QweA'print(code)your_code=input('请输入验......
  • 【博学谷学习记录】超强总结,用心分享|狂野架构师IO常用知识点三
    目录BIO模型同步阻塞IONIO模型同步非阻塞IOAIO模型异步非阻塞IOReactor模型NIO下单Reactor-单线程NIO下单Reactor-多线程主从Reactor-多线程主从Reactor工作模式主从React......
  • Elasticsearch聚合类型字段aggregate-metric-double
    https://www.elastic.co/guide/en/elasticsearch/reference/8.1/aggregate-metric-double.html环境信息Elasticsearch8.1Kibana8.1MacOS10.14.6描述今天我们......