파이썬 Python

[Python] 파이썬 구글 번역 API로 리뷰 데이터 번역하기

sseozytank 2024. 6. 20.

빅쿼리에서도 Translate ML을 지원해서 빅쿼리 데일리 잡으로 번역을 하려 했더니 

위치 문제로 사용이 불가하다고 한다. (https://cloud.google.com/bigquery/docs/locations?hl=ko <- 여기 참고하면 region에 따라 지원하는 것들이 적혀져 있음, translate의 경우  eu multi-region or us multi-region 만 지원하는 듯) 

 

그래서 Python에서 바로 번역 처리 후 ETL 하기로 결정하고, 번역하는 코드만 짜서 엔지니어분께 전달드렸다. 그래서 오늘 포스팅은 다국어로 들어오는 리뷰 데이터 번역하기

 

1.데이터 셋 만들기

실제 리뷰 데이터로 글을 쓸 수는 없으니 챗 지피티로 간단한 데이터 프레임을 생성했다. 

import pandas as pd

data = {
    'date': ['2024-01-01', '2024-01-05', '2023-05-04', '2018-06-30', '2019-12-18', '2022-11-29', '2023-07-21', '2023-03-04'],
    'review': ['사랑합니다', 'I love you', '我爱你', '愛しています', 'Ich liebe dich', 'Te quiero', 'Je t\'aime', 'أحبك']
}

df = pd.DataFrame(data)
df

 

2.번역 함수 생성 

1.라이브러리 다운로드

pip install googletrans==4.0.0rc1 #rc1 오타아님!!!

 

2.라이브러리 호출

from googletrans import Translator

 

3.함수 생성 

translator = Translator()

def translate_text(text, retries=3):
    for attempt in range(retries):
        try:
            result = translator.translate(text, dest='ko')
            return result.text
        except ReadTimeout:
            print(f"시도 {attempt + 1}/{retries}이 시간 초과되었습니다. 다시 시도 중...")
            continue
        except Exception as e:
            print(f"오류가 발생했습니다: {e}")
            break
    return None

 

*try except를 사용하지 않고 그냥 돌리니 일정 개수 이상 처리를 못해서 에러가 발생했을 때도 계속 돌릴 수 있게 예외 처리를 해주었다. 

 

3.적용

함수 적용해주면 끝! 

# 예시 사용
df['review_kr'] = df['review'].apply(translate_text)
df

댓글