鱼C论坛

 找回密码
 立即注册
查看: 1188|回复: 1

[学习笔记] Rouge-Chinese,中文文本摘要评估指标

[复制链接]
发表于 2024-4-11 10:18:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 Handsome_zhou 于 2024-4-11 10:41 编辑

Rouge是一个用于评估文本摘要质量的指标库,而Rouge-Chinese是专门用于中文文本的Rouge指标库。在自动摘要和机器翻译等自然语言处理任务中,Rouge指标常被用来衡量生成的摘要与参考摘要之间的相似度。Rouge-Chinese是Rouge指标的一个变种,专门用于评估中文文本的摘要质量。

Rouge指标的一般工作原理是通过比较生成的摘要与参考摘要之间的重叠程度来评估其相似度。Rouge指标通常基于以下几个方面的比较:

1、Rouge-N (N-gram Overlap): 这个指标比较生成的摘要和参考摘要之间的N-gram重叠程度。其中N代表N-gram的长度,通常包括unigram、bigram和trigram等不同长度的片段。Rouge-N可以衡量摘要的整体流畅度和连贯性。

2、Rouge-L (Longest Common Subsequence): 这个指标比较生成的摘要和参考摘要之间的最长公共子序列。Rouge-L考虑了生成摘要与参考摘要之间的顺序信息,因此对于评估文本生成任务的效果更加有力。

3、Rouge-W (Weighted LCS): 这个指标是Rouge-L的一种变种,它考虑了词的权重信息,使得在计算最长公共子序列时,较重要的词获得更高的权重。


对于中文文本,Rouge-Chinese考虑到中文语言的特点和结构,对Rouge指标进行了适当调整,以更准确地评估中文文本的摘要质量。它考虑了中文文本中的字词结构、语序特点以及词义表达等因素,在评估中文文本摘要时更为准确和有效。


使用示例代码:
from chinese_rouge import Rouge

# 初始化Rouge对象
rouge = Rouge()

# 生成的摘要
generated_summary = "我爱中国"

# 参考摘要
reference_summary = "我热爱我的祖国"

#计算单个文本之间的Rouge指标得分:
# 计算Rouge-N
rouge_n_score = rouge.compute_rouge_n(generated_summary, reference_summary, n=2)
print("Rouge-N Score:", rouge_n_score)

# 计算Rouge-L
rouge_l_score = rouge.compute_rouge_l(generated_summary, reference_summary)
print("Rouge-L Score:", rouge_l_score)

# 计算Rouge-W
rouge_w_score = rouge.compute_rouge_w(generated_summary, reference_summary)
print("Rouge-W Score:", rouge_w_score)

# 计算Rouge-S
rouge_s_score = rouge.compute_rouge_s(generated_summary, reference_summary)
print("Rouge-S Score:", rouge_s_score)

#计算多个多个文本之间的Rouge指标得分:
decode_preds = [" ".join(p) for p in result]
decode_labels = [" ".join(l) for l in ds["test"]["title"]]
scores = rouge.get_scores(decode_preds, decode_labels, avg=True)

{
    "rouge-1": scores["rouge-1"]["f"],
    "rouge-2": scores["rouge-2"]["f"],
    "rouge-l": scores["rouge-l"]["f"],
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-4-11 10:18:47 | 显示全部楼层
Rouge-Chinese的使用方法与Rouge类似,但有一些针对中文文本的改进。下面是一个使用Rouge-Chinese计算摘要质量的示例代码:
from rouge_chinese import Rouge

# 生成的摘要
summary = "今天天气晴朗,适合出门游玩。"
# 参考的摘要
reference = "今天的天气非常好,可以到户外去玩耍。"

rouge = Rouge()
scores = rouge.get_scores(summary, reference)

print(scores)

输出结果将显示生成摘要和参考摘要之间的Rouge指标评分,包括Rouge-N、Rouge-L和Rouge-W。

在代码中,你需要安装Rouge-Chinese库并导入Rouge类。然后,创建Rouge对象,并使用`get_scores()`方法传入生成摘要和参考摘要来计算得分。最后,你可以打印出得分。

注意,Rouge-Chinese需要依赖jieba库来进行分词,因此你还需要安装jieba库。另外,Rouge-Chinese支持Python 3.x版本。

希望这个示例能帮助你理解如何使用Rouge-Chinese评估中文文本的摘要质量。如果有任何问题,请随时提问!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-27 21:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表