본문 바로가기
프로그래밍/Python

[번역 API]파파고 API 사용하기 -2

by Mr.noobiest 2023. 11. 6.

 

이전 게시글에서는 Pyhon의 googletrans를 사용해서 번역하는 방법을 알아봤다.

 

https://mrnoobiest.tistory.com/528

 

✅[Python]Google 번역기 무료로 사용하기 -1✅

Google 번역기를 사용하는데, 문제가 있다..... 1개씩 복사붙여넣기로 일일히 번역을 하면 시간이 너무 오래 걸린다. API나 라이브러리를 사용해서 1번에 여러 언어를 번역해보자. 방법은 크게 2가지

mrnoobiest.tistory.com

 


 

하지만, 해당 방법은 python코딩을 할 줄 알아야 하고, API를 사용하는것이 아니라 제한사항이 발생할 수 있다.

만일 번역기 API를 사용해야 하는 상황이라면 Naver와 kakako에서 제공하는 번역 API를 사용하는게 좋다,

단 번역 API는 대부분 무료 한도가 있고, 이후로는 유료 결제를 해야하는 경우가 많다.

 

다른 여러 번역 API들이 있긴한데, 비싸고 가입이 필요하다.

1. Google Translate API
2. Microsoft Translator API
3. Amazon Translate API
4. IBM Watson Language Translator API
5. Yandex Translate API
6. DeepL API
7. SYSTRAN.io API
8. MyMemory Translation API
9. Lingua Robot API

 


1. Papago API 사용하기

naver에서 서비스하는 AI 신경망 번역기

 

Papago 번역으로 번역할 수 있는 원본 언어(source language)와 목적 언어(target language)는 다음과 같습니다.

원본 언어   목적 언어   원본 언어   목적 언어
한국어 영어 | 영어 한국어
한국어 일본어 | 일본어 한국어
한국어 중국어 간체 | 중국어 간체 한국어
한국어 중국어 번체 | 중국어 번체 한국어
한국어 베트남어 | 베트남어 한국어
한국어 인도네시아어 | 인도네시아어 한국어
한국어 태국어 | 태국어 한국어
한국어 독일어 | 독일어 한국어
한국어 러시아어 | 러시아어 한국어
한국어 스페인어 | 스페인어 한국어
한국어 이탈리아어 | 이탈리아어 한국어
한국어 프랑스어 | 프랑스어 한국어
영어 일본어 | 일본어 영어
영어 프랑스어 | 프랑스어 영어
영어 중국어 간체 | 중국어 간체 영어
영어 중국어 번체 | 중국어 번체 영어
일본어 중국어 간체 | 중국어 간체 일본어
일본어 중국어 번체 | 중국어 번체 일본어
중국어 간체 중국어 번체 | 중국어 번체 중국어 간체

 

Papago 번역으로 한 번에 번역할 수 있는 분량은 최대 5,000자이며, 하루 번역 처리 한도는 10,000자입니다.

 


1) 네이버 개발자 센터 > 파파고 API로 이동하기(아래 주소 이동)
오픈 API 이용 신청 클릭

https://developers.naver.com/products/papago/nmt/nmt.md

 

Neural Machine Translation - INTRO

Neural Machine Translation NAVER Developers - Papago 소개 NMT는 Neural Machine Translation(인공신경망 기반 기계번역)의 약어입니다. 파파고의 NMT 기술은 입력 문장을 문장벡터로 변환하는 신경망(encoder)과 문장벡

developers.naver.com

 

Papago에서는 무료 API를 제공한다.

 


2) 애플리케이션 정보 입력하기 <- 사용하고자 하는 API들을 설정하는 것이다.

WEB주소는 본인이 원하는 주소를 써주면 된다.

 


3) Client ID와 Client Secret을 잘보관하자.


4) 설명서의 예제를 사용해서 잘동작하는지 확인하자.

terminal이나 cmd에 아래 코드를 실행하면 번역결과가 나온다.

//terminal

curl "https://openapi.naver.com/v1/papago/n2mt" \
-H "Content-Type: application/x-www-form-urlencoded; charset=UTF-8" \
-H "X-Naver-Client-Id: {Client ID}" \
-H "X-Naver-Client-Secret: {Client Secret}" \
-d "source=ko&target=en&text=만나서 반갑습니다." -v

 

//cmd(위 코드에서 \만 제거하면 된다.)

curl "https://openapi.naver.com/v1/papago/n2mt" -H "Content-Type: application/x-www-form-urlencoded; charset=UTF-8" -H "X-Naver-Client-Id: {Client ID}" -H "X-Naver-Client-Secret: {Client Password}" -d "source=ko&target=en&text=만나서 반갑습니다." -v

 

python에서 실행하는 코드는 아래와 같다.

import requests
Client_ID='API의 아이디'
Client_Secret='API의 아이디'
Source_Lang='원본문장의 언어명' #ko
Target_Lang='번역 하고자 하는 언어명' #en 
Text='번역할 문장'


headers = {
    'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
    f'X-Naver-Client-Id': Client_ID,
    f'X-Naver-Client-Secret': Client_Secret,
}

data = f'source={Source_Lang}&target={Target_Lang}&text={Text}'.encode()

response = requests.post('https://openapi.naver.com/v1/papago/n2mt', headers=headers, data=data)
print(response.json()['message']['result']['srcLangType'])  #ko
print(response.json()['message']['result']['tarLangType'])  #en
print(response.json()['message']['result']['translatedText']) #Good to meet you.

 

 


-실행결과-

{"message":{
    "@type":"response",
    "@service":"naverservice.nmt.proxy",
    "@version":"1.0.0",
    "result":{
        "srcLangType":"ko",
        "tarLangType":"en",
        "translatedText":"Good to meet you.",
        "engineType":"PRETRANS"
}}}%

 


추가사항 : 언어 감지하기

import requests

headers = {
    'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
    f'X-Naver-Client-Id': Client_ID,
    f'X-Naver-Client-Secret': Client_Secret,
}

data = 'query=만나서 반갑습니다.'.encode()

response = requests.post('https://openapi.naver.com/v1/papago/detectLangs', headers=headers, data=data)
print(response.json()['langCode']) #ko

 

 

 


사용가능한 언어코드는 아래와 같다.

언어 코드언어

ko 한국어
en 영어
ja 일본어
zh-CN 중국어 간체
zh-TW 중국어 번체
vi 베트남어
id 인도네시아어
th 태국어
de 독일어
ru 러시아어
es 스페인어
it 이탈리아어
fr 프랑스어

 

 


 

 

 

다음은 kakao 번역기 API 사용법을 확인해보자.

728x90
반응형