티스토리 뷰

NAVER_API  "파파고(Papago)"
  • open API를 사용하는 방법에 익숙해 질 수 있다.
  • 네이버의 open API 파파고(Papago)를 활용하여 파이썬에서 번역기를 구동시켜보자.

 

네이버 API 사용방법
  • 네이버 로그인
  • 네이버 개발자센터를 검색 후 들어간다. (네이버 개발자센터 텍스트 누르면 자동으로 이동)

 

  • 네이버 개발자 센터 상단에있는 Product에서 파파고 클릭

 

  • 개발 가이드 보기를 눌러 어떻게 사용하는지 확인후 . (천천히 정독해보면 좋을거같아요.)

 

open API 이용 신청하기
  • 상단메뉴에서 Application -> 애플리케이션 등록클릭

 

  • 애플리케이션 등록(API 이용신청)에서 애플리케이션 이름('사용자가 원하는 이름'), 사용API('Papago 번역')을 입력 해준다.

 

  • 비로그인 오픈API 서비스 환경에 WEB설정을 눌러준다.

  • 웹 서비스 URL은 Python에서 구동시키니 따로 입력없이 예시('http://naver.com')을 입력해준다.

 

  • 위 내용을 전부 입력했다면 등록하기를 눌러 API 제휴 신청을 한다.

 

 

Python에서 API 사용하기
  • 위에서 들어갔던  개발 가이드 보기를 눌러 좌측 상단에 Papago번역을 눌러 구현예제에 들어가줍니다.

 

  • 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)

 

  • 구현 예제에 주석처리된 곳을 보면 입력하는 내용이 있다.
  • 상단메뉴에서 Application -> 내 애플리케이션에서 생성한 애플리케이션 이름 클릭

 

  • Client ID와 Client Secret를 각각 복사해서 위 YOUR_CLIENT_ID, YOUR_CLIENT_SECRET에 넣어준다.

 

 

  • 입력을 완료했다면 코드를 실행시켜보자.
  • 아래와 같이 코드가 실행되면 성공이다.
{"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"}}

 

 

  • 출력된 내용을 확인해보면 아래와 같다.

"srcLangType":"ko"    입력받은 언어

"tarLangType":"en"    번역할 언어

"translatedText":"Nice to meet you."    번역 결과

 

  • 위 형태를  json으로 파싱하여 딕셔너리 형태로 변환해서 번역결과만 출력하기
  • json으로 파싱한 결과 아래와 같이 3중 딕셔너리 형태인것을 볼수있다.
import json
json_type = response_body.decode('utf-8')

-출력

{'message': {'result': {'srcLangType': 'ko',
   'tarLangType': 'en',
   'translatedText': 'Nice to meet you.',
   'engineType': 'PRETRANS',
   'pivot': None,
   'dict': None,
   'tarDict': None},
  '@type': 'response',
  '@service': 'naverservice.nmt.proxy',
  '@version': '1.0.0'}}

 

  • 딕셔너리에서 message -> result -> translatedText 순으로 접근해서 번역 결과만 출력하도록 한다.
dict_type = json.loads(a)
print(dict_type['message']['result']['translatedText'])

-출력

'Nice to meet you.'

 

 

다른 내용 번역하기
  • 위 예제 코드에서 ('# 번역할 내용')을 변경, 혹은 변수로 바인딩 하여 원하는 값을 출력해볼 수 있다.
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함