当前位置:   article > 正文

【python】测试中文文本的Rouge-1、Rouge-2、Rouge-L的值

【python】测试中文文本的Rouge-1、Rouge-2、Rouge-L的值

解决问题:测试中文文本的rouge值,用于评估大模型的性能。
ROUGE 指标的全称是 (Recall-Oriented Understudy for Gisting Evaluation),主要是基于召回率 (recall) 的。

from rouge import Rouge
import jieba

# 将句子分词并进行处理
def preprocess_text(text):
    # 分词并连接成字符串
    words = jieba.lcut(text)
    processed_text = ' '.join(words)
    return processed_text

# 测试数据
reference = "这是一个测试句子"
candidate = "这是另一个测试句子"

# 预处理测试数据
processed_reference = preprocess_text(reference)
print("--------------------------")
print(processed_reference)
print("--------------------------")
processed_candidate = preprocess_text(candidate)
print("--------------------------")
print(processed_candidate)
print("--------------------------")

# 初始化ROUGE评价器
rouge = Rouge()

# 计算ROUGE指标
scores = rouge.get_scores(processed_candidate, processed_reference, avg=True)

# 输出结果
print(scores)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33

中文文本处理结果

在这里插入图片描述

计算rouge值

在这里插入图片描述
只需要r的值即可,因为rouge关注召回率。

在ROUGE指标中,'r’代表召回率(recall)即rouge的值,'p’代表精确率(precision),'f’代表F1分数。这些指标用于衡量自动生成的摘要与参考摘要之间的相似性。

召回率(recall)衡量的是自动生成的摘要中包含了多少参考摘要中的内容。它的计算公式为:召回率 = 匹配的n-gram数量 / 参考摘要中的n-gram数量。
精确率(precision)衡量的是自动生成的摘要中有多少内容是正确的。它的计算公式为:精确率 = 匹配的n-gram数量 / 自动生成的摘要中的n-gram数量。
F1分数(F1 score)是召回率和精确率的调和平均值,它综合了召回率和精确率的性能。它的计算公式为:F1分数 = 2 * (精确率 * 召回率) / (精确率 + 召回率)

在ROUGE-L中,“L”代表“最长公共子序列”(Longest Common Subsequence)。具体解释如下:

召回率(Recall):衡量自动生成的摘要中包含了多少参考摘要中的内容。在ROUGE-L中,召回率的计算方式是匹配的最长公共子序列(LCS)的长度除以参考摘要的长度。
精确率(Precision):衡量自动生成的摘要中有多少内容是正确的。在ROUGE-L中,精确率的计算方式是匹配的最长公共子序列(LCS)的长度除以自动生成的摘要的长度。
F1分数(F1 score):是召回率和精确率的调和平均值,综合了召回率和精确率的性能。在ROUGE-L中,F1分数的计算方式是2 * (精确率 * 召回率)/(精确率 + 召回率)。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/865881
推荐阅读
相关标签
  

闽ICP备14008679号