ROUGE-L
ROUGE-L er en evalueringsmetrik til automatisk vurdering af tekster, der måler længden af den længste fælles delsekvens (LCS) mellem en reference- og en kandidattekst.
Kort fortalt
En metrik til at sammenligne to tekster ved at finde den længste sekvens af ord (ikke nødvendigvis sammenhængende), de deler.
- Kategori
- metrik
- Niveau
- øvet
Betydninger
1- 1
En metrik der beregner F1-scoren baseret på længden af den længste fælles delsekvens mellem reference- og kandidattekst, som et mål for indholdsoverlap og ordrækkefølge.
- ROUGE-L-scoren for opsummeringen var 0,45, hvilket indikerer en moderat overlapning af ordrækkefølgen. — Eksempel opdigtet til illustration
Hvornår bruges det
ROUGE-L bruges primært til evaluering af automatisk genererede tekster som f.eks. opsummeringer og maskinoversættelser. Det fanger i højere grad ordrækkefølge og flydendehed end nøjagtige n-gram-overlap, og er derfor velegnet til at vurdere længere sætninger.
Formel
ROUGE-L Recall = |LCS(ref, cand)| / |ref|; ROUGE-L Precision = |LCS(ref, cand)| / |cand|; F1 = 2 * R * P / (R + P)Kodeeksempel
from collections import Counter
def lcs_length(X, Y):
m, n = len(X), len(Y)
dp = [[0]*(n+1) for _ in range(m+1)]
for i in range(1, m+1):
for j in range(1, n+1):
if X[i-1] == Y[j-1]:
dp[i][j] = dp[i-1][j-1] + 1
else:
dp[i][j] = max(dp[i-1][j], dp[i][j-1])
return dp[m][n]
def rouge_l(reference, candidate):
ref_words = reference.split()
cand_words = candidate.split()
lcs_len = lcs_length(ref_words, cand_words)
rec = lcs_len / len(ref_words) if ref_words else 0
prec = lcs_len / len(cand_words) if cand_words else 0
if rec + prec == 0:
return 0.0
return 2 * rec * prec / (rec + prec)Python-funktion til at beregne ROUGE-L F1-score mellem to tekster.
Oprindelse
Udviklet af Chin-Yew Lin i 2004 som en del af ROUGE-pakken til automatisk evaluering af opsummeringer. L står for Longest Common Subsequence (længste fælles delsekvens).
Kilder
1- Lin, C. Y. (2004). ROUGE: A Package for Automatic Evaluation of Summaries. Proceedings of the ACL Workshop on Text Summarization Branches Out.