- 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
- 셀레니움
- python data structure
- 자료구조 강의
- 파이썬
- 크롤링
- 알고리즘 강좌
- 파이썬 자료구조
- c언어
- 알고리즘
- 파이썬 강좌
- 자료구조
- 기말시험
- 대학시험
- 중간시험
- 쉬운 파이썬
- 파이썬 알고리즘
- python 중간고사
- gdrive
- 코딩문제
- 프로그래밍
- 코딩시험
- 파이썬활용
- 파이썬 강의
- Crawling
- 채용문제
- 파이썬3
- selenium
- 파이썬 입문
- 알고리즘 강의
- 면접 파이썬
Notice
반원 블로그
9. Naver Developer api(3) - Papago NMT API, 인공신경망 번역 본문
2018~/Python Skill Up
9. Naver Developer api(3) - Papago NMT API, 인공신경망 번역
반원_SemiCircle 2019. 9. 6. 10:27개요
- 네이버에서 제공하는 인공신경망 번역인 Papago NMT 서비스를 이용해본다.
- NMT(Neural Machine Translation) : 인공신경망 기반 기계 번역, 링크
- SMT(Statistical Machine Translation) : 통계 기반 기계 번역. 링크
같이 읽으면 좋은 글
제공되는 기본 예제
- 가이드 링크 참고
- urllib으로 작성되어있다. 이후 requests로 고칠 예정
- urllib을 사용했기때문에 요청 매개변수(여기선 data변수)가 문자열로 작성되고 있다. 나중에 data 변수에 dict형으로 고칠 예정
- add_header로 헤더를 삽입하고 있다. requests 모듈은 헤더를 딕셔너리로 만들기때문에 이 부분도 고칠 예정.
- 예제 맨 아래줄인 print("Error Code:" + rescode) 는 틀린 코드다. rescode는 int형이라 해당 줄은 에러가 발생한다.
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)
위 코드에서 나온 urllib 모듈 설명
urllib.parse: URL 해석·조작 기능을 담은 모듈
urllib.request: HTTP 요청 기능을 담은 모듈
urllib.request.urlopen() 함수 : 웹 서버에 정보를 요청 후, 돌려받은 응답을 저장. 응답 객체(HTTPResponse) 반환.
urllib.parse.quote() 함수 : 기본적으로 url에 한글을 적을 수 없으므로 퍼센트 인코딩 방식을 거치게된다. requests 모듈은 이를 알아서 해준다.
requests 모듈로 코드 변경
- api 레퍼런스를 보면 post방식 요청이다.
import os
import sys
#import urllib.request
import requests
client_id = "YOUR_CLIENT_ID" # 개발자센터에서 발급받은 Client ID 값
client_secret = "YOUR_CLIENT_SECRET" # 개발자센터에서 발급받은 Client Secret 값
# encText = urllib.parse.quote("반갑습니다")
encText = '반갑습니다'
# data = "source=ko&target=en&text=" + encText
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)
headers = {'X-Naver-Client-Id':client_id,'X-Naver-Client-Secret':client_secret}
# response = urllib.request.urlopen(request, data=data.encode("utf-8"))
response = requests.post(url, data=data, headers=headers )
# rescode = response.getcode()
rescode = response.status_code
print(response.url)
if(rescode==200):
# response_body = response.read()
# print(response_body.decode('utf-8'))
print(response.text)
else:
# print("Error Code:" + rescode)
print("Error Code:", rescode)
'2018~ > Python Skill Up' 카테고리의 다른 글
파이썬 텔레그램 쓰기 - 2 예약 명령어 구조 만들기(파일 관리) (0) | 2019.09.22 |
---|---|
파이썬 텔레그램 쓰기 - 1. Bot 계정 생성 및 echo 예제 (0) | 2019.09.22 |
9. Naver Developer api(2) - Clova Face Recognition, 얼굴 인식 API (0) | 2019.09.06 |
9. Naver Developer api (1) - 개발자 계정 등록 (0) | 2019.09.06 |
8. pillow : 이미지 패키지(2) - ImageGrab 모듈과 Image 클래스 (0) | 2019.09.06 |
8. pillow : 이미지 패키지(1) - info, crop, thumbnail, resize (0) | 2019.09.06 |
7. pyisntaller - 파이썬 파일을 실행파일로 변환(py to exe) (0) | 2019.09.06 |
6. requests 모듈 - REST API 사용법, curl을 python requests로 변환방법 (0) | 2019.09.06 |
Comments