- Today
- Total
Recent Posts
Recent Comments
Archives
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- c언어
- 파이썬3
- 기말시험
- 파이썬 입문
- selenium
- 파이썬 알고리즘
- 자료구조
- 알고리즘 강의
- gdrive
- Crawling
- python 중간고사
- 파이썬
- 알고리즘
- 채용문제
- python data structure
- 대학시험
- 셀레니움
- 면접 파이썬
- 알고리즘 강좌
- 프로그래밍
- 파이썬 자료구조
- 코딩시험
- 파이썬 강의
- 중간시험
- 쉬운 파이썬
- 자료구조 강의
- 크롤링
- 파이썬 강좌
- 코딩문제
- 파이썬활용
Notice
반원 블로그
[파이썬 레시피 - 웹 활용 입문편] 04. REST API - D. 네이버 파파고 API 본문
2018~/파이선 레시피 웹 활용 입문편
[파이썬 레시피 - 웹 활용 입문편] 04. REST API - D. 네이버 파파고 API
반원_SemiCircle 2019. 6. 22. 15:33PaPaGo API
파파고는 2가지 번역서비스가 존재합니다.
- NMT(Neural Machine Translation) : 인공신경망 기반 기계 번역
- SMT(Statistical Machine Translation) : 통계 기반 기계 번역
각각의 장단점은 직접 확인하시길 바랍니다.
- NMT : https://developers.naver.com/products/nmt/
- SMT : https://developers.naver.com/products/translator/
여기서는 NMT만 다루도록 하겠습니다.
기본 예제
해당 가이드는 여기서 확인할 수 있습니다.
https://developers.naver.com/docs/papago/papago-nmt-example-code.md#python
import os
import sys
import urllib.request
client_id = "발급받은ID" # 개발자센터에서 발급받은 Client ID 값
client_secret = "발급받은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)
레퍼런스 확인
"얼마나 많은 길이를 번역할 수 있을까?" "다른 언어로 번역하려면?" 등을 확인하려면 레퍼런스(reference)를 확인해야합니다. 아래에서 확인할 수 있습니다.
메모장 내용 번역
메모내용 가져오고 번역 요청까지
한글내용이 써진 메모 파일(txt)을 번역하여 새로운 메모 파일을 만들어봅시다. 여기서 원본은 source.txt, 번역 파일은 translate.txt로 만들겠습니다. 미리 source.txt를 생성하고 내용을 적어주세요.
일단 잘 가져와져서 번역까지 되는지 확인합니다.
import os
import sys
import urllib.request
client_id = "발급받은ID"
client_secret = "발급받은SECRET"
#번역할 메모장 불러오기
with open('source.txt','r',encoding='utf8') as f:
srcText = f.read()
encText = urllib.parse.quote(srcText)
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)
메모장에 내용과 응답데이터는 다음과 같습니다.
#메모장 내용 source.txt
안녕하세요.
저는 반원입니다.
안녕히계세요.
#응답 결과 출력
{"message":{"@type":"response","@service":"naverservice.nmt.proxy","@version":"1.0.0","result":{"srcLangType":"ko","tarLangType":"en","translatedText":"Hello.\nI'm half-won.\nGoodbye."}}}
"translatedText" 이후에 번역된 내용이 있습니다.
응답데이터로 메모파일 생성까지
응답데이터가 JSON형식이므로 변환 후 "translatedText"의 값을 추출합시다. 이후 이 내용을 가진 메모파일을 생성합시다.
import os
import sys
import urllib.request
import json
client_id = "발급받은ID"
client_secret = "발급받은SECRET"
#번역할 메모장 불러오기
with open('source.txt','r',encoding='utf8') as f:
srcText = f.read()
encText = urllib.parse.quote(srcText)
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'))
#json 형 변환
res = json.loads(response_body.decode('utf-8'))
from pprint import pprint
pprint(res)
#파일 생성
with open('translate.txt', 'w',encoding='utf8') as f:
f.write(res['message']['result']['translatedText'])
else:
print("Error Code:" + rescode)
원본 메모파일(source.txt)와 번역하여 생성한 메모파일(translate.txt)의 결과입니다.
#원본 내용 source.txt
안녕하세요.
저는 반원입니다.
안녕히계세요.
#번역 내용 translate.txt
Hello.
I'm half-won.
Goodbye.
처리한도
현재 처리한도는 하루 당 10000글자이니 참고하시길 바랍니다.
https://developers.naver.com/products/nmt/
'2018~ > 파이선 레시피 웹 활용 입문편' 카테고리의 다른 글
[파이썬 레시피 - 웹 활용 입문편] 06. 파이어베이스 - A. firebase-admin 설치 (0) | 2019.07.06 |
---|---|
[파이썬 레시피 - 웹 활용 입문편] 05. 구글 드라이브 - C. 구글 드라이브 업로드 (0) | 2019.06.29 |
[파이썬 레시피 - 웹 활용 입문편] 05. 구글 드라이브 - B. gdrive 인증 및 초기화 (0) | 2019.06.29 |
[파이썬 레시피 - 웹 활용 입문편] 05. 구글 드라이브 - A. gdrive 설치 (0) | 2019.06.29 |
[파이썬 레시피 - 웹 활용 입문편] 04. REST API - C. 네이버 얼굴 이미지 인식 API(CFR API) (0) | 2019.06.22 |
[파이썬 레시피 - 웹 활용 입문편] 04. REST API - B. 네이버 개발자 등록 (0) | 2019.06.22 |
[파이썬 레시피 - 웹 활용 입문편] 04. REST API - A. requests 설치 (0) | 2019.06.22 |
[파이썬 레시피 - 웹 활용 입문편] 03. 메일 - C. 네이버 메일 보내기 (0) | 2019.06.15 |
Comments