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)
** 엑셀에 있는 한글을 전부 영어로 번역하고 싶을 때 사용하면 좋음!
# 데이터프레임 생성
df = pd.DataFrame({
'과일':['바나나', '사과', '수박']
})
df
# 번역함수 적용하여 과일을 번역한 fruit 컬럼 생성
df['fruit'] = df['과일'].apply(translate_ko)
df
'Python 파이썬' 카테고리의 다른 글
파이썬 웹크롤링(1) - 정적페이지 (0) | 2023.03.27 |
---|---|
파이썬 이변량 분석(3) - (숫자/범주->범주형) (0) | 2023.03.15 |
파이썬 이변량 분석(2) - (범주형->숫자형) (0) | 2023.03.14 |
파이썬 이변량 분석(1) - (숫자형->숫자형) (0) | 2023.03.10 |
파이썬 단변량 분석(EDA) (0) | 2023.03.07 |