美文网首页
文本生成-机器翻译评估指标及代码

文本生成-机器翻译评估指标及代码

作者: 魔法少女玛格姬 | 来源:发表于2023-06-11 12:43 被阅读0次

BLEU-4

  • 简介:BLEU-4(Bilingual Evaluation Understudy):BLEU是一种常用的自动评估指标,用于测量候选文本与参考文本之间的相似性。BLEU-4表示使用四个单位长度的n-gram(n=1,2,3,4)进行计算。它通过比较候选文本中的n-gram是否出现在参考文本中来计算得分,同时也考虑了候选文本的长度。BLEU-4的取值范围通常在0到1之间,越接近1表示候选文本与参考文本越相似。
  • 公式
    BLEU-4 = \text{BP} \times \exp\left(\sum_{i=1}^{4} w_i \log(p_i)\right)
    其中,BP(Brevity Penalty)是长度惩罚项,用于惩罚较短的候选文本;w_i 是权重,平均分布为 1/4;p_i 是 n-gram 精确匹配率的几何平均。

METEOR

  • 简介:METEOR(Metric for Evaluation of Translation with Explicit ORdering):METEOR是另一种机器翻译评估指标,它考虑了候选文本与参考文本之间的词汇、语法和语义等多个层面的匹配。METEOR使用了单词精确匹配率、单词级别的重叠率和一些外部资源(如WordNet)来计算得分。METEOR的取值范围也在0到1之间,越接近1表示候选文本与参考文本越相似。

  • 公式
    \text{METEOR} = (1 - \alpha) \times P + \alpha \times R \times F
    其中,P 是单词精确匹配率,R是单词级别的重叠率,F 是综合评分;\alpha 是一个权衡精确度和召回率的参数。

ROUGE-L

  • 简介:ROUGE-L(Recall-Oriented Understudy for Gisting Evaluation - Longest Common Subsequence):ROUGE是一系列用于评估文本摘要生成系统的指标。ROUGE-L是其中的一种,它衡量候选文本与参考文本之间最长公共子序列(LCS)的相似性。LCS是指两个文本中具有最长共同序列的部分,ROUGE-L通过计算LCS的长度与参考文本总长度的比值来评估候选文本的质量。

  • 公式
    \text{ROUGE-L} = \frac{\text{LCS}}{\text{Ref_len}}
    其中,LCS 是候选文本与参考文本之间的最长公共子序列的长度;\text{Ref_len} 是参考文本的总长度。

CIDEr

  • 简介:CIDEr(Consensus-based Image Description Evaluation):CIDEr是一种用于评估图像描述生成系统的指标,但也可以应用于其他文本生成任务。CIDEr考虑了候选文本与参考文本之间的词汇多样性和一致性。它使用多个参考文本计算n-gram的权重,并考虑了候选文本与参考文本之间的词汇重叠率。CIDEr的得分范围没有限制,越高表示候选文本与参考文本越匹配。

  • 公式
    \text{CIDEr} = \frac{1}{n} \sum_{i=1}^{n} \frac{{\text{cider}{\text{sent}}}}{{\text{cider}{\text{ref}}}}
    其中,n 是候选文本的数量;\text{cider}{\text{sent}}是候选文本与参考文本之间的 n-gram 重叠率得分;\text{cider}{\text{ref}}是参考文本之间的 n-gram 重叠率得分。

代码

import nltk
from nltk.translate.bleu_score import sentence_bleu
from nltk.translate.meteor_score import meteor_score
from nltk.translate.bleu_score import SmoothingFunction
from rouge import Rouge
from cider import Cider

# 候选文本和参考文本
candidate = "the cat sat on the mat"
reference = "the cat is on the mat"

# BLEU-4
candidate_tokens = candidate.split()
reference_tokens = reference.split()
smoothing_function = SmoothingFunction().method1  # 平滑函数
bleu_4 = sentence_bleu([reference_tokens], candidate_tokens, weights=(0.25, 0.25, 0.25, 0.25), smoothing_function=smoothing_function)
print("BLEU-4:", bleu_4)

# METEOR
meteor = meteor_score([reference], candidate)
print("METEOR:", meteor)

# ROUGE-L
rouge = Rouge()
scores = rouge.get_scores(candidate, reference)
rouge_l = scores[0]["rouge-l"]["f"]
print("ROUGE-L:", rouge_l)

# CIDEr
cider = Cider()
cider_score = cider.compute_score({0: [reference]}, {0: [candidate]})  # 注意输入要求是字典形式
cider_score = cider_score[0]
cider_score_avg = sum(cider_score["CIDEr"]) / len(cider_score["CIDEr"])
print("CIDEr:", cider_score_avg)

相关文章

  • 2019-01-24

    文本生成是今年来NLP领域研究的热点。文本生成有很多应用,比如对话中的回复生成或者问题生成,机器翻译,生成式文本摘...

  • 技术实践|如何评估机器翻译和译后编辑质量?

    本文来自RWS对高级解决方案架构师Miklós Urbán的采访。 一、机器翻译质量自动评估指标 对机器翻译进行质...

  • 机器翻译评估指标之BLEU

      先上结论,BLEU计算公式如下:其中,表示文本块的修正后的n_gram precision score,而,是...

  • 机器翻译质量评估笔记

    机器翻译质量评估笔记 简介 质量评估(QE)旨在没有人工干预的情况下机器翻译质量。QE 结果在昂贵的机器翻译后编辑...

  • pyrouge和rouge,文本摘要评测方法库

    rouge是自动文本摘要算法的评估指标:https://blog.csdn.net/qq_25222361/art...

  • 《绩效管理》--绩效指标与标准

    1、什么是绩效评估指标?绩效评估指标有哪些分类? 评估指标指的是评估因子或评估项目。 根据评估内容分:1)工作业绩...

  • 机器翻译质量评测算法-BLEU

    本文介绍机器翻译领域针对质量自动评测的方法-BLEU,让你理解为什么BLEU能够作为翻译质量评估的一种指标,它的原...

  • [论文]BLEU: a Method for Automatic

    论文地址 ACL-2002 一、摘要 对机器翻译的人工评估是高代价且无法复用的。该文提出了一种自动评估机器翻译,且...

  • 第四次打卡-2020-02-17

    学习笔记 一、机器翻译及相关技术 机器翻译(MT) 将一段文本从一种语言自动翻译为另一种语言,用神经网络解决这个问...

  • task04

    机器翻译及相关技术 机器翻译(MT):将一段文本从一种语言自动翻译为另一种语言,用神经网络解决这个问题通常称为神经...

网友评论

      本文标题:文本生成-机器翻译评估指标及代码

      本文链接:https://www.haomeiwen.com/subject/ijwxydtx.html