본문 바로가기

Python 파이썬

파이썬 오픈 API 활용(파파고 번역)

NAVER 오픈 API 활용 - 파파고 번역

 

< 오픈 API 사용 순서 >

 

1. 네이버 개발자센터

https://developers.naver.com/main/ 

 

NAVER Developers

네이버 오픈 API들을 활용해 개발자들이 다양한 애플리케이션을 개발할 수 있도록 API 가이드와 SDK를 제공합니다. 제공중인 오픈 API에는 네이버 로그인, 검색, 단축URL, 캡차를 비롯 기계번역, 음

developers.naver.com

- 네이버 로그인

 

2. Products - Papago 번역 - 오픈 API 이용 신청

애플리케이션 이름 : 원하는 이름 설정

사용 API : Papago 번역 선택

비로그인 오픈 API 서비스 환경 : WEB 설정 / 웹 서비스 URL : http://localhost (임의로 설정)

"위 설정 작성 후 등록하기"

 

"API 생성 끝!"

 

3. Application - 내 애플리케이션 - 생성 API : "번역기" 

- 생성한 API 클릭하여 애플리케이션 정보에서 Client ID, Client Secret 확인

 

- 애플리케이션 정보 밑. 파파고 NMT API가이드에서 <URL 및 다른 코드> 사용 방법 참고

 

4. 코드

# 라이브러리
import pandas as pd
import requests
import json

 

- ID, Secret 입력

# 본인 API id, secret 입력
client_id = 'Client ID'
client_secret = 'Client Secret'

 

4.1 url입력

# url 입력
url = 'https://openapi.naver.com/v1/papago/n2mt'

 4.2 데이터 요청

# 번역할 내용
txt ='열심히 번역을 해보자'

# API 가이드 마지막 줄 source, target, text를 param으로 생성
# ko : 한국어, eg : 영어
params = {
    'source' : 'ko', 'target' : 'en', 'text' : txt
}

# API 가이드 참고하여 header 생성
headers = {
    'Content-Type': 'application/json',
    'X-Naver-Client-Id': client_id,
    'X-Naver-Client-Secret': client_secret
}
# 코드에서는 한글 사용 안됨
# 그래서 한글을 영문, 특수문자, 숫자로 변환해서 사용
json.dumps(params)

'{"source": "ko", "target": "en", "text": "\\ubc88\\uc5ed\\uc744 \\ud574\\ubcf4\\uc790"}'

 

*참고 : https://wikidocs.net/126088

 

# post 방식
response = requests.post(url, json.dumps(params), headers=headers)
response

<Response [200]>

=> 정상적으로 데이터 받음

=> request에는 get방식과 post방식이 있다. 이번 api 사용에는 post 방법이 사용된다.

*참고 : https://blog.naver.com/9145456s/222422593455

 

# 확인
response.text

=> message → result → translatedText에 번역한 내용 들어있는 것을 확인

 

4.3 데이터 형태 변경(parsing)

# 3. parsing > translated_txt
translated_txt = response.json()['message']['result']['translatedText']
translated_txt

"Let's translate it"

=> """ 열심히 번역을 해보자 → Let's translate it """로 번역된 것을 확인

 

- 파파고 번역기에서도 확인

파이썬으로 실행한 것과 같은 결과임을 확인

 

5. 함수로 만들기!

# 함수 생성
def translate_ko(txt):
    params = {'source' : 'ko', 'target' : 'en', 'text' : txt}
    headers = {
        'Content-Type': 'application/json',
        'X-Naver-Client-Id': client_id,
        'X-Naver-Client-Secret': client_secret
    }
    response = requests.post(url, json.dumps(params), headers=headers)
    return response.json()['message']['result']['translatedText']
# 함수 사용
txt = '함수는 앞에 코드를 전부 더하면 돼!'
translate_ko(txt)
'You can add all the codes in front of the function!'
 

** 엑셀에 있는 한글을 전부 영어로 번역하고 싶을 때 사용하면 좋음!

# 데이터프레임 생성
df = pd.DataFrame({
    '과일':['바나나', '사과', '수박']
})
df

# 번역함수 적용하여 과일을 번역한 fruit 컬럼 생성
df['fruit'] = df['과일'].apply(translate_ko)
df