외국인들은 구글 번역기를 많이 이용하지만, 우리나라에서는 네이버 파파고 번역기를 많이 이용하고 있는 것 같습니다. 저도 구글 번역기와 네이버 파파고를 비교해 보면서 쓰고 있지만, 한국어를 기준으로 구글 번역기보단 네이버 파파고의 번역 퀄리티가 더 높다고 느끼고 있습니다. 네이버에서 제공하는 파파고 번역 서비스는 문맥을 이해하는 번역 기술이 점점 좋아지고 있고, 우리는 파파고를 통해 자연스러운 결과를 얻을 수 있습니다. 오늘은 이러한 좋은 서비스의 API를 사용하는 방법에 대해 소개하고자 합니다.
01. 네이버 파파고란?
파파고(Papago)는 네이버에서 무료로 제공하고 있는 기계 번역(Machine translator) 서비스입니다. 파파고란 이름은 에스페란토에서 앵무새를 뜻하는 단어에서 가져왔다고 합니다. Naver Labs에서 자체 개발한 인공신경망(Artificial Neural Network) 기반 번역 서비스로 한국어, 영어, 일본어, 중국어, 프랑스어, 베트남어, 태국어, 인도네시아어, 러시아어, 독일어, 이탈리아어를 지원하고 있습니다.
파파고는 현재 PC용 웹사이트 버전, 안드로이드 버전, IOS 버전으로 이용할 수 있습니다.
파파고가 제공하는 API는 다음과 같습니다.
- Papago 번역: 파파고의 인공 신경망 기반 기계 번역 기술(NMT, Neural Machine Translation)로 텍스트를 번역한 결과를 변환하는 RESTful API입니다.
- 언어 감지: 입력된 텍스트의 언어를 감지해 주는 RESTful API입니다.
- 한글 인명-로마자 변환: 한글로 된 이름을 로마자 표기로 변환한 결과를 변환하는 RESTful API입니다.
02. 키 발급 방법
위의 박스를 클릭하여 NAVER Developers 사이트에 접속합니다.
사이트에 접속 후, 상단 메뉴 중 1) Application > 2) 애플리케이션 등록 버튼을 클릭합니다.
3) 애플리케이션 이름 설정 - 본인이 구분 가능한 이름을 기재해 주시면 됩니다.
4) 사용 API를 선택합니다. 파파고 번역만 선택하셔도 되고, 저처럼 파파고 번역, 파파고 언어감지, 한글인명-로마자변환을 선택하셔도 됩니다.
5) 비로그인 오픈 API 서비스 환경은 해당사항 없으므로 네이버를 적었습니다.
6) 등록하기 버튼을 클릭합니다.
그럼 Client ID값과 Client Secret값을 확인할 수 있는데, 따로 저장해 둡니다.
03. 파파고 번역 API 연동 코드 제작
파파고 API 연동을 위한 코드를 알아보기 위해서 1) Documents > 2) Papago 번역 버튼을 클릭합니다.
3) 구현예제 버튼 클릭 > 4) 본인이 원하는 언어를 선택합니다. 저는 Python을 선택하겠습니다.
위의 코드를 복사할 수 있게 아래에 남겨놓겠습니다.
import os
import sys
import urllib.request
client_id = "YOUR_CLIENT_ID" # 개발자센터에서 발급받은 Client ID 값
client_secret = "YOUR_CLIENT_SECRET" # 개발자센터에서 발급받은 Client Secret 값
encText = urllib.parse.quote("반갑습니다")
data = "source=ko&target=en&text=" + encText
url = "https://openapi.naver.com/v1/papago/n2mt"
request = urllib.request.Request(url)
request.add_header("X-Naver-Client-Id",client_id)
request.add_header("X-Naver-Client-Secret",client_secret)
response = urllib.request.urlopen(request, data=data.encode("utf-8"))
rescode = response.getcode()
if(rescode==200):
response_body = response.read()
print(response_body.decode('utf-8'))
else:
print("Error Code:" + rescode)
위의 코드에서
1) Client_id 값과, 2) Client_secret 값을 위에서 따로 저장한 값들로 대체하여 삽입합니다.
위의 코드를 실행한 결과 아래와 같이 결과값이 출력되는 것을 확인할 수 있습니다. "반갑습니다"라는 입력값을 result:값에서 "Nice to meet you"로 번역된 것을 확인할 수 있습니다.
{"message":{"result":{"srcLangType":"ko","tarLangType":"en","translatedText":"Nice to meet you.","engineType":"PRETRANS","pivot":null,"dict":null,"tarDict":null},"@type":"response","@service":"naverservice.nmt.proxy","@version":"1.0.0"}}
04. 언어 감지 예제
언어 감지를 진행하고 싶으시다면, 1) 언어 감지 > 2) 구현 예제 > 3) client_id, client_secret, encQuery값을 각각 입력해 줍니다. 저는 언어감지 값을 "Ti amo"라고 입력해 보겠습니다. Ti amo는 이탈리아어로 사랑해라는 뜻인데 이 단어를 이탈리아어로 감지하는지 알아보겠습니다. 코드 값은 아래와 같습니다.
# 네이버 Papago 언어감지 API 예제
import os
import sys
import urllib.request
client_id = "YOUR_CLIENT_ID"
client_secret = "YOUR_CLIENT_SECRET"
encQuery = urllib.parse.quote("Ti amo")
data = "query=" + encQuery
url = "https://openapi.naver.com/v1/papago/detectLangs"
request = urllib.request.Request(url)
request.add_header("X-Naver-Client-Id",client_id)
request.add_header("X-Naver-Client-Secret",client_secret)
response = urllib.request.urlopen(request, data=data.encode("utf-8"))
rescode = response.getcode()
if(rescode==200):
response_body = response.read()
print(response_body.decode('utf-8'))
else:
print("Error Code:" + rescode)
출력된 결과 값은 아래와 같습니다.
{"langCode":"it"}
위의 결과값에서 알듯이 이탈리아를 나타내는 'it'라는 것을 확인할 수 있습니다.
중국어나 일본어 등 영어가 아닌 다른 언어를 한국어로 번역하는 경우, 오역이 되는 경우가 많이 있습니다. 따라서 오역이 되는 경우 영어로 변환 후 다시 한국어로 변환하면 올바른 변역이 되는 경우가 많으니 참고 바랍니다.
해당 글은 지속적으로 수정·보완될 예정입니다.
잘못된 정보가 있다면 댓글로 피드백 부탁드립니다.
'IT 꿀 정보 > 생산성 꿀 정보' 카테고리의 다른 글
깃허브(GitHub) 회원 가입 방법(계정 생성!) (2) | 2023.02.07 |
---|