From 8562f49dda53033283ba86134384258db839da6a Mon Sep 17 00:00:00 2001 From: simplypower-bbj Date: Mon, 9 Jan 2023 19:02:17 +0100 Subject: [PATCH] commented code --- code/translate.py | 60 ++++++++++++----------------------------------- 1 file changed, 15 insertions(+), 45 deletions(-) diff --git a/code/translate.py b/code/translate.py index 8450738..f27f02f 100644 --- a/code/translate.py +++ b/code/translate.py @@ -1,15 +1,11 @@ +# public packages from langdetect import detect from google_trans_new import google_translator -import pandas as pd -import multiprocessing as mp -import numpy as np +# database-related +from database import Data_table, get_untranslated, insert_translated from dotenv import load_dotenv -from tqdm import tqdm -import logging - -from database import Data_table +# own scripts from clean_data import clean_content -from setup_logging import setup_logging def translate(text, target_lang='en'): try: @@ -26,65 +22,39 @@ def translate(text, target_lang='en'): return '' return text_trans -def get_untranslated(dt): - query = ( - f'SELECT * FROM {dt._name} ' - 'WHERE content_en IS NULL ' - 'ORDER BY random() ' - 'LIMIT 1 ' - ) - df = pd.read_sql_query(query, dt.con) - if len(df)==0: return None - val_dict = { - 'id': int(df['id'][0]), - 'content': str(df['content'][0]) - } - return val_dict - -def insert_translated(dt, val_dict): - assert 'id' in val_dict.keys() - assert 'content_en' in val_dict.keys() - query = ( - f'UPDATE {dt._name} ' - ' SET content_en = (%(content_en)s) ' - 'WHERE id = (%(id)s) ' - ) - dt.execute(query, val_dict) - def continously_translate(): with Data_table() as dt: - logging.info('began translating') - while True: + print('began translating') + while True: # keep going forever try: val_dict = get_untranslated(dt) except Exception as e: - logging.warning(f'error when getting untranslated content from database: {e}') + print(f'error when getting untranslated content from database: {e}') continue + # if nother left untranslated, stop if val_dict is None: break - # clean + # clean text try: content_clean = clean_content(val_dict['content']) except Exception as e: - logging.warning(f'error when cleaning content: {e}') + print(f'error when cleaning content: {e}') continue - # translate + # translate text try: content_en = translate(content_clean) except Exception as e: - logging.warning(f'error when translating content: {e}') + print(f'error when translating content: {e}') continue # upload to database val_dict['content_en'] = content_en try: insert_translated(dt, val_dict) except Exception as e: - logging.warning(f'error when sending translated content to database: {e}') + print(f'error when sending translated content to database: {e}') continue - logging.info('translated content') - logging.warning('stopped translating') + print('translated content') + print('stopped translating') if __name__ == '__main__': load_dotenv() - setup_logging() continously_translate() - # later try to set all empty strings back to null and retranslate failed...