【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)

中文文本处理结果

在这里插入图片描述

计算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 * (精确率 * 召回率)/(精确率 + 召回率)。

  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值