DBILITY

python papago translate api example 본문

python

python papago translate api example

DBILITY 2021. 10. 12. 15:46
반응형

 

이거 보고 광고 한번 안 누른 이는 삼대가 재수가 없을지어다!ㅋㅋ

누르면 오십억게임 최후 승자가 된다!

https://developers.naver.com/docs/papago/papago-nmt-example-code.md#python

 

https://developers.naver.com/docs/papago/papago-nmt-example-code.md#python

 

developers.naver.com

naver developer센터에 가입을 해야 한다. 거의 10년 만에 네이버 아이디가 다시 생기다니. 흠.

API 구현 예제를 통째로 붙여 넣고 발급받은 클라이언트 아이디와 키값을 변경 후 json format의 response data를 dictionary로 변환, 번역된 문장만 출력했다.

import os
import sys
import urllib.request
import json

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()
    dict_response: dict = json.loads(response_body)
    print(dict_response["message"]["result"]["translatedText"])
#    print(response_body.decode('utf-8'))
else:
    print("Error Code:" + rescode)

실행결과는 그림 1과 아래와 같다.

그림1

다음은 파파고 번역을 함수로 만들고 excel파일을 읽어서 번역 후 저장한다.

openpyxl을 설치해야 한다.(Python library to read/write Excel 2010 xlsx/xlsm/xltx/xltm files.)

번역할 내용은 어린 시절(누군가에겐 사춘기) 읽었던 '애너벨 리(Annabell Lee)'. 작가 '애드가 앨런 포(Edgar Allan Poe)'하면 검은 고양이만 기억하는 분들도 있는데, 이 분은 밤하늘이 즉, 우주가 어두운 이유도 산문시인 유레카(Eureka)에 썼다. 서문이던가에 이것은 논문이 아니라고 썼다나 참 특이하고도 대단한 분이다. 

import os
import sys
import urllib.request
import json
import pandas as pd


def papago(input_text: str):
    client_id = "YOUR_CLIENT_ID"  # 개발자센터에서 발급받은 Client ID 값
    client_secret = "YOUR_CLIENT_SECRET"  # 개발자센터에서 발급받은 Client Secret 값
    encText = urllib.parse.quote(input_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()
        dict_response: dict = json.loads(response_body)
        return dict_response["message"]["result"]["translatedText"]
    else:
        return "Error Code:" + rescode
        
        
df: pd.DataFrame = pd.read_excel("./Annabel_Lee_Edgar_Allan_Poe.xlsx", engine='openpyxl')
for idx, row in df.iterrows():

    if (pd.isna(row['English'])):
        continue
    #print(row['English'])
    df.loc[idx, 'Korean'] = papago(row['English'])

df.to_excel("./Annabel_Lee_Edgar_Allan_Poe_Translate2Korean.xlsx", sheet_name="번역결과")

print("Complete!")

Annabel_Lee_Edgar_Allan_Poe.xlsx
0.01MB

번역결과는 시적이진 않다.ㅎㅎ

Annabel_Lee_Edgar_Allan_Poe_Translate2Korean.xlsx
0.01MB

반응형

'python' 카테고리의 다른 글

python matplot scatter chart , linear regression line exercise  (0) 2021.10.13
python pandas dataframe  (0) 2021.10.12
python matplot pie chart  (0) 2021.08.30
python matplot bar chart example  (0) 2021.08.27
python matplot line chart example  (0) 2021.08.25
Comments