데이터과학 삼학년

ROUGE : text summarization metric 본문

Natural Language Processing

ROUGE : text summarization metric

Dan-k 2022. 5. 9. 19:42
반응형

Rouge Score

- Recall-Oriented Understudy for Gisting Evaluation

- n-gram기법을 이용해 label(사람이 만든 요약문)과 summary(모델이 생성한 inference)을 비교해서 얼마나 겹치는지 확인하여 수치로 나타냄, 즉, 요약모델의 성능 평가 척도의 개념

- 종류 : ROUGE-N, ROUGE-L, ROUGE-W, ROUGE-S 등

 

Rouge Recall Precision (ROUGE-N)

Recall

- label을 구성하는 단어 중 몇개가 inference(예측결과)와 겹치는가?

-> 우선적으로 필요한 정보들이 다 담겨있는지 체크

>> ROUGE-N : N-gram을 기준으로 겹치는 set을 확인

 

Precision

- inference(예측결과)를 구성하는 단어 중 몇개가 label과 겹치는가?

-> 요약된 문장에 필요한 정보만을 얼마나 담고있는지를 체크

 

f1-score

- Rouge의 recall과 precision을 이용한 조화평균

반응형

ROUGE-L

- LCS(longest common sequence) between model output

- common sequence 중에서 가장 긴 것을 기준으로 산정

- Recall : LCS 길이 / label의 N-gram의수

- Precision : LCS 길이 / output의 N-gram의수

ROUGE-S

- Skip-gram을 활용한 Rouge산정법

두 개의 토큰을 한 쌍으로 묶어서() ROUGE Score를 계산

예를 들어, 'the brown fox' 는 (the,brown), (brown,fox), (the,fox)로 매핑되어 계산됨.

 

 

Rouge score 단점

- 같은 의미를 가진 다른 언어에 대해 반영할 수 없음

 

코드

- get.scores를 사용하면 Rouge-1, Rouge-2, Rouge-l score 확인

from rouge import Rouge

model_out = "he began by starting a five person war cabinet and included chamberlain as lord president of the council"
reference = "he began his premiership by forming a five-man war cabinet which included chamberlain as lord president of the council"

rouge = Rouge()
rouge.get_scores(model_out, reference)

#--------

model_out = ["he began by starting a five person war cabinet and included chamberlain as lord president of the council",
             "the siege lasted from 250 to 241 bc, the romans laid siege to lilybaeum",
             "the original ocean water was found in aquaculture"]

reference = ["he began his premiership by forming a five-man war cabinet which included chamberlain as lord president of the council",
             "the siege of lilybaeum lasted from 250 to 241 bc, as the roman army laid siege to the carthaginian-held sicilian city of lilybaeum",
             "the original mission was for research into the uses of deep ocean water in ocean thermal energy conversion (otec) renewable energy production and in aquaculture"]
rouge = Rouge()
rouge.get_scores(model_out, reference, avg=True)
###
{   'rouge-1': {   'f': 0.6279006234427593,
                   'p': 0.8604497354497355,
                   'r': 0.5273531655225019},
    'rouge-2': {   'f': 0.3883256484545606,
                   'p': 0.5244559362206421,
                   'r': 0.32954545454545453},
    'rouge-l': {   'f': 0.6282785202429159,
                   'p': 0.8122895622895623,
                   'r': 0.5369305616983636}}

 

참조

 

[NLP]Rouge score - Summarization의 평가 Metric

Recall-Oriented Understudy for Gisting Evaluationlabel(사람이 만든 요약문)과 summary(모델이 생성한 inference)을 비교해서 성능 계산ROUGE-N, ROUGE-L, ROUGE-W, ROUGE-S 등 다양한 지표가

velog.io

 

The Ultimate Performance Metric in NLP

Never worry about accuracy in your language models again

towardsdatascience.com

RDASS

 

텍스트 요약 모델 성능 평가를 위한 새로운 척도, RDASS를 소개합니다.

더 나은 성능의 요약 모델을 만들려면 모델로부터 자동으로 생성된 요약문을 어느 정도로 신뢰할 수 있는지 판별하기 위한 적절한 평가 방법이 있어야 합니다. 문제는 가장 보편적으로 쓰이는

kakaoenterprise.github.io

- 문서(d), 정답 요약문장(r), 모델이 생성한 문장(p) 각각의 벡터에 대해 유사도를 구해서 평균을 내는 과정

- 한글의 특성인 어근에 붙은 접사가( 은,는)가 단어의 역할을 결정하기에, 단어의 변형이 빈번하게 일어나므로 ROUGE 평가지표가 적절하지 않다는 판단에서 개발

 

728x90
반응형
LIST
Comments