자연어 처리의 결과를 평가하기 위해서 크게 2가지의 평가 지표가 있다 하나는 ROUGE지표이고 다른 하나는 BLEU지표이다

 

1. 맞춘 단어 개수로 측정

ROUGE는 정답문장에 예측한 단어가 몇 개가 있는지 평가하는 것이고

BLEU는 예측문장에 정답 단어가 몇 개가 있는지 평가하는 것이다

 

예를 들어

정답문장 : "He did his homework before having dinner"

예측문장 : "I did his homework yesterday"

ROUGE = 3/7 ,

BLEU = 3/5 이다

 

하지만 번역에서는 정답이 하나만 있는 것이 아니다 따라서 정답 문장이 여러개 존재할 수 있으며 BLUE를 기준으로 설명하자면 모든 정답 문장중 어느 한곳에라도 포함된 단어라면 정답으로 인정한다

 

2. 중복 제거하기

하지만 이 방식은 문제가 있다 아래의 문장을 보자

정답문장 : "He did his homework before having dinner"

예측문장 : "did did did did"

 

어처구니 없는 번역이지만 모든 단어가 정답문장에 포함되므로 위의 BLEU지표는 4/4 이다 

따라서 우리는 중복을 제거해야할 필요가 있다

 

따라서 중복된 단어가 있을 경우 정답으로 인정해주는 최대 개수는 정답문장에서 해당 단어가 등장하는 횟수로 보정한다

이에 따라 보정된 값은 1/4 이다 

 

3. 순서 고려하기

하지만 여전히 문제가 남아있다 아래의 문장을 보자

정답문장 : "He did his homework before having dinner"

예측문장 : "having did his homework  dinner before he"

 

상당히 틀렸음에도 BLEU지표는 5/5이다 순서가 고려되지 않았기 때문이다

따라서 2개씩, 3개씩 묶어서 평가해보자 2개씩 묶어보면 다음과 같다

정답문장 분해: "He did" "did his" "his homework" "homework before" "befre having" "having dinner"

예측문장 분해: "having did" "did his" "his homework" "homework dinner" "dinner before" "before he"

 

이제 BLEU 지표는 2/6이고 좀 더 나아졌다

 

4. 길이 고려하기

이번 문제는 짧은 문장에 대한 문제이다

정답문장 : "He did his homework before having dinner"

예측문장 : "He did"

 

1개씩 보더라도 2개씩 보더라도 평가지표는 1/1, 2/2 이다 하지만 우리는 이것이 잘못된 번역임을 안다 따라서 짧은 문장에 해단 패널티를 주어야한다 긴 문장에 대한 패널티를 주지 않는 이유는 더 길단 이야기는 정답이 아닌 단어가 더 들어가 있단 것이고(중복이 고려되기에 정답문장보다 많은 정답단어는 존재할수없다) 따라서 굳이 패널티를 따로 주지 않더라도 더 긴 문장은 점수가 낮아진다

 

부여할 패널티는 다음과 같다 

  • 예측문장 길이가 정답문장보다 같거나 길다면 1 * BLEU
  • 예측문장 길이(c)가 정답문장길이(r)보다 짧다면 exp(1-r / c) * BLEU

5. 최종 BLEU

c 는 예측문장의 길이, r은 정답문장의 길이이다

N은 순서를 고려하기 위해 묶을 최대 단어의 개수이다 N=3이라면 1단어묶음, 2단어묶음, 3단어묶음을 전부 계산하여 더한다

wₙ 은 가중치를 의미한다 1단어일 때, 2단어일 때 반영 비율을 조정할 수 있다

pₙ 은 중복을 고려하여 단어를 센 개수이다

 

참고 링크

https://wikidocs.net/31695

 

14-03 BLEU Score(Bilingual Evaluation Understudy Score)

앞서 언어 모델(Language Model)의 성능 측정을 위한 평가 방법으로 펄플렉서티(perplexity, PPL)를 소개한 바 있습니다. 기계 번역기에도 PPL을 평가에 사…

wikidocs.net

https://jrc-park.tistory.com/273

 

BLEU Score의 소개와 계산하는 방법 (Python)

Last Updated on July 23, 2021 Bilingual Evaluation Understudy (BLEU) 딥러닝의 발달로 텍스트를 생성하는 Generative Model은 챗봇, 문서 요약등 다양한 분야에서 사용되고 있습니다. Generated Sentence를 평가하는 방식

jrc-park.tistory.com

 

+ Recent posts