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

✅[Python]구글 번역기(API) 무료로 사용하기 How to use google translate using python -1✅

by Mr.noobiest 2024. 3. 18.

 

 

Google 번역기를 사용하는데, 문제가 있다.....

 

1개씩 복사붙여넣기로 일일히 번역을 하면 시간이 너무 오래 걸린다.

 

API나 라이브러리를 사용해서 1번에 여러 언어를 번역해보자.

 

 

방법은 크게 2가지이다.


 

1) Python googletrans 라이브러리 사용하기(무료 / 1일 사용량 제한 있음 / 최신 버전이 아니라 번역이 잘못될 수 있음) 

2) Google Cloud의 번역 API 사용하기( 유료 / 최신 버전이라 번역이 자연스러움)

 


 

돈 쓰기는 죽어도 싫으니 1)번 방법을 사용하도록 하자.


-코드 전문-

✅dataframe에 적용할때는 아래처럼 하면 된다.

import pandas as pd
from googletrans import Translator

def translate_product(df):
    translator = Translator()
    df['Trans_result'] = df['Before_Trans'].apply(lambda x: translator.translate(x, dest='en').text)
    df['Language'] = df['Before_Trans'].apply(lambda x: translator.detect(x).lang)
    return df
    
    
#Before_Trans: 번역될 원본 문장/단어  
#Trans_result: 번역 결과 / 여기서는 en(영어)로 번역하도록 했다.
#Language : 원본 문장의 언어(일본어라면 jp / 한국어면 ko로 표시된다.)

 

 


 

 

1) googletrans 라이브러리 설치

pip install googletrans==4.0.0-rc.1

(주의 : 그냥 pip install googletrans를 하면 동작하지 않는 버전을 설치하므로 옆에 버전을 꼭 지정해주도록 하자, 잘못 설치했다면 pip uninstall googletrans로 지워주고 다시 설치한다.)

 

아래  pypi에서 원하는 버전을 찾을 수도 있다.

https://pypi.org/project/googletrans/

 

googletrans

Free Google Translate API for Python. Translates totally free of charge.

pypi.org

 


 

2) googletrans의 Translator를 사용한다.

from googletrans import Translator

translator = Translator()

translator.translate( 번역할 문장(string) ,src='번역할 문장의  언어' ,dest='변경할 언어'

#간단한 텍스트 번역하기
text='나는 한국인이다.'
cn_result= translator.translate(text, dest='zh-cn')

#번역한 중국어를 다시 한국어로 바꿔보기
ko_result = translator.translate(cn_result.text, dest='ko')
print(cn_result.text) #我是韩国人。
print(ko_result.text) #나는 한국인이다.

 

src는 굳이 넣어주지 않아도 googletrans에서 알아서 감지하고 설정해준다, 다만 데이터가 이미 언어별로 분류되어 있다면 src에 해당하는 언어를 써주는 것이 좋다.

translator.translate의 결과는 JSON형태이고, 2가지 return이 있다.
.text : 문장(string 값이다.)
.pronunciation : 발음(기본값은 en이지만 다른걸로 변경 가능하다.)

 

 

 

 

3) 1개 문장만 바꾸기

3-1) 번역만 하기

translator = Translator()

translator.translate("This Is English", dest='kr')

결과 : 이것은 영어입니다.

3-2) 번역될 문장이 어떤 언어를 사용중인지 감지하기

translator = Translator()
translator.detect("이것은 한국어 입니다").lang
결과 : kr

 


 

사용가능한 언어들은 아래와 같다.

import googletrans
googletrans.LANGUAGES
{'af': 'afrikaans',
 'sq': 'albanian',
 'am': 'amharic',
 'ar': 'arabic',
 'hy': 'armenian',
 'az': 'azerbaijani',
 'eu': 'basque',
 'be': 'belarusian',
 'bn': 'bengali',
 'bs': 'bosnian',
 'bg': 'bulgarian',
 'ca': 'catalan',
 'ceb': 'cebuano',
 'ny': 'chichewa',
 'zh-cn': 'chinese (simplified)',
 'zh-tw': 'chinese (traditional)',
 'co': 'corsican',
 'hr': 'croatian',
 'cs': 'czech',
 'da': 'danish',
 'nl': 'dutch',
 'en': 'english',
 'eo': 'esperanto',
 'et': 'estonian',
 'tl': 'filipino',
 'fi': 'finnish',
 'fr': 'french',
 'fy': 'frisian',
 'gl': 'galician',
 'ka': 'georgian',
 'de': 'german',
 'el': 'greek',
 'gu': 'gujarati',
 'ht': 'haitian creole',
 'ha': 'hausa',
 'haw': 'hawaiian',
 'iw': 'hebrew',
 'he': 'hebrew',
 'hi': 'hindi',
 'hmn': 'hmong',
 'hu': 'hungarian',
 'is': 'icelandic',
 'ig': 'igbo',
 'id': 'indonesian',
 'ga': 'irish',
 'it': 'italian',
 'ja': 'japanese',
 'jw': 'javanese',
 'kn': 'kannada',
 'kk': 'kazakh',
 'km': 'khmer',
 'ko': 'korean',
 'ku': 'kurdish (kurmanji)',
 'ky': 'kyrgyz',
 'lo': 'lao',
 'la': 'latin',
 'lv': 'latvian',
 'lt': 'lithuanian',
 'lb': 'luxembourgish',
 'mk': 'macedonian',
 'mg': 'malagasy',
 'ms': 'malay',
 'ml': 'malayalam',
 'mt': 'maltese',
 'mi': 'maori',
 'mr': 'marathi',
 'mn': 'mongolian',
 'my': 'myanmar (burmese)',
 'ne': 'nepali',
 'no': 'norwegian',
 'or': 'odia',
 'ps': 'pashto',
 'fa': 'persian',
 'pl': 'polish',
 'pt': 'portuguese',
 'pa': 'punjabi',
 'ro': 'romanian',
 'ru': 'russian',
 'sm': 'samoan',
 'gd': 'scots gaelic',
 'sr': 'serbian',
 'st': 'sesotho',
 'sn': 'shona',
 'sd': 'sindhi',
 'si': 'sinhala',
 'sk': 'slovak',
 'sl': 'slovenian',
 'so': 'somali',
 'es': 'spanish',
 'su': 'sundanese',
 'sw': 'swahili',
 'sv': 'swedish',
 'tg': 'tajik',
 'ta': 'tamil',
 'te': 'telugu',
 'th': 'thai',
 'tr': 'turkish',
 'uk': 'ukrainian',
 'ur': 'urdu',
 'ug': 'uyghur',
 'uz': 'uzbek',
 'vi': 'vietnamese',
 'cy': 'welsh',
 'xh': 'xhosa',
 'yi': 'yiddish',
 'yo': 'yoruba',
 'zu': 'zulu'}

 

 

GoogleTrans 라이브러리는 1일 제한이 있는데 이것은 fake user agnet를 사용하면 무제한으로 번역이 가능하다.

 

 

 

google말고 다른 번역기의 API를 사용하는 방법은 다른 게시글에서 살펴보도록 하자.

https://mrnoobiest.tistory.com/529

 

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

번역기 API를 사용해야 하는 상황이라면, python라이브러리의 googletrans를 API처럼 사용해도 되고, 아니면 Naver와 kakako에서 제공하는 번역 API를 사용해도 좋다, 단 번역 API는 대부분 무료 한도가 있고

mrnoobiest.tistory.com

 

728x90
반응형