본문 바로가기

NLP 자연어 처리, Natural Language Processing

네이버 개발자센터(NAVER Developers), 번역 API 사용해보기

먼저 네이버 개발자 홈페이지에 네이버 아이디로 로그인을 하게 되면 사용하겠다는 동의서가 나오게 된다. 이부분은 휴대폰 인증을 통해 진행해주시면 됩니다.

 

1. 먼저 API를 사용하기 위해서는 애플케이션 등록을 진행해야 합니다.

 

네이버 개발자 홈페이지에 접속하면 다음과 같은 화면이 뜨는데 여기에서 상단 Application - 애플리케이션 등록을 눌러줍니다.

 

그렇게하면 아래와 같은 내용이 나타납니다.

애플리케이션 이름은 닉네임과 같으며 사용자가 애플리케이션에 이름을 지정하여 관리하기 편하게 사용하기 위한 것 같습니다.

다음으로 사용 API는 항목을 누르게되면 다음과 같은 항목이 나타납니다.

저는 당연히 번역을 위한 API를 사용을 하기 위해 Papago 번역을 클릭해줍니다.

그 다음 자신이 통신할 어플리케이션 Bundle ID를 입력합니다.

 

모든 항목을 기입하면 정확하게 기입됐는지 확인하시고 아래와 같은 화면에서 등록을 눌러주시면 됩니다.

 

등록하시면 아래와 같이 왼쪽 탭 내  애플리케이션에 나타납니다. 

네이버 아이디 1개당 애플리케이션 API 등록 가능한 갯수는 10개입니다.

먼저 이 중 하나를 눌러보면 다음과 같은 탭이 나타나게됩니다.

개요에서 확인할 수 있는 정보는 아래와 같습니다.

이 화면에서는 Client ID, Client Secret을 이용할 것 입니다.

그리고 하나 중요한 것은 사용량입니다. 일일 단위로 지정된 양만 사용가능하니 테스트에 주의하고 실제 번역할 때 주의해서 사용해야 효율적으로 번역할 수 있습니다.

 

2. API를 직접 사용해보겠습니다.

 

가이드에 들어가게 되면 위와 같은 화면이 나타나게 됩니다.  이미 앞서 해놓은 과정입니다.

다음으로는 API 기본 정보입니다. 출력 포맷은 JSON임을 잊지마세요.

다음은 3. 요청변수입니다. 중요한 부분은 서로 어떤 언어들이 함께 번역될 수 있는지가 중요하며 사용자들이 사용할 수 있는 조건입니다. 자세히 확인을 해보시고 알맞은 코드를 작성하시면 되겠습니다.

4. 출력결과는 Json 포멧의 string형태로 저장됩니다.

5. 에러코드는 설명이 되어있기 때문에 넘어갑니다.

 

6번, 7번에도 설명이 나와있는데 구조적으로 나타난 것이고 실제로 사용하는 코드는 1. 준비사항 위에 링크가 있습니다.

사용/이용 가능한 예제 코드는 아래와 같은 언어로 지원됩니다.

저는 이 중에서 Python 을 이용한 코드를 실행해보겠습니다.

 

# 네이버 Papago NMT API 예제
import os
import sys
import urllib.request
client_id = "YOUR_CLIENT_ID"    # ■■ ID 설정 ■■
client_secret = "YOUR_CLIENT_SECRET"   # ■■ PW 설정 ■■
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)

다음 방법이 있습니다.

 

3. 가이드 방식이 실행되지 않을 때

제가 실행했을 당시 가이드 방식으로 진행이 되지 않았기 때문에 다음과 같은 방법을 사용했습니다.

새로운 방법은 처음의 가이드를 이용하는 것입니다.

저는 아래와 같은 방법으로 진행하였습니다.

우선 다음 코드를 복사하여 아래의 웹페이지에 붙여넣기 해줍니다.

아래 웹페이지는 curl형식 코드를 Python 코드처럼 사용할 수 있게 바꿔주는 유용한 사이트입니다.

curl.trillworks.com/#

 

Convert cURL command syntax to Python requests, Ansible URI, browser fetch, MATLAB, Node.js, R, PHP, Strest, Go, Dart, JSON, Eli

Language Ansible Browser (fetch) Dart Elixir Go JSON Node.js (fetch) Node.js (request) MATLAB PHP Python R Rust Strest

curl.trillworks.com

다음과같이 바뀌었습니다. 아래와 같이 이용하는 이유는 여러 API를 한번에 사용하기 위해 login_ID와 login_PW의 쌍을 일일 허용량을 다 이용하였을 때 바꾸어 이전의 번역 작업을 계속하기 위함입니다. 또한 입력 text를 지속적으로 바꾸어주어 번역을 시키기 위함입니다.

import requests

headers = {
    'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
    'X-Naver-Client-Id': login_ID,
    'X-Naver-Client-Secret': login_PW,
}

data = {
  'source': 'ko',
  'target': 'en',
  'text': '만나서 반갑습니다.'
}

response = requests.post('http://=', headers=headers, data=data)

 이렇게 하여 response로 결과를 확인할 수 있습니다.

결과는 다음과 같습니다. 이것은 응답을 제대로 했다는 것입니다. 

 

해당 결과의 확인은 다음과 같이 할 수 있습니다.

 

※ 일일 허용량을 조심하세요.

 

이제 해야할 일은 일일 허용량이 사용가능한 범주 내에서 초과하지 않도록 자동으로 변경되게, 자동으로 번역할 문장을 넣게, 그리고 번역된 문장은 필요한 부분만을 저장하게 만들어주시면됩니다. 

반응형