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

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)

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容