使用rouge 指标评估两段文本的python代码
以下是使用 rouge 指标评估两段文本的 Python 代码:
from rouge import Rouge
# 两段文本
text1 = "这是第一段文本。"
text2 = "这是第二段文本。"
# 初始化 Rouge
rouge = Rouge()
# 计算 Rouge 分数
scores = rouge.get_scores(text1, text2)
# 输出结果
print(scores)
这段代码可以计算两段文本之间的 Rouge 分数,包括 Rouge-1、Rouge-2 和 Rouge-L。
Rouge评估
Rouge 评估方法简介
Rouge 是一种广泛应用于自然语言处理领域的评估工具,主要用于衡量自动生成的文摘或翻译与人工生成的标准摘要之间的相似度[^3]。其核心理念在于通过统计重叠单元(如 n-gram、词序片段等),来量化两个文本间的匹配程度。
主要指标及其定义
Rouge 的主要指标包括以下几个方面:
Rouge-N: 衡量的是 n-gram 的重叠比例。例如,当 N=1 时,表示单字匹配;N=2 则代表双字匹配。公式如下: [ R_{n} = \frac{\text{匹配的 n-gram 数}}{\text{参考摘要中的总 n-gram 数}} ] 这一指标能够反映候选摘要和参考摘要之间在短语层面的相似性。
Rouge-L: 基于最长公共子序列 (Longest Common Subsequence, LCS),它关注的是两段文字中最长连续一致的部分。LCS 越高,则说明两者越接近。计算方式为: [ R_L = \frac{|LCS(X,Y)|}{|Y|} ] 其中 ( |LCS(X,Y)| ) 表示 X 和 Y 的最长公共子序列长度,而 ( |Y| ) 是参考摘要的长度[^4]。
Rouge-W: 加入权重调整机制,在考虑 LCS 同时赋予更长匹配更高的分数。这有助于捕捉更大范围内的结构一致性。
召回率(Recall): 记录有多少部分被成功检索出来并正确匹配上。对于给定的一个二分类问题来说, [ Recall = \frac{TP}{TP + FN} ]
精确率(Precision): 描述所选项目中有多少是实际相关的。 [ Precision = \frac{TP}{TP + FP} ]
F-measure: 综合考量 precision 和 recall 平衡后的单一数值表现形式。 [ F_\beta = (1+\beta^2)\cdot\frac{{Precision}\times {Recall}}{{(\beta^2\times Precision)+Recall}} ]
下面是一个简单的 Python 实现例子展示如何利用 rouge-score 库来进行基本评分操作:
from rouge_score import rouge_scorer
scorer = rouge_scorer.RougeScorer(['rouge-1', 'rouge-l'], use_stemmer=True)
candidate_summary = "the quick brown fox jumps over a lazy dog"
reference_summary = "a quick brown animal leaps above another one"
scores = scorer.score(candidate_summary, reference_summary)
print(scores)
此脚本会输出 candidate summary 对应各个维度相对于 reference summary 得到的具体得分情况。
相关推荐















