본문 바로가기

PYTHON SKILL UP

[python] 파파고 API 이용해서 번역기 만들기

네이버 번역기 파파고의 API를 이용해서 번역기를 만들어보자.

네이버 API는 네이버 개발자센터 에 가입해야 이용할 수 있다.

https://developers.naver.com

위의 링크로 들어가 가입 후에 우리가 사용할 파파고 NMT 번역 API와 함께 애플리케이션을 등록한다.

발급받은 자신의 '클라이언트 아이디' '클라이언트 시크릿' 값을 사용한다.

 

파파고 API의 구현 예제를 갖고오자.

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)

네이버의 파파고 NMT 번역 API 구현 예제 코드이다.

이 코드로 간단한 번역기를 만들어보자.

 

 

전체 코드는 다음과 같다.

import os
import sys
import requests
from pprint import pprint

client_id = "YOUR_CLIENT_ID"
client_secret = "YOUR_CLIENT_SECRET"

def get_translate(text, lan):
    data = {'text' : text,
            'source' : 'ko',
            'target': lan}

    url = "https://openapi.naver.com/v1/papago/n2mt"

    header = {"X-Naver-Client-Id":client_id,
              "X-Naver-Client-Secret":client_secret}

    response = requests.post(url, headers=header, data= data)
    rescode = response.status_code

    if(rescode==200):
        t_data = response.json()
        pprint(t_data['message']['result']['translatedText'])
    else:
        print("Error Code:" , rescode)

if __name__ == '__main__':
    while True:
        text = input("한국말 : ")
        lan = input("번역할 언어 (영어 : en, 일어 : ja) :")
        print(get_translate(text, lan))

먼저 ossysimport 한다.

웹 요청 모듈인 requests와 편안한 코드 진행을 위한 pprintimport 해 주자.

그런 다음 앞서 발급받은 자신의 '클라이언트 아이디' '클라이언트 시크릿'으로 변수를 만든다.

 

그럼 이제 함수 부분의 코드를 보자.

위 코드는 한국어를 영어와 일어로 번역하는 코드이다.

함수 get_translate와 함께 입력받을 text와 번역할 언어(lan) 값을 받아온다.

구현 예제와 같이 요청 파라미터와 파파고 API 주소를 각각 data, url 변수 값으로 한다.

헤더는 구현 예제보다 간단하게 변수 하나로 묶어주자.

이렇게 웹 요청을 하고나서 받을 응답 데이터를 response에 저장한다.

그리고 rescodeif문으로 에러가 나지 않았는지 검사한다.

 

함수를 실행할 메인 파트에서는 먼저 함수에 사용될 textlan 값을 먼저 변수에 저장한다.

그 후에 간단하게 함수를 실행시키고 print 한다.

 

번역기 실행 결과

 

이렇게 네이버 파파고 API를 이용한 간단한 번역기가 완성되었다.