Papago NMT API를 활용한 나만의 번역서비스 구현하기

Chang Hwan Jang
NAVER CLOUD PLATFORM
9 min readApr 19, 2021

​번역기의 대명사 Papago! 본 포스팅에서는, 네이버 클라우드 플랫폼Papago NMT(Neural Machine Translation, 이하 NMT) 서비스 API를 연동
‘나만의 번역 서비스’​​를 간단하게 구현하는 방법을 소개합니다.

네이버 클라우드 플랫폼 Papago NMT 서비스 알아보기

네이버 클라우드 플랫폼은 네이버 인프라에 축적된 다양하고 풍부한 데이터를 바탕으로, 보다 정확하고 높은 품질의 AI 서비스를 제공합니다.네이버 클라우드 플랫폼의 고성능 컴퓨팅 파워고사양의 IT 서비스 인프라 자원을 활용하여 효율적으로 서비스하고 있습니다.

<그림1> 네이버 클라우드 플랫폼의 AI 서비스 Overview

Papago NMT 서비스는 네이버가 자체개발한 인공 신경망 기반 기계 번역 기술 ‘NMT(Neural Machine Translation)’를 이용한 번역 서비스로, 전세계에서 가장 뛰어난 한국어 번역 품질을 제공합니다. 입력된 문장을 쪼개어 번역하는 것이 아니라 문구를 통째로 번역하기 때문에, 맥락이 고려된 자연스러운 번역 결과를 얻을 수 있습니다.

<그림2> 네이버 클라우드 플랫폼 Papago NMT Overview

​NMT는 인공 신경망이라고 하는 커다란 가상 공간을 통해 문장을 이해하고 번역합니다. 번역을 하기 위해 입력한 문장은 인공 신경망 가상 공간의 특정 지점을 의미하는 벡터(좌표 값)로 바뀌어 저장됩니다. 유사한 뜻을 가진 문장은 서로 가까운 벡터로서 모여 있게 되는데, NMT는 입력된 문장 주변에 있는 정보들을 참고하여 문장의 맥락을 이해하고, 보다 자연스러운 번역 결과를 가져오게 됩니다.​

또, Papago NMT는 네이버 서비스를 통해 쌓인 대규모의 데이터를 매일 자동으로 학습합니다. 이렇게 생성된 번역 모델을 통해, 기존의 번역 방식보다 한층 더 정확한 결과물을 제공합니다.

NMT 서비스의 주요 제공 기능은 아래와 같습니다.

(1) 번역 API (Papago NMT API)

REST API를 통해, 번역할 내용, 번역할 언어 코드, 번역될 언어 코드를 전달하면 Papago 엔진에서 번역된 결과를 리턴해주는 API 서비스입니다. 현재는, 아래 그림의 16개 언어쌍에 대한 번역이 가능합니다.

(한국어/ 영어/ 중국어(간체/번체)/ 일본어/ 프랑스어/ 스페인어/ 베트남어/ 태국어/ 인도네시아어/ 독일어/ 러시아어/ 이탈리아어 등)

<그림3> NMT 서비스에서 제공하는 언어셋

(2) 언어 감지 API (Papago Language Detection API)

입력된 텍스트의 언어를 자동으로 감지해주는 API입니다. 대규모의 언어 코퍼스를 기반으로 AI 알고리즘에 따라 개발된 언어 감지 모델로, 총 12개의 대표적인 언어에 대하여 빠르고 정확한 언어 감지 기능을 지원합니다.

* 감지 가능 언어 : 한국어/ 영어/ 중국어/ 일본어/ 프랑스어/ 스페인어/ 베트남어/ 태국어/ 인도네시아어/ 독일어/ 러시아어/ 이탈리아어 등

(3) 높임말 번역 기능 (Korean honorific translation)

번역 API (Papago NMT API)의 추가적인 옵션으로 제공되는 기능입니다.

한국어의 고유 높임말 체계를 고려해 문장 번역시 높임말을 적용할 수 있는 기능입니다. 활용 상황을 고려해 선택 옵션으로 제공합니다.

번역시 고객이 선택한 높임말 번역 옵션에 따라, “나/저” “너/당신” “~했다/했습니다” 같은 한국어의 반말과 높임말을 구별해서 반영할 수 있습니다.

* (현재는 영-한 번역에 우선 서비스 되고 있으며, 향후 확대 적용될 예정입니다.)

<그림4> NMT 서비스 높임말 번역기능

네이버 클라우드 플랫폼 NMT API 알아보기

(1) Papago NMT API 명세

Papago NMT API는 네이버 Papago에 적용된 번역 REST API 로, 입력된 텍스트를 다른 나라 언어(영어, 중국어)로 번역한 텍스트로 출력합니다. 비로그인 오픈 API이므로 POST로 호출할 때 HTTP Header에 애플리케이션 등록 시 발급받은 Client ID와 Client Secret 값을 같이 전송하여 사용합니다.

<그림5> NAVER Cloud Platform Papago NMT API Overview
<그림6> NAVER Cloud Platform Papago NMT API

(2) Papago NMT API Request

아래와 같이 form/json 형태로 요청이 가능합니다.

<그림7> Papago NMT API Request

(3) Papago NMT API Request Header

네이버 클라우드 플랫폼에서 등록한 Application 정보 중 아래의 인증정보를 활용하여 호출할 수 있습니다.

<그림8> Papago NMT API Request Header

(4) Papago NMT API Language Code

<그림9> Papago NMT API Language Code

(5) 번역 가능한 원본언어와 목적언어

<그림10> Papago NMT API 원본 언어와 목적 언어

(6) Papago NMT API Response Body

번역된 원본 언어, 번역 결과 언어 코드, 번역된 문장을 응답으로 받을 수 있습니다.

<그림11> Papago NMT API Response Body

네이버 클라우드 플랫폼 Application 등록하기

네이버 클라우드 플랫폼의 AI/Application 서비스를 사용하기 위해서는 아래와 같이 Application 등록을 해야합니다.

해당 인증 정보를 활용해, 서비스 구현 시 Client ID/Secret Key 정보를 사용할 수 있습니다.

<그림12> NAVER Cloud Platform Application Server 등록

아래와 같이 등록된 서비스의 인증 정보와 서비스 한도를 확인할 수 있습니다.

<그림13> NAVER Cloud Platform NMT Application 등록 정보
<그림14> NAVER Cloud Platform NMT Application 한도 및 설정

나만의 번역 서비스 구현하기

NMT API를 활용하여 나만의 번역 서비스를 구현하는 방법에 대해 알아보겠습니다.​

(1) NMT Server 구현

NMT Service 번역 서비스를 구현하고, NAVER Search API를 활용하여 검색 결과를 추출합니다.

​✔ NMT Client ID & NMT Secret Key 입력

Search Client ID & Search Secret Key 입력

결과값 HTML String 작성

<그림15> NMT Server 구현

✔ NAVER Search API 호출 후 검색 결과 추출

검색 결과에 대한 Text String 작성

NMT API 실행 및 결과값 확인

<그림16> NMT Server 구현

Papago NMT 결과값 저장

번역된 결과값을 텍스트 파일로 저장

Express Server 실행

<그림17> NMT Server 구현

(2) NAVER Developer API & AI Service 정보 확인

NAVER Search API는 NAVER Developer API를 활용하고, NMT Service API는 네이버 클라우드 플랫폼의 AI/Application 서비스를 활용합니다.

<그림18> Search API & NMT Service 활용 방법

(3) 나만의 번역서비스 실행결과

“미세먼지”라는 검색어를 입력하여 한글 검색 결과를 추출 후 해당 내용을 NMT API를 통해 자동 번역된 결과를 출력해 줍니다.

<그림19> 나만의 번역 서비스 실행결과

​<소스코드 링크🔗>

https://github.com/NaverCloudPlatformDeveloper/Simple-AI-Service-DEVEW2020/tree/main/Simple-NMT

nmt_service.js

nmt_service.js
nmt_service.js

글을 마무리하며…

지금까지 네이버 클라우드 플랫폼의 Papago NMT API‘나만의 번역 서비스’ 구현하기! 시간이었습니다. 👏

Papago NMT을 활용해 다양한 언어의 정확한 통/번역 서비스를 구현한다면서비스 품질 향상에 크게 도움이 될 것​​입니다.

앞으로도 다양한 네이버 클라우드 플랫폼의 AI Server API를 활용하는 방법을 공유해드리겠습니다!​

많은 관심 부탁 드리며, 끝까지 읽어 주셔서 감사합니다.

--

--