빅쿼리에서도 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
'파이썬 Python' 카테고리의 다른 글
[Python] 파이썬으로 하는 시계열 데이터 분해 (Seasonal_decompose) (0) | 2024.04.24 |
---|---|
[Python] 파이썬 - 구글 스프레드 시트 연동하기 (2) | 2024.03.18 |
[Python] linux 환경에서 DB 계정 정보를 숨기고, mssql을 연동해보자. (0) | 2023.12.04 |
[Python] 파이썬에서 빅쿼리 불러오기 (0) | 2023.02.15 |
[Python] 파이썬 판다스 데이터 타입 (Data Type) (0) | 2022.09.16 |
댓글