Seongwon Lim

[Python] 구글 번역 API 사용하기 본문

Python

[Python] 구글 번역 API 사용하기

limsw 2022. 5. 17. 00:47
반응형

서론

이번 글에서는 파이썬에서 구글 번역 API를 사용하는 방법과 예제를 간단하게 다루고자 한다.

모듈 설치하기

파이썬에서 구글 번역 API를 사용하기 위해서는 googletrans 모듈이 필요하다.

해당 모듈은 pip install googletrans로 설치할 수 있지만 해당 명령어로 실행하면 최신 버전이 아니라 구버전이 설치된다.

 

따라서 버전을 지정하여 모듈을 설치하는 것을 권장한다.

  • pip install googletrans==4.0.0-rc1

이제 사용 방법을 살펴보자.

Googletrans 모듈 사용 방법

from googletrans import Translator
translator = Translator()

먼저 라이브러리를 불러온 뒤 translator 객체를 생성한다. 생성한 객체를 이용하여 번역 기능을 구현할 수 있다.

 

이제 사용 예제를 살펴보자.

string = "나의 취미는 축구입니다."
result = translator.translate(string, src='ko', dest='en')

print(result)  # Translated(src=ko, dest=en, text=My hobby is soccer., pronunciation=None, extra_data="{'confiden...")
print(result.text)  # My hobby is soccer.
  • 번역하고자 하는 문장(혹은 단어)를 translator.translate()의 첫번째 인자로 넣는다.
  • src= 는 번역 전 언어를 선택하는 부분이다.
  • dest= 는 번역 후 언어를 선택하는 부분이다.
  • translator.translate("번역할 문장", src="번역 전 언어", dest="번역 후 언어")

이외에 인자로 text(번역 결과를 반환), pronunciation(번역 결과 발음을 영어로 표기)가 올 수 있다.

 

필자는 번역 전 언어로 한국어를 지칭하는 ko를 썼고, 번역 후 언어는 영어를 지칭하는 en을 사용했다.

 

또한, destination을 지정하지 않은 경우는 기본 번역 후 언어의 기본 언어는 영어임을 알고있자.

print(translator.translate("나의 취미는 축구입니다.").text)
# 결과 : My hobby is soccer.

해당 문자열이 어떤 언어인지 판단하기

이번에는 특정 문자열이 어떤 언어인지 구글 번역 API를 통해서 판단하는 예제를 살펴보자.

str1 = "나의 취미는 축구입니다"
str2 = "My hobby is soccer."
str3 = "こんにちは"  # 안녕하세요

print(translator.detect(str1))  # Detected(lang=ko, confidence=None)
print(translator.detect(str2))  # Detected(lang=en, confidence=None)
print(translator.detect(str3))  # Detected(lang=ja, confidence=None)

print(translator.detect(str1).lang)  # ko

detect() 함수를 이용하면 입력받은 문자열이 어떤 나라의 언어인지 구글 API가 자동으로 추론하여 반환한다.

  • str3 문자열의 경우 일본어를 지칭하는 ja를 반환한 것을 확인할 수 있다.
  • 또한, 마지막 출력 예제처럼 해당 문자열이 어떤 언어인지 추출하기 위해서는 뒤에 .lang 을 붙이면 된다.

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

출처

Comments