반응형
이번에는 파파고 API를 이용해서 간단한 번역기를 만들어보려고 한다.
그렇기 위해서는 먼저 아래 사이트에서 파파고 API를 사용할 수 있는 권한을 얻어야한다.
https://developers.naver.com/main/
가입후 Open API들 중에서 파파고 API 사용 신청을 하면 해당 API를 사용할 수 있는 요청 URL을 얻을 수 있다.
사용 과정에서 client_id 와 secret을 부여받는데 해당 API를 사용할때 꼭 필요하니 잘 적어두자.
위의 과정을 통해 Papago 번역 구현예제에서 다음과 같은 Python용 API구현예제를 얻을 수 있다.
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)
client_id/client_secret에 해당하는 본인 정보를 적고 실행하면
"translatedText":"Nice to meet you."
"반갑습니다"가 "Nice to meet you."로 바르게 해석된 것을 볼 수 있다.
간단한 문장 말고 원하는 txt파일 전체를 번역하고 싶다면?
import requests
client_id = "2" # 개발자센터에서 발급받은 Client ID 값
client_secret = "3" # 개발자센터에서 발급받은 Client Secret 값
url = "https://openapi.naver.com/v1/papago/n2mt"
with open('halo.txt', 'r') as lyric:
data = lyric.read()
# print(data)
#요청 헤더
req_header = {"X-Naver-Client-Id":client_id, "X-Naver-Client-Secret":client_secret}
#요청 파라미터
req_param = {"source":"en", "target":"ko", "text":data}
#print(req_param)
res = requests.post(url,headers=req_header, data=req_param)
#print(res.status_code, res.ok)
if res.ok:
print(type(res.text),res.text)
print(type(res.json()),res.json())
trans_txt=res.json()['message']['result']['translatedText']
print(trans_txt)
else:
print('error code', res.status_code)
반응형
댓글