Rouge评估方法的使用
文本摘要评估方法介绍:
-
内部评价方法:提供参考摘要,以参考摘要为基准评价系统摘要的质量。系统摘要与参考摘要越吻合,质量越高。
Edmundson:
适于抽取式文本摘要,比较机械文摘(自动文摘系统得到的文摘)与目标文摘(从原文中抽取的句子)的句子重合率的高低对系统摘要进行评价。
计算公式:
重合率p = 匹配句子数 /专家文摘句子数 * 100%
每一个机械文摘的重合率为按三个专家给出的文摘得到的重合率的平均值:
其中,pi为相对于第i个专家的重合率,n为专家文摘总数。
ROUGE-N:
N-gram模型:
N-gram模型认为第N个词的出现只与前面N-1个词相关,而与其它任何词都不相关。整句的概率就是各个词出现概率的乘积。ROUGE(Recall-Oriented Understudy for Gisting Evaluation)基于摘要中n-gram的共现信息评价摘要,是一种面向n元词召回率的评价方法。
其中,Ref summaries表示标准摘要, c o u n t m a t c h ( n − g r a m ) count_{match}(n-gram) countmatch(n−gram)表示生成摘要和标准摘要中同时出现n-gram的个数,count(n-gram)表示参考摘要中出现的n-gram个数。
例1:
S1. police killed the gunman.
S2. the gunman was shot down by police.
S3. police ended the gunman.
S4. the gunman murdered police.
S1,S2为参考摘要,S2和S3为候选摘要。
R O U G E − 1 s 3 = ( 3 + 3 ) ( 4 + 7 ) = 6 11 ROUGE-1_{s3} = \frac{(3+3)}{(4+7)} = \frac{6}{11} ROUGE−1s3=(4+7)(3+3)=116
R O U G E − 1 s 4 = ( 3 + 3 ) ( 4 + 7 ) = 6 11 ROUGE-1_{s4} = \frac{(3+3)}{(4+7)} = \frac{6}{11} ROUGE−1s4=(4+7)(3+3)=116
R O U G E − 2 s 3 = ( 1 + 1 ) ( 3 + 6 ) = 2 9 ROUGE-2_{s3} = \frac{(1+1)}{(3+6)} = \frac{2}{9} ROUGE−2s3=(3+6)(1+1)=92
R O U G E − 2 s 4 = ( 1 + 1 ) ( 3 + 6 ) = 2 9 ROUGE-2_{s4} = \frac{(1+1)}{(3+6)} = \frac{2}{9} ROUGE−2s4=(3+6)(1+1)=92
以s3为例,1-gram为(police、ended、the、gunman)4种
2-gram为(police ended、ended the、the gunman)3种
s1:1-gram为(police、killed、the、gunman)4种
2-gram为(police killed、killed the、the gunman)3种
s2:1-gram为(the、gunman、was、shot、down、by、police)7种
2-gram为(the gunman、gunman was、was shot、shot down、down by、 by police)6种
s3的1-gram中和s1的1-gram中同时出现的有3个
==========> 3 + 3
s3的1-gram中和s2的1-gram中同时出现的有3个
s1的1-gram总数4个
==========> 4 + 7
s2的1-gram总数7个
ROUGE-L
下图是ROUGE-L的公式,其中LCS(X,Y)是X和Y的最长公共子序列的长度,m和n分别表示人工标准摘要和机器自动摘要的长度, R l c s R_{lcs} Rlcs和 P l c s P_{lcs} Plcs分别表示召回率和准确率。 F l c s F_{lcs} Flcs就是Rouge-L。最长公共子序列的一个优点是它不需要连续匹配,而且反映了句子级词序的顺序匹配。由于它自动包含最长的顺序通用n-gram,因此不需要预定义n-gram的长度。
ROUGE-L: Longest Common Subsequence LCS(最长公共子序列)
序列X = [ x 1 , x 2 , . . . , x m x_1, x_2,...,x_m x1,x2,...,xm]
序列Z = [ z 1 , z 2 , . . . , z n z_1,z_2,..., z_n z1,z2,...,zn]
如果x中存在一个下标严格递增的子序列[ i 1 , i 2 , . . . , i k i_1, i_2, ..., i_k i1,i2,...,ik],使得所有的x i j = Z j x_{ij} = Z_j xij=Zj;(j=1,2, …, k).则称Z是X的子序列。
LCS:给定序列X、Y,使得公共子序列长度最大的序列为两者的最长公共子序列。
摘要X为参考摘要,长度为m;摘要Y为候选摘要,长度为n。以F值来衡量摘要X,Y的相似度。
在DUC评测大会中, β \beta β→ ∞ \infty ∞,所以只考虑 R l c s R_{lcs} Rlcs
R l c s = L C S ( X , Y ) m R_{lcs} = \frac{LCS(X, Y)}{m} Rlcs=mLCS(X,Y)
P l c s = L C S ( X , Y ) n P_{lcs} = \frac{LCS(X, Y)}{n} Plcs=nLCS(X,Y)
F l c s = ( 1 + β 2 ) R l c s P l c s R l c s + β 2 P l c s F_{lcs} = \frac{(1 + \beta^2)R_{lcs}P_{lcs}}{R_{lcs} + \beta^2P_{lcs}} Flcs=Rlcs+β2Plcs(1+β2)RlcsPlcs
例2:
S1. police killed the gunman.
S2. police ended the gunman.
S3. the gunman murdered police.
S1为参考摘要,S2、S3为候选摘要。取 β \beta β=1
R O U G E − L s 2 ROUGE-L_{s2} ROUGE−Ls2 = 3 4 \frac{3}{4} 43 ===========> c o u n t ( p o l i c e 、 t h e 、 g u n m a n ) c o u n t ( p o l i c e 、 k i l l e d 、 t h e 、 g u n m a n ) \frac{count(police、the、gunman)}{count(police、killed、the、gunman)} count(police、killed、the、gunman)count(police、the、gunman)
R O U G E − L s 3 ROUGE-L_{s3} ROUGE−Ls3 = 2 4 \frac{2}{4} 42 ===========> c o u n t ( t h e 、 g u n m a n ) c o u n t ( p o l i c e 、 k i l l e d 、 t h e 、 g u n m a n ) \frac{count(the、gunman)}{count(police、killed、the、gunman)} count(police、killed、the、gunman)count(the、gunman)
得到 s 2 优于 s 3 s_2优于s_3 s2优于s3
例3:
参考摘要集句子 r i r_i ri
r i = W 1 W 2 W 3 W 4 W 5 r_i = W1W2W3W4W5 ri=W1W2W3W4W5
候选摘要C包含两个句子
C 1 = W 1 W 2 W 6 W 7 W 8 C_1 = W_1W_2W_6W_7W_8 C1=W1W2W6W7W8
C 2 = W 1 W 3 W 8 W 9 W 5 C_2 = W_1W_3W_8W_9W_5 C2=W1W3W8W9W5
r i 与 c 1 的 L C S 为 w 1 w 2 r_i与c_1的LCS为w_1w_2 ri与c1的LCS为w1w2
r i 与 c 2 的 L C S 为 w 1 w 3 w 5 r_i与c_2的LCS为w_1w_3w_5 ri与c2的LCS为w1w3w5
r i 与 C 的 u n i o n L C S 为 w 1 w 2 w 3 w 5 r_i与C的unionLCS为w_1w_2w_3w_5 ri与C的unionLCS为w1w2w3w5
L C S ∪ ( r i , C ) = 4 LCS\cup(r_i, C)=4 LCS∪(ri,C)=4
R O U G E − L = 4 5 ROUGE-L = \frac{4}{5} ROUGE−L=54
ROUGE-W
引入加权系数W=连续匹配的最长公共子串长度
WLCS = W * LCS
为使连续匹配比不连续匹配赋予更大的权重,公式描述如下
f(x+y)>f(x)+f(y)
例如 f ( k ) = k a ⋅ a > 1 f(k)=k^a·a > 1 f(k)=ka⋅a>1
同时为了归一化最终的ROUGE-W值,通常选择函数与反函数具有相似形式的函数。
例如 f ( k ) = K 2 f(k) = K^2 f(k)=K2 f − 1 ( k ) = k 1 / 2 f^{-1}(k)=k^{1/2} f−1(k)=k1/2
-
外部评价方法:不提供参考摘要,利用文档摘要代替原文档执行某个文档相关的应用。例如:文档检索、文档分类等,能够提高应用性能的摘要被认为是质量好的摘要。
Rouge库在Python中的使用:
from rouge import Rouge
# 生成文本
generated_text = "Life is a journey, not a destination."
# 参考文本列表
reference_texts = "Life is a journey, not an endpoint."
# 计算 ROUGE 指标
rouge = Rouge()
scores = rouge.get_scores(generated_text, reference_texts)
# 打印结果
print("ROUGE-1 p:", scores[0]["rouge-1"]["p"])
print("ROUGE-1 r:", scores[0]["rouge-1"]["r"])
print("ROUGE-1 f:", scores[0]["rouge-1"]["f"])