主页

索引

模块索引

搜索页面

11.5. evaluate

两种调用方法:

evaluate.load("seqeval")
datasets.load_metric("seqeval")

11.5.1. evaluate.load(“glue”)

  • GLUE, the General Language Understanding Evaluation benchmark (https://gluebenchmark.com/) is a collection of resources for training, evaluating, and analyzing natural language understanding systems.

  • GLUE (General Language Understanding Evaluation) 是一套用于评估自然语言理解模型的套件和 benchmark。

GLUE 包括以下 9 个任务:

CoLA: 衡量模型是否能够判断句子是否合语法
SST-2: 二分类任务,判断句子是否正面
MRPC: 判断两个句子是否含义相同
STS-B: 判断两个句子的语义相似度
QQP: 判断两个问句是否含义相同
MNLI: 判断前提句子和结论句子是否一致
QNLI: 判断前提句子是否能推断结论句子
RTE: 判断两个句子是否表达相同的事实描述
WNLI: 判断两个句子在不同文本内是否对应
  • GLUE 提供了这 9 个任务的官方测试集,通过平均多个任务准确率评估模型的综合语言理解能力。

  • GLUE 是当前 NLP 领域公认的机器阅读理解任务指标,帮助模型开发者衡量和比较不同模型在自然语言理解上的表现水平。

11.5.2. evaluate.load(“seqeval”)

seqeval是一个流行的序列标注评估工具,主要用于评估命名实体识别、文本 chunking 等序列标注任务的性能。它的主要特点包括:

- 支持多种序列标注表示,如BIO、IOB等
- 实现了精确匹配和部分匹配两种评估方法
- 计算准确率、召回率、F1分数等评估指标
- 支持实体、词性、语法等多种序列标注任务的评估
- 简单易用的API接口
- 支持PyTorch等深度学习框架
- 可以直接用于训练过程的评估
- 也可以对预测结果生成评估报告

其他调用方法:

metric = datasets.load_metric("seqeval")


1. 来源不同
- load_metric来自datasets库
- evaluate.load来自evaluate库
2. 调用接口不同
- load_metric返回一个Metric对象
- evaluate.load返回一个SEQEVAL对象

应用于:

Token classification

11.5.3. evaluate.load(“sacrebleu”)

sacrebleu是用于评估机器翻译质量的一个指标,具有以下特点:

- 它实现了Bilingual Evaluation Understudy (BLEU)的标准计算方法
- 与原始的BLEU实现相比,具有更好的可复现性、一致性和可比较性
- 能够消除弃用数据的影响,给出更准确的结果
- 支持青蛙文本(WMT)、新语料库(IWSLT)等标准翻译数据集上的结果评价
- 直接兼容NMT工具包(OpenNMT、Marian等)的输出结果进行评测
- 提供了便捷的命令行调用方式、Python接口和SacréBLEU scorer接口
- 可以快速加载使用,方便集成到机器翻译系统中

sacrebleu是机器翻译领域的重要评价指标,可以可靠地衡量翻译质量并给出自动评分,是训练和评估神经网络翻译模型的常用工具。

应用于:

Translation

11.5.4. evaluate.load(“rouge”)

rouge是一系列用于自动文本摘要和机器翻译评价的指标,主要功能如下:

- 提供ROUGE-N、ROUGE-L、ROUGE-W、ROUGE-S等多种评价指标
- ROUGE-N基于ngram统计文本重合程度
- ROUGE-L基于最长公共子序列判断相似度
- ROUGE-W加权longest common subsequence
- ROUGE-S基于skip-bigram共现统计
- 可以评价生成摘要的质量,和人工摘要的相似度
- 研究表明,ROUGE指标和人类评价判断相关度高
- 在机器翻译、文本摘要任务中被广泛使用
- 可以快速加载使用,提供便捷的评价接口
- 支持多种编程语言的实现,如Python、Java、Perl等

示例:

rouge = evaluate.load("rouge")

ROUGE提供了一个自动、快速、可靠的文本生成模型评价解决方案,是NLG系统不可或缺的评测工具。

应用于:

Summarization

11.5.5. evaluate.load(“accuracy”)

evaluate.load(“accuracy”) 加载了一个评估指标Accuracy(正确率)。 Accuracy指标是针对分类任务的评估指标,通过计算预测类别和真实类别相符的样本数量占总样本数量的比例,来评估模型的分类效果。 其计算公式为:

Accuracy = (TP + TN) / (TP + TN + FP + FN)
这里:
TP - 真正例(真实标签为正类,预测也为正类)
TN - 真负例(真实标签为负类,预测也为负类)
FP - 假正例(真实标签为负类,预测为正类)
FN - 假负例(真实标签为正类,预测为负类)
Accuracy越高,说明模型预测的类别和真实类别越接近,模型效果越好。
Accuracy适用于二分类和多分类问题。对于样本分布不均衡的情况,Accuracy可能会过高估计模型效果。

evaluate.load(“accuracy”)会构建该指标,用于对分类模型预测进行正确率评估。它简单易用,是分类任务评估的首选指标之一。

应用于:

Text classification
Multiple choice

Audio classification

Image classification

Video classification

11.5.6. evaluate.load(“wer”)

evaluate.load(“wer”) 加载的是语音识别领域常用的评估指标Word Error Rate(WER)。 WER表示词错误率,是自动语音识别任务中衡量识别结果质量的主要评估指标之一。 其计算方式是:

WER = (S + D + I) / N
这里:
S - 语音识别结果中的替换(substitution)数
D - 语音识别结果中的删除(deletion)数
I - 语音识别结果中的插入(insertion)数
N - 参考文本的词数
WER直观上表示,要将识别结果转换成参考文本,需要进行的最小编辑距离(通过替换、插入和删除操作的次数)与参考文本词数之比。
WER越低表示语音识别效果越好。为0表示完全准确识别。

evaluate.load(“wer”)会构建WER计算函数,取预测结果和参考文本作为输入,返回WER的值。使用WER可以直观地评估语音识别模型的识别效果,是语音识别任务中一个非常常用的评估指标。

应用于:

Automatic speech recognition

11.5.7. evaluate.load(“mean_iou”)

evaluate.load(“mean_iou”) 加载的是图像语义分割任务中的常用评估指标 mean IoU (交并比均值)。 IoU (Intersection over Union) 即交并比,是评估图像语义分割的关键指标。 对于每个类别,IoU计算方式为:

IoU = TP / (TP + FP + FN)
其中:
TP - 真正例(真实框与预测框匹配上的像素)
FP - 假正例(预测为该类但实际不是的像素)
FN - 假反例(未预测为该类但实际是的像素)
mean IoU 对所有类别的IoU取算术平均值,作为模型整体的评估指标。
mean IoU 越高,表示模型预测的MASK与真实MASK重合度越好,语义分割效果越佳。
evaluate.load("mean_iou") 将加载计算 mean IoU 的函数,可以直接用于评估语义分割模型的预测结果。
是图像语义分割任务中非常常用的评估指标。

应用于:

Semantic segmentation - 语义分割

11.5.8. 其他

查看支持的metrics:

from datasets import list_metrics
metrics_list = list_metrics()
print(metrics_list)

全部metrics:

['accuracy',
 'bertscore',
 'bleu',
 'bleurt',
 'brier_score',
 'cer',
 'character',
 'charcut_mt',
 'chrf',
 'code_eval',
 'comet',
 'competition_math',
 'coval',
 'cuad',
 'exact_match',
 'f1',
 'frugalscore',
 'glue',
 'google_bleu',
 'indic_glue',
 'mae',
 'mahalanobis',
 'mape',
 'mase',
 'matthews_correlation',
 'mauve',
 'mean_iou',
 'meteor',
 'mse',
 'nist_mt',
 'pearsonr',
 'perplexity',
 'poseval',
 'precision',
 'r_squared',
 'recall',
 'rl_reliability',
 'roc_auc',
 'rouge',
 'sacrebleu',
 'sari',
 'seqeval',
 'smape',
 'spearmanr',
 'squad',
 'squad_v2',
 'super_glue',
 'ter',
 'trec_eval',
 'wer',
 'wiki_split',
 'xnli',
 'xtreme_s',
 'AlhitawiMohammed22/CER_Hu-Evaluation-Metrics',
 'BucketHeadP65/confusion_matrix',
 'BucketHeadP65/roc_curve',
 'DarrenChensformer/eval_keyphrase',
 'Drunper/metrica_tesi',
 'Felipehonorato/eer',
 'He-Xingwei/sari_metric',
 'JP-SystemsX/nDCG',
 'Josh98/nl2bash_m',
 'Muennighoff/code_eval_octopack',
 'NCSOFT/harim_plus',
 'Natooz/ece',
 'NikitaMartynov/spell-check-metric',
 'Pipatpong/perplexity',
 'Splend1dchan/cosine_similarity',
 'Viona/fuzzy_reordering',
 'Viona/kendall_tau',
 'Vipitis/shadermatch',
 'Yeshwant123/mcc',
 'abdusah/aradiawer',
 'abidlabs/mean_iou',
 'abidlabs/mean_iou2',
 'agkhalil/ragene_metrics',
 'andstor/code_perplexity',
 'angelina-wang/directional_bias_amplification',
 'aryopg/roc_auc_skip_uniform_labels',
 'brian920128/doc_retrieve_metrics',
 'bstrai/classification_report',
 'chanelcolgate/average_precision',
 'ckb/unigram',
 'codeparrot/apps_metric',
 'cpllab/syntaxgym',
 'dvitel/codebleu',
 'ecody726/bertscore',
 'eperezfmit/my_metric',
 'eperezfmit/my_metric_3',
 'fastrepl/mean_average_precision',
 'fastrepl/mean_reciprocal_rank',
 'fschlatt/ner_eval',
 'gabeorlanski/bc_eval',
 'giulio98/codebleu',
 'guydav/restrictedpython_code_eval',
 'harshhpareek/bertscore',
 'hpi-dhc/FairEval',
 'hynky/sklearn_proxy',
 'hyperml/balanced_accuracy',
 'ingyu/klue_mrc',
 'jjkim0807/code_eval',
 'jpxkqx/peak_signal_to_noise_ratio',
 'jpxkqx/signal_to_reconstruction_error',
 'k4black/codebleu',
 'kaggle/ai4code',
 'kedudzic/charmatch',
 'langdonholmes/cohen_weighted_kappa',
 'lhy/hamming_loss',
 'lhy/ranking_loss',
 'lvwerra/accuracy_score',
 'manueldeprada/beer',
 'mfumanelli/geometric_mean',
 'mtc/fragments',
 'omidf/squad_precision_recall',
 'posicube/mean_reciprocal_rank',
 'sakusakumura/bertscore',
 'shalakasatheesh/squad',
 'sma2023/wil',
 'tialaeMceryu/unigram',
 'transZ/sbert_cosine',
 'transZ/test_parascore',
 'transformersegmentation/segmentation_scores',
 'unitxt/metric',
 'unnati/kendall_tau_distance',
 'vichyt/metric-codebleu',
 'weiqis/pajm',
 'ybelkada/cocoevaluate',
 'yonting/average_precision_score',
 'yuyijiong/quad_match_score']

主页

索引

模块索引

搜索页面