주피터 노트북 실습 예제
파파고 기능 가져오기
네이버 API에 들어간다
product < papago번역 들어갑니다
들어가서 api 등록 한 후
양식대로 작성합니다
그 이후에 내 어플리케이션 papago 칸이 생기는데
거기에서 양식을 긁거나
papago 구현 예제에 언어별로 예시가 있습니다
import os
import sys
import urllib.request
client_id = "YOUR_CLIENT_ID"
client_secret = "YOUR_CLIENT_SECRET"
encQuery = urllib.parse.quote("언어를 감지할 문장을 입력하세요")
data = "query=" + encQuery
url = "https://openapi.naver.com/v1/papago/detectLangs"
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)
대략 나오는데 그냥 복사 붙여넣기 하시고
내 어플리케이션에 들어가시면 키와 붙여넣기 값이 있습니다
주피터노트북으로 정제
import os
import sys
import urllib.parse
import urllib.request
from getpass import getpass
import json
#기본적인 유틸리티들 import
def papago(client_id, client_secret, text):
encText = urllib.parse.quote(text)
data = "source=en&target=ko&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()
parser = json.loads(response_body.decode('utf-8'))
return parser['message']['result']['translatedText']
else:
print("Error Code: " + str(rescode))
return response_body['message']
# 사용 예시
client_id = getpass('아이디 입력 >> ')
client_secret = getpass('비밀번호 입력 >> ')
text_to_translate = "glad to meet you"
translated_text = papago(client_id, client_secret, text_to_translate)
print(translated_text)
# 저는 항상 함수 def로 정의하여 깔끔하게 정리합니다 그냥 네이버에서 긁은대로 해도 됨
그리고 네이버에서 제공해주는 결과 값은 dictionary로 주는데요 이게 형태는 딕셔너리 같다가도, 타입을 확인해보면 전혀 다른 타입이니 Json으로 loads를 해줘야 합니다.
저는 id와 key값을 input으로 넣었습니다
그리고 특수한 기능인 getpass를 사용했는데요,
이건
아이디 입력 >> ········
비밀번호 입력 >> ········
만나서 반가워요.
api key를 보호하기 위해 input 값이 땡땡으로 가려지는걸 알 수가 있습니다
자 그럼 이 번역본을 음성 파일로 볼 수 있게 하는 방법이 있습니다
from gtts import gTTS
from playsound import playsound
#이걸 이용
client_id = getpass('아이디 입력 >> ')
client_secret = getpass('비밀번호 입력 >> ')
text_to_translate = input('번역할 텍스트를 입력하세요>> ')
translated_text = papago(client_id, client_secret, text_to_translate)
print(translated_text)
# 음성 데이터
tts = gTTS(text =translated_text,lang='en',tld='com.au')
tts.save('papago.mp3')
playsound('papago.mp3')
이상