Rouge | 自動要約・機械翻訳評価指標


タグ: 評価指標、概要、NLP

Rouge (Recall-Oriented Understudy for Gisting Evaluation) は、自動要約と機械翻訳を評価するための指標セットです。これは、自動生成された要約または翻訳を一連の参照要約 (通常は人間が作成した) と比較することによって計算され、自動生成された要約または翻訳と参照要約の間の「類似性」を測定するための対応するスコアが得られます。

赤-N

Nグラムの数を指します

中国語で計算する場合、各単語をスペースで区切る必要があります(英語の文章の各単語間のスペースと同じです)。

例えば

from rouge import Rouge  
rouge = Rouge()  
title = '今天是星期四'  
pred_title = '今天是周四'  
pred_title2 = '周四是今天'  
print(rouge.get_scores(' '.join(list(pred_title)), ' '.join(list(title))))  
  
# [{'rouge-1': {'r': 0.6666666666666666, 'p': 0.8, 'f': 0.7272727223140496}, 'rouge-2': {'r': 0.4, 'p': 0.5, 'f': 0.4444444395061729}, 'rouge-l': {'r': 0.6666666666666666, 'p': 0.8, 'f': 0.7272727223140496}}]

print(rouge.get_scores(' '.join(list(pred_title2)), ' '.join(list(title))))
# [{'rouge-1': {'r': 0.6666666666666666, 'p': 0.8, 'f': 0.7272727223140496}, 'rouge-2': {'r': 0.2, 'p': 0.25, 'f': 0.22222221728395072}, 'rouge-l': {'r': 0.3333333333333333, 'p': 0.4, 'f': 0.36363635867768596}}]

ルージュ-1

単一の単語の一致度を指します。

  • r=単一の単語の一致数/len(タイトル)、つまり、見つかった単語の数、r=4 (一致する単語: 今日は 4 つ)/6=0.67 を思い出してください。
  • 正確な p = 単一単語の一致数 / len(pred_title)、つまり、見つかった単語のうち正しいものがいくつあるか、p=4/5=0.8
  • f は r と p の計算です、f=(2PR)/(P+R)=0.737
  • どちらの例もまったく同じです。順序は気にしないでください

ルージュ-2

2 つの単語ごとの一致度を指します。

  • r = 2 つの単語ごとの一致数 / len(タイトル)、つまり、見つかった単語の数、 r= 2(今日、その日)/5(今日、その日、日、週、木曜日) = 0.4 を思い出してください。 ; title2 では、r=1(今日)/5(今日、日は、日、週、木曜日)=0.2
  • 正確な p=2 単語ごとの重複数/len(pred_title)、つまり、見つかった単語のうち正しいものがいくつあるか、p=2/4=0.5; title2 では、p=1 (今日)/4 (第 4 週) 、4 は、今日、今日) = 0.25
  • f は r と p の計算です、f=(2PR)/(P+R)

赤-L

Rouge-Lは最長共通部分列を使用するため、LCS(最長共通部分列、最長共通部分列)の頭文字。ただし、順序を考慮すると、これが最も長い共通部分列であることに注意してください(この順序の問題のため、多くのブロガーは長い間混乱しているとは言っていません)。

  • r=3(今日は 4)/len(タイトル)=4/6 を思い出してください。タイトル 2 では、r=2(今日)/6=1/3
  • 正確な p=3(今日は 4)/len(pred_title)=4/5; title2 では、r=2(今日)/5=0.4
  • f は r と p の計算です

利点: 単語の継続的なマッチングは必要なく、単語の出現順序だけが必要であり、n-gram のように文レベルの語順を反映できます。N グラムの長さを事前定義せずに、最長の共通部分シーケンスを自動的に照合します。
短所: 最長サブシーケンスが 1 つだけ計算され、最終値は他の代替最長サブシーケンスと短いサブシーケンスの影響を無視します。

この例を読むと、タイトルの例のように予測順序が同じであれば rouge1=rouge-L; となることがよくわかりますが、title2 となると順序を考慮して最長共通部分列が求まります。これも「today is four」ではなく「today」です。2 つの例では、rouge-1 は変更されていませんが、rouge2 と rouge-L は両方とも変更されています。

おすすめ

転載: blog.csdn.net/qq_23590921/article/details/129181387