티스토리 뷰
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
링크
TAG
- list comprehension
- 재귀?
- recursive function
- 백준
- Python
- 연산속도
- 파이썬 변수
- 재귀함수 설명
- sep=
- 변수 덮어쓰기
- parameters
- 콘다
- underscore
- 이중 프린트
- d asd asd
- _의미
- asd ad
- anaconda
- sad asd
- _meaning
- matplotlib
- sdsad
- recursive
- 파이썬
- arguments
- 재귀함수 이해
- 이스케이프 코드
- print()
- 덮어쓰기
- conda
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함