네이버 파파고 papago API로 번역하기

Jade (Data Manager)·2023년 2월 16일
0

python 세상

목록 보기
1/1

이 모듈은 네이버 PAPAGO API를 사용합니다.

필요항목 - 파파고 API KEY를 기입한 .ini파일 (./iniFiles/papago.ini)

전에 번역기를 사용할 일이 있어 네이버에서 파파고 API 키를 발급받아서 사용할 수 있는 모듈을 만들었습니다.

인터넷에 정리되어 있는 코드가 네이버 개발문서에 정의된 코드를 복붙한 코드밖에 없어서 정갈하게 정리한 코드를 한번 올려봅니다.

참고사항: 네이버 PAPAGO API 가이드 문서

https://developers.naver.com/docs/papago/papago-nmt-api-reference.md

네이버 문서에 정의된 파이썬 레퍼런스 코드

위 코드를 조금 더 구조를 잡아서 정리해보도록 합니다.





jade_papago.py에 번역할 문장을 method 에 따라 넘겨주면 번역된 결과를 리턴합니다.

jade_reference.py처럼 작성하여 사용가능합니다.

파파고 API 키는 iniFiles 안에 있는 jade_papago.ini 안에 기입합니다.





메인 로직
경로 & 파일명 : /jade_papago.py

import urllib.request
import json
import configparser

configINI = configparser.ConfigParser()
configINI.read('./iniFiles/jade_papago.ini', encoding="UTF-8")
client_id = configINI['KEYS']['client_id']
client_secret = configINI['KEYS']['client_secret']
URL_PAPAGO_Trans = "[https://openapi.naver.com/v1/papago/n2mt](https://openapi.naver.com/v1/papago/n2mt)"

class CLASS_PAPAGO():

def EnKo(str_enText):
    str_enText = urllib.parse.quote(str_enText)
    inputData = f"source=en&target=ko&text={str_enText}"
    returnVal = CLASS_PAPAGO.ret_Translation(inputData)
    return returnVal

def KoEn(str_koText):
    str_koText = urllib.parse.quote(str_koText)
    inputData = f"source=ko&target=en&text={str_koText}"
    CLASS_PAPAGO.ret_Translation(inputData)
    returnVal = CLASS_PAPAGO.ret_Translation(inputData)
    return returnVal

def ret_Translation(inputData):
    req_papago = urllib.request.Request(URL_PAPAGO_Trans)
    req_papago.add_header("X-Naver-Client-Id", client_id)
    req_papago.add_header("X-Naver-Client-Secret", client_secret)
    res_papago = urllib.request.urlopen(
        req_papago, data=inputData.encode("utf-8"))
    res_Result = json.load(res_papago)
    res_Txt = res_Result["message"]["result"]["translatedText"]
    return res_Txt

ini파일 작성 예시

경로 & 파일명 : ./iniFiles/jade_papago.ini

[KEYS]
client_id=
client_secret=

사용 레퍼런스

경로 & 파일명 : /jade_papago_reference.py

from jade_papago import CLASS_PAPAGO as papago


EngToKor = papago.EnKo("Astin is brilliant")
KorToEng = papago.KoEn("이제 잘 시간이야.")

print(f"결과1: {EngToKor}, 결과2: {KorToEng}")


jade_papago_reference.py를 실행시키면, 번역된 결과물을 확인할 수 있습니다.

참고사항 :

테스팅 편의를 위해 __init__.py 파일을 정의하지 않았습니다.




profile
어쩌다 개발자. 데이터 설계/분석과 블록체인 및 매매 알고리즘을 연구합니다.

0개의 댓글