>  기사  >  백엔드 개발  >  Python을 사용하여 신경 기계 번역을 위한 BLEU 점수 계산

Python을 사용하여 신경 기계 번역을 위한 BLEU 점수 계산

WBOY
WBOY앞으로
2023-09-02 11:09:111658검색

Python을 사용하여 신경 기계 번역을 위한 BLEU 점수 계산

NMT 또는 NLP의 신경 기계 번역을 사용하면 특정 언어의 텍스트를 대상 언어로 번역할 수 있습니다. 번역이 얼마나 잘 수행되었는지 평가하기 위해 Python에서 BLEU 또는 이중 언어 평가 학생 점수를 사용했습니다.

BLEU 점수는 n-gram을 사용하여 기계 번역된 문장과 사람이 번역한 문장을 비교하는 방식으로 작동합니다. 또한 문장 길이가 길어질수록 BLEU 점수는 감소합니다. 일반적으로 BLEU 점수의 범위는 0~1이며, 값이 높을수록 품질이 우수함을 나타냅니다. 하지만 만점을 받는 경우는 매우 드뭅니다. 평가는 부분 문자열 일치를 기반으로 수행되며 일관성, 시제 및 문법과 같은 언어의 다른 측면을 고려하지 않습니다.

공식

으아악

여기서 각 용어의 의미는 다음과 같습니다 -

  • BP는 간결성 페널티입니다. 두 텍스트의 길이에 따라 BLEU 점수를 조정합니다. 공식은 -

으아악
  • n은 n-gram 매칭의 최대 순서입니다

  • p_i는 정밀도 점수입니다

알고리즘

  • 1단계 - 데이터세트 라이브러리를 가져옵니다.

  • 2단계 - bleu를 매개변수로 사용하여 load_metric 함수를 사용합니다.

  • 3단계 - 번역된 문자열의 단어를 기반으로 목록을 만듭니다.

  • 4단계 - 원하는 출력 문자열의 단어로 3단계를 반복합니다.

  • 5단계 - bleu.compute를 사용하여 블루 값을 찾습니다.

예 1

이 예에서는 Python의 NLTK 라이브러리를 사용하여 독일어 문장을 영어로 기계 번역하기 위한 BLEU 점수를 계산합니다.

  • 원문(영문) - 오늘 비가 온다

  • 기계 번역 텍스트 – 오늘 비가 옵니다

  • 필수문자 - 오늘도 비온다 오늘도 비온다

번역이 제대로 이루어지지 않은 것을 알 수 있지만 파란색 점수를 보면 번역 품질을 더 잘 알 수 있습니다.

으아악

출력

으아악

번역이 별로 좋지 않은 것을 볼 수 있으므로 파란색 점수는 0입니다.

예 2

이 예에서는 BLEU 점수를 다시 계산해 보겠습니다. 하지만 이번에는 프랑스어 문장을 영어로 기계 번역해 보겠습니다.

  • 원문(독일어) - 우리는 여행을 갑니다

  • 기계 번역 텍스트 - 우리는 여행을 갑니다

  • 필수문자 - 우리 여행갈거야, 여행갈거야

이번에는 번역된 텍스트가 원하는 텍스트에 더 가까워진 것을 확인할 수 있습니다. BLEU 점수를 확인해 보겠습니다.

으아악

출력

으아악

이번에 완료된 번역이 원하는 출력에 매우 근접한 것을 확인할 수 있어 파란색 점수도 0.5보다 높습니다.

결론

BLEU 점수는 번역 모델의 효율성을 확인하여 이를 더욱 개선하여 더 나은 결과를 얻을 수 있는 훌륭한 도구입니다. BLEU 점수를 사용하면 모델에 대한 대략적인 아이디어를 얻을 수 있지만 특정 어휘에 국한되고 언어의 뉘앙스를 무시하는 경우가 많습니다. 이것이 바로 BLEU 점수가 인간의 판단과 거의 일치하지 않는 이유입니다. 하지만 ROUGE 점수, METEOR 측정항목, CIDEr 측정항목과 같은 몇 가지 대안을 시도해 볼 수도 있습니다.

위 내용은 Python을 사용하여 신경 기계 번역을 위한 BLEU 점수 계산의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제