반응형

안녕하세요, 왕초보 코린이를 위한 코딩유치원에 오신 것을 환영합니다.

 

 


 

오늘은 영어를 해석할 때 자주 도움받는 구글 번역(Google Translate)을 파이썬에서 사용하는 방법에 대해 알아보겠습니다.

 

구글 번역 페이지

 

 

Googletrans 설치하기

 

googletrans 패키지는 원래 3.0.0 버전까지 문제가 많아서 AttributeError: 'NoneType' object has no attribute 'group' 라는 에러를 출력시키면서 잘 실행이 되지 않았습니다. 하지만 2021년 1월 12일에 4.0.0 버전이 릴리즈 되면서 그러한 에러가 해결되었답니다.

 

2021년 7월 1일 현재에도 그냥 pip install googletrans로 설치를 하면 구버전이 설치되므로 꼭 아래의 코드를 입력해주세요. 혹시 이미 설치를 하셨다면 pip uninstall googletrans로 패키지를 지운 후에 다시 설치하시기 바랍니다.

 

pip install googletrans==4.0.0-rc1

 

 

Googletrans 불러오기

 

googletrans 패키지를 사용하려면 import를 해주셔야합니다.

 

from googletrans import Translator

# Translator 클래스 객체 선언 (translator라는 변수명은 마음대로 정해주면 됨)
translator = Translator()

 

혹시 import googletrans가 아닌 from googletrans import Translator를 사용한 이유가 궁금하신 분은 아래의  글을 참고해주세요.

 

2021.05.24 - [파이썬 기초/기초 문법] - [python 기초] import OO와 from OO import*의 차이

 

 

Googletrans 사용하기

 

googletrans 패키지로는 번역과 감지 2가지 기능을 사용할 수 있습니다. 하나씩 알아보겠습니다.

 

번역 (translate)

 

가장 기본적인 번역을 해보겠습니다. 해당 코드는 위의 코드가 있어야 작동하는 점 참고바랍니다.

 

print(translator.translate('안녕')

>>> Translated(src=ko, dest=en, text=Hi, pronunciation=None, extra_data="{'confiden...")

 

translator.translate( )의 결과물은 Translated라는 클래스의 객체입니다. 쉽게 말해 안에 무엇이 들어있는 결과물이랄까요.

 

이 안에는 src, dest, text, pronunciation이란 요소들이 들어있으며, 이것들이 뜻하는 내용은 아래와 같습니다.

 

요소 의미
src 번역 전 언어
dest 번역 후 언어
text 번역 결과
pronunciation 번역 결과의 발음 (영어로 표기)

 

참고로 source 언어(src)는 입력된 문자열을 자동 감지하여 판단한 것이 디폴트이고, 번역될 언어(dest)는 영어가 디폴트입니다.

 

 

만약 Translated에서 특정 요소만 가져오고 싶다면 아래와 같이 코딩해주시면 됩니다.

translator.translate("안녕").text

>>> 'Hi'

 

그리고 아까 결과에서 pronunciation가 None으로 나온 이유는 번역 후 언어가 영어이므로 text가 곧 pronunciation이기 때문입니다.

한국어를 일본어로 바꿔보면 영어로 발음이 나오는 것을 확인 하실 수 있습니다.

print(translator.translate('안녕', src='ko', dest='ja'))

>>> Translated(src=ko, dest=ja, text=こんにちは, pronunciation=Kon'nichiwa, extra_data="{'confiden...")

 

 

감지 (detect)

 

입력받은 문자열을 알아서 판단하여 어떤 언어인지 되돌려줍니다.

 

print(translator.detect('안녕'))

>>> Detected(lang=ko, confidence=None)


print(translator.detect('veritas lux mea'))

>>> Detected(lang=la, confidence=None)

# 언어만 확인
print(translator.detect('안녕').lang)

 

Detected 클래스는 lang과 confidence를 요소로 가지며 각각 감지한 언어와 결과의 신뢰도(0~1.0)를 나타냅니다. 제가 할 때는 신뢰도는 나오지 않네요.

 

 

 

< 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',
}

 

오늘 준비한 내용은 여기까지입니다.

 

이 패키지를 어디에 쓸지는 고민해봐야 할 것 같네요.


<참고자료>

 

https://pearlluck.tistory.com/372

 

구글번역API 사용하기 | googletrans 4.0.0 으로 설치해야한다

번역이 필요해서 당연히 구글번역 API를 썼다. 가장 대표적이고 무료인 googletrans pip install googletrans  그리고 사용하기도 쉽다 from googletrans import Translator translator = Translator() result= t..

pearlluck.tistory.com

 

반응형

+ Recent posts