0


【文本生成评价指标】 ROUGE原理及代码示例py

【文本生成评价指标】 BLEU原理及代码示例py
【文本生成评价指标】 METEOR原理及代码示例py
【文本生成评价指标】 DISTINCT原理及代码示例py
【文本生成评价指标】文本生成客观评价指标总结py

1. ROUGE原理

在自然语言处理中,ROUGE是一种广泛使用的自动文本评估指标,用于比较生成文本和参考文本之间的相似度。ROUGE可以看做是BLEU 的改进版,专注于召回率而非精度。换句话说,它会查看有多少个参考译句中的 n 元词组出现在了输出之中。

ROUGE大致分为四种(常用的是前两种):

  • ROUGE-N (将BLEU的精确率优化为召回率)
  • ROUGE-L (将BLEU的n-gram优化为公共子序列)
  • ROUGE-W (将ROUGE-L的连续匹配给予更高的奖励)
  • ROUGE-S (允许n-gram出现跳词(skip))

四者具体的公式及不同,见链接:ROUGE原理

ROUGE 用作机器翻译评价指标的初衷是这样的:在 SMT(统计机器翻译)时代,机器翻译效果稀烂,需要同时评价翻译的准确度和流畅度;等到 NMT (神经网络机器翻译)出来以后,神经网络脑补能力极强,翻译出的结果都是通顺的,但是有时候容易瞎翻译。

ROUGE的出现很大程度上是为了解决NMT的漏翻问题(低召回率)。所以 ROUGE 只适合评价 NMT,而不适用于 SMT,因为它不管候选译文流不流畅。

2. 代码实现

下面是一个基于 Python 的示例代码,用于计算生成文本和参考文本之间的 ROUGE 指标。这段代码使用 Python 的 rouge 库来计算生成文本和参考文本之间的 ROUGE 指标。

from rouge import Rouge

# 生成文本
generated_text ="This is some generated text."# 参考文本列表
reference_texts =["This is a reference text.","This is another reference text."]# 计算 ROUGE 指标
rouge = Rouge()
scores = rouge.get_scores(generated_text, reference_texts)# 打印结果print("ROUGE-1 precision:", scores[0]["rouge-1"]["p"])print("ROUGE-1 recall:", scores[0]["rouge-1"]["r"])print("ROUGE-1 F1 score:", scores[0]["rouge-1"]["f"])

首先,代码定义一个包含生成文本的字符串 generated_text 和一个包含参考文本的字符串列表 reference_texts。接下来,代码创建一个 Rouge 对象,并使用 get_scores 方法计算生成文本和参考文本之间的 ROUGE 指标。最后,代码输出 ROUGE-1 精确度、召回率和 F1 分数。

此代码演示了如何使用 Python 中的 rouge 库来计算生成文本和参考文本之间的 ROUGE 指标,以评估文本生成算法的质量。

这里,博主要提醒一下,对于中英文的输入序列处理方式是不同的,对于中文处理序列也存在不同的方法可能会导致不同的答案。 推荐阅读这位博主的介绍:中文自动文本摘要生成指标计算。

推荐阅读:
(1) 文本生成客观评价指标总结
(2) 中文自动文本摘要生成指标计算

参考链接:
ROUGE原理


本文转载自: https://blog.csdn.net/weixin_43937790/article/details/129768673
版权归原作者 zz_Lambda 所有, 如有侵权,请联系我们删除。

“【文本生成评价指标】 ROUGE原理及代码示例py”的评论:

还没有评论