1.2 本章内容概览 本章将全面介绍ROUGE和METEOR这两种重要的NLP评估指标,主要内容包括: ROUGE指标详解:包括ROUGE-N、ROUGE-L、ROUGE-W等变体的原理、计算方法和适用场景 # 初始化ROUGE评估器 rouge = Rouge() # 计算ROUGE分数 scores = rouge.get_scores(candidate, reference) print("ROUGE 分数:", scores) 输出结果将包含ROUGE-1、ROUGE-2和ROUGE-L的精确率、召回率和F1值。 在评估文本摘要时,通常会计算多个ROUGE变体(如ROUGE-1、ROUGE-2、ROUGE-L)的分数,以从不同角度评估摘要质量。 = metrics or ['rouge-1', 'rouge-2', 'rouge-l'] self.rouge = Rouge(metrics=self.metrics)
/ROUGE-1.5.5.pl -e data -c 95 -2 -1 -U -r 1000 -n 4 -w 1.2 -a ROUGE-test.xml 其中测试文件可以从如下网址下载:ROUGE-test.xml /ROUGE-1.5.5.pl -e data -c 95 -2 -1 -U -r 1000 -n 4 -w 1.2 -b 75 -m -a ROUGE-test.xml --------------- ------------------------------ 11 ROUGE-1 Average_R: 0.22536 (95%-conf.int. 0.18124 - 0.27016) 11 ROUGE . 0.01812 - 0.05479) 11 ROUGE-2 Average_P: 0.02964 (95%-conf.int. 0.01698 - 0.04433) 11 ROUGE-2 Average_F ----------------------- 11 ROUGE-S* Average_R: 0.02919 (95%-conf.int. 0.01857 - 0.04092) 11 ROUGE-S*
不过,我们现在关系的是它可以使用的语法高亮工具 —— Rouge。 Rouge 支持的语言可以前往此处查看:Rouge 生成 Rouge 语法高亮样式 当然,以上配置只是告诉 kramdown 转换引擎在转换 Markdown 为 HTML 的时候,使用 rouge 格式的样式 随后,你便可以使用命令来安装 Rouge。 虽然 Rouge 自带了很多种不同的语法高亮样式,但都没有办法直接看到语法高亮的效果。 : A pure-ruby code highlighter that is compatible with pygments http://rouge.jneen.net/ Rouge 本文会经常更新
一、BLEU-N得分(Bilingual Evaluation Understudy) 【深度学习】序列生成模型(五):评价方法计算实例:计算BLEU-N得分 二、ROUGE-N得分(Recall-Oriented 中生成的一个候选序列, \mathbf{s^{(1)}}, ⋯ , \mathbf{s^{(K)}} 为从真实数据分布中采样得到的一组参考序列, \mathcal{W} 为从参考序列中提取N元组合的集合,ROUGE-N 算法的定义为: \text{ROUGE-N}(\mathbf{x}) = \frac{\sum_{k=1}^{K} \sum_{w \in \mathcal{W}} \min(c_w(\mathbf{x _{w \in \mathcal{W}} c_w(\mathbf{s}^{(1)})+ \sum_{w \in \mathcal{W}} c_w(\mathbf{s}^{(2)})=12 \text{ROUGE-N _{w \in \mathcal{W}} c_w(\mathbf{s}^{(1)})+ \sum_{w \in \mathcal{W}} c_w(\mathbf{s}^{(2)})=10 \text{ROUGE-N
A.深度学习基础入门篇二:机器学习常用评估指标:AUC、mAP、IS、FID、Perplexity、BLEU、ROUGE等详解1.基础指标简介机器学习的评价指标有精度、精确率、召回率、P-R曲线、F1 6.ROUGE 评估指标:机器翻译模型看过BLEU算法的同学知道,BLEU算法只关心生成序列的字词是否在参考序列中出现,而不关心参考序列中的字词是否在生成序列中出现,这在实际指标评估过程中可能会带来一些影响 下面还是以机器翻译为例,来探讨一下ROUGE的计算。假设当前有一句源文s,以及相应的译文参考序列$r_1,r_2,...,r_n$。 机器翻译模型根据源文s生成了一个生成序列x,且W为根据候选序列x生成的N元单词组合,则ROUGE算法的计算方式为:$\operatorname{ROUGE-N}(x)=\dfrac{\sum{k=1}^ 从公式可以看到,ROUGE算法能比较好地计算参考序列中的字词是否在生成序列出现过,但没有关注生成序列的字词是否在参考序列中出现过,即ROUGE算法只关心生成序列的召回率,而不关心准确率。
6.ROUGE 评估指标:机器翻译模型 看过BLEU算法的同学知道,BLEU算法只关心生成序列的字词是否在参考序列中出现,而不关心参考序列中的字词是否在生成序列中出现,这在实际指标评估过程中可能会带来一些影响 下面还是以机器翻译为例,来探讨一下ROUGE的计算。 假设当前有一句源文s,以及相应的译文参考序列 r_1,r_2,...,r_n 。 机器翻译模型根据源文s生成了一个生成序列x,且W为根据候选序列x生成的N元单词组合,则ROUGE算法的计算方式为: \operatorname{ROUGE-N}(x)=\dfrac{\sum_{k=1} 从公式可以看到,ROUGE算法能比较好地计算参考序列中的字词是否在生成序列出现过,但没有关注生成序列的字词是否在参考序列中出现过,即ROUGE算法只关心生成序列的召回率,而不关心准确率。 从公式可以看到,ROUGE算法能比较好地计算参考序列中的字词是否在生成序列出现过,但没有关注生成序列的字词是否在参考序列中出现过,即ROUGE算法只关心生成序列的召回率,而不关心准确率。
样例说明 我们给出一个例子来进行具体的计算说明如下: 生成文本:明天天天气好 参考文本:今天天气真的好 2021-03-28 (40).png 3. rouge rouge指标与bleu指标极其相似,但是 ,相较于bleu关注于生成的精度,rouge更看重生成的召回。 除此之外,rouge没有句长惩罚因子,他的公式可以直接表达为如下形式: 2021-03-28 (41).png 根据n的取值不同,rouge可以分为rouge-1, rouge-2等等。 另外还有常用的rouge指标还有rouge-l,他是rouge-n的一种变体: 它的分母还是参考文本的长度,他的分子则是生成文本与参考文本的最长公共子序列。 参考链接 语言模型评价指标Perplexity 一种机器翻译的评价准则——Bleu 机器翻译自动评估-BLEU算法详解 自动文摘评测方法:Rouge-1、Rouge-2、Rouge-L、Rouge-S
github pages 一直想添加代码高亮 highlighter ,基于 jekyll 3.0 的 rouge 终于搞定了: ? 下载代码高亮库 在 cmd 中输入: rougify style monokai.sublime > rouge.css 可以下载 rouge.css 出来,将这个 css 文件放到 github pages 项目中存放 css 的目录下,并在 html 中引用这个库,请自行更改引用的路径: <link href="/static/css/<em>rouge</em>.css" rel="stylesheet"/> 配置文件 调试代码高亮 在 cmd 中安装 rouge 方便本地调试: gem install rouge 为了防止 ` 被转义,在 html 中添加如下 js : <script type="text/x-mathjax-config 背景色为白色,字段显示不出来,所以我把 <em>rouge</em>.css 的背景色改成了黑色,在 <em>rouge</em>.css 最后面添加如下代码: div[class="highlight"] > pre > code[class
可参考:python︱flashtext高效关键词查找与替换 rouge,Rouge-1、Rouge-2、Rouge-L分别是:生成的摘要的1gram-2gram在真实摘要的1gram-2gram的准确率召回率和 1.1 模块一:rouge rouge是自动文本摘要算法的评估指标: from rouge import Rouge a = ["i am a student from xx school"] # 预测摘要 (可以是列表也可以是句子) b = ["i am a student from school on china"] #真实摘要 rouge = Rouge() rouge_score = rouge.get_scores (a, b) print(rouge_score[0]["rouge-1"]) print(rouge_score[0]["rouge-2"]) print(rouge_score[0]["rouge-l ,阈值,一定要相似性大于才会给出;如果是'rouge-1'比较合适的阈值在0.75 - score_type = 'rouge-2',rouge的得分类型,n-grams - stat
常见评估指标ROUGE(Recall-Oriented Understudy for Gisting Evaluation):计算摘要与参考摘要的重叠程度。 代码示例from rouge_score import rouge_scorerdef evaluate_summary(reference, generated): """计算 ROUGE 评分 """ scorer = rouge_scorer.RougeScorer(['rouge1', 'rouge2', 'rougeL'], use_stemmer=True) scores rouge_scores = evaluate_summary(reference_summary, generated_summary)print("ROUGE 评分:", rouge_scores) 参考资料OpenAI 官方文档Hugging Face 预训练模型ROUGE 评分论文
/th>
{ logs(filter: { ... }) { ... } } or { block(...) { logs(filter2K00发布于 2019-10-10- 来自专栏机器学习入门
【AI大模型】大型语言模型LLM基础概览:技术原理、发展历程与未来展望
ROUGE分为四种方法:ROUGE-N, ROUGE-L, ROUGE-W, ROUGE-S. 通过类似的方法,可以计算出其他ROUGE指标(如ROUGE-2、ROUGE-L、ROUGE-S)的评分,从而综合评估系统生成的文本质量。 ", "This is another generated reference text."]
# 计算 ROUGE 指标
rouge = Rouge()
scores = rouge.get_scores ("ROUGE-1 recall:", scores[0]["rouge-1"]["r"])
print("ROUGE-1 F1 score:", scores[0]["rouge-1"]["f"]) # ROUGE-1 precision: 0.8
# ROUGE-1 recall: 0.6666666666666666
# ROUGE-1 F1 score: 0.7272727223140496
2.2K10编辑于 2024-11-24 - 来自专栏深度学习自然语言处理
【论文笔记】基于强化学习的句子摘要排序
作者通过强化学习并优化ROUGE(recall-oriented understanding for gisting evaluation)对句子进行排序。
什么是 ROUGE呢? ROUGE是自动文档摘要的相关国际测评中常常用到的一种内部评价方法,当然还有其他的方法比如Edmundson,我们这里会简单对 ROUGE进行介绍,其包含 ROUGE-N, ROUGE-L(最长公共子句 , Fmeasure), ROUGE-W(带权重的最长公共子句, Fmeasure), ROUGE-S(不连续二元组, Fmeasure) 四种。 由于ROUGE的计算公式是根据召回率进行改的,类比召回率可知,rouge=系统算法生成的摘要与参考摘要相同的N-gram数/参考摘要中的N-gram总数。
为什么使用ROUGE作为评价指标呢? 针对这些问题,作者采用的训练策略不是最大化ground truth的似然,而是对文档中的每个句子预测单一的rouge分数,然后选出分数最高高的m个句子组成摘要。
98250发布于 2019-09-25 - 来自专栏机器学习算法与Python学习
干货|当深度学习遇见自动文本摘要,seq2seq+attention
但由于ROUGE并不可导的,传统的求梯度+backpropagation并不能直接应用到ROUGE。因此,一个很自然的想法是,利用强化学习将ROUGE指标加入训练目标。 ,允许摘要拥有更多的灵活性,同时针对ROUGE的优化也直接提升了模型的ROUGE评分。 ROUGE是Lin提出的一个指标集合,包括一些衍生的指标,最常用的有ROUGE-n,ROUGE-L,ROUGE-SU:
ROUGE-n:该指标旨在通过比较生成的摘要和参考摘要的n-grams(连续的n个词 常用的有ROUGE-1,ROUGE-2,ROUGE-3。
ROUGE-L:不同于ROUGE-n,该指标基于最长公共子序列(LCS)评价摘要。 但另一方面,从以上对ROUGE指标的描述可以看出,ROUGE基于字的对应而非语义的对应,生成的摘要在字词上与参考摘要越接近,那么它的ROUGE值将越高。
3.7K100发布于 2018-06-25 - 来自专栏自然语言处理
huggingface transformers实战系列-06_文本摘要
= []
rouge_names = ["rouge1", "rouge2", "rougeL", "rougeLsum"]
for model_name in summaries:
rouge_metric.add = load_metric("rouge", cache_dir=None)
rouge_names = ["rouge1", "rouge2", "rougeL", "rougeLsum"]
0% )
rouge_dict = dict((rn, score[rn].mid.fmeasure) for rn in rouge_names)
pd.DataFrame.from_dict(rouge_dict 让我们通过在测试集上运行完整的ROUGE评估来确认这一点:
# hide_input
pd.DataFrame(rouge_dict, index=["pegasus"])
rouge1 rouge2 "])
# hide_input
pd.DataFrame(rouge_dict, index=[f"pegasus"])
rouge1 rouge2 rougeL rougeLsum
pegasus
1.2K11编辑于 2023-08-25 - 来自专栏语言、知识与人工智能
当深度学习遇见自动文本摘要
但由于ROUGE并不可导的,传统的求梯度+backpropagation并不能直接应用到ROUGE。因此,一个很自然的想法是,利用强化学习将ROUGE指标加入训练目标。 ,允许摘要拥有更多的灵活性,同时针对ROUGE的优化也直接提升了模型的ROUGE评分。 ROUGE是Lin提出的一个指标集合,包括一些衍生的指标,最常用的有ROUGE-n,ROUGE-L,ROUGE-SU:
ROUGE-n:该指标旨在通过比较生成的摘要和参考摘要的n-grams(连续的n个词 常用的有ROUGE-1,ROUGE-2,ROUGE-3。
ROUGE-L:不同于ROUGE-n,该指标基于最长公共子序列(LCS)评价摘要。 但另一方面,从以上对ROUGE指标的描述可以看出,ROUGE基于字的对应而非语义的对应,生成的摘要在字词上与参考摘要越接近,那么它的ROUGE值将越高。
2.6K90发布于 2018-01-25 - 来自专栏机器学习之禅
GitHub | 一套完整的文本摘要任务解决方案-FastSum
rouge 近似值。 源代码为:https://github.com/pltrdy/rouge
PyRougeMetric 使用论文 ROUGE: A Package for Automatic Evaluation of Summaries 提供的官方 ROUGE 1.5.5 评测库。 为了使用ROUGE 1.5.5,需要使用 sudo 权限安装一系列依赖库。FastSum 提供了安装指南。 我们看下在 CNN/DailyMail 数据集上的 ROUGE 分数:
Model ROUGE-1 ROUGE-2 ROUGE-L Paper
LEAD 3 40.11 17.64 36.32 Our
1.2K30编辑于 2022-07-11 - 来自专栏xiaosen
LLM基础知识
ROUGE分为四种方法:ROUGE-N, ROUGE-L, ROUGE-W, ROUGE-S. 通过类似的方法,可以计算出其他ROUGE指标(如ROUGE-2、ROUGE-L、ROUGE-S)的评分,从而综合评估系统生成的文本质量。 "]
# 计算 ROUGE 指标
rouge = Rouge()
scores = rouge.get_scores(generated_text, reference_texts[1])
# 打印结果 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"])
# ROUGE-1 precision: 0.8
# ROUGE-1 recall
76310编辑于 2024-06-04 - 来自专栏小徐学爬虫
Python中同时调用多个列表
/ROUGE/Experiments/' for root, subFolders, files in os.walk(category + parName): #i = 0 #some function that is will refor parName in catlist2: category = '/home/x/Desktop/rouge /ROUGE/Experiments/' for root, subFolders, files in os.walk(category + parName): #i = 0 /ROUGE/Experiments/' for root, subFolders, files in os.walk(category + parName): #i = 0 /ROUGE/Experiments/' for root, subFolders, files in os.walk(category + parName):
85010编辑于 2024-04-10 - 来自专栏AI小白入门
【NLP】文本生成评价指标的进化与推翻
ROUGE大致分为四种(常用的是前两种):
ROUGE-N (将BLEU的精确率优化为召回率)
ROUGE-L (将BLEU的n-gram优化为公共子序列)
ROUGE-W (将ROUGE-L的连续匹配给予更高的奖励 ROUGE-N
“N”指的是N-gram,其计算方式与BLEU类似,只是BLEU基于精确率,而ROUGE基于召回率。 ROUGE-N 会分别计算机器译文和这些参考译文的 ROUGE-N 分数,并取其最大值,公式如下。这个方法也可以用于 ROUGE-L,ROUGE-W 和 ROUGE-S。
?
2. ROUGE-W
ROUGE-W 是 ROUGE-L 的改进版,考虑下面的例子,X表示参考译文,而Y1,Y2表示两种机器译文。
? 但是采用 ROUGE-L 计算得到的分数确实一样的,即 ROUGE-L(X, Y1)=ROUGE-L(X, Y2)。
6.2K40发布于 2020-06-24