์๋
ํ์ธ์ ์ ๋ํฐ ์ด๋ณด ๊ณ ๋ฑํ์ ์ธ์ฌ๋๋ฆฝ๋๋ค.
์ด ํ๋ณด๊ธ ์ฌ๋ ธ๋๋ฐ ๋ฐ์์ด ์ข์์ ํ ๋ฒ ๊ฐ๋ฐ์ผ์ง๋ ์ฌ๋ ค๋ด
๋๋ค.
ํ์ฌ ํ๋ก์ ํธ ์์ํ ์ง๋ ์ฝ ํ๋ฌ ๋์์ต๋๋ค.
์ผ๋จ์ ์ ๋ ๋ณด๋ค ๋ฐ์ ๋ ์ ์ด๋ผ๋ฉด ๋์ ๋ง๊ณผ ์์ด ๋ฒ์ญ์ด ์ถ๊ฐ๋์์ต๋๋ค.
์ด์ฒ๋ผ ์์์ด๋ ํ
์คํธ๋ฅผ ํตํด ๋์์ ๋ฐ์ ์ ์๋๋กํ์์ต๋๋ค.ย
๋ํ ๋ค์ ๋ณ๊ฒฝ์ ์ ์ธํฐํ์ด์ค๊ฐ ๊ณ์ ๋์์ต๋๋ค.
์ด๋ฐ ์์ผ๋ก ์ฐ๊ตฌ๊ฐ ์๋ ๊ฑด์ค์ข
๋ฅ๋ ์๋ฌผ์ ๊ฐ ๊ฑธ๋ ค์๊ณ ์ ํ์ด ์๋๋๋ค.
ํ์ง๋ง ์ฐ๊ตฌ๋ฅผ ํตํด ํด๊ธํ๋ฉด ์๋ฌผ์ ๊ฐ ํ๋ฆฌ๊ณ ์ ํ์ด ๋ฉ๋๋ค.ย
๋ ํ๋์ ์ค์ ๋ณ๊ฒฝ์ ์ ์์ด ๋ฒ์ญ์ด ๋์๋ค๋ ๊ฒ๋๋ค.
์ ๋ ํ๋ํ๋ ๋ฒ์ญ์ด ์ฐฎ์์ ํ์ด์ฌ์ผ๋ก ํ๋ก๊ทธ๋จ ๋ง๋ค์๋๋ฐ
# ์์ ์ฝ๋์ด๋ฏ๋ก googletrans ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ pandas ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ํ์ํฉ๋๋ค.
from googletrans import Translator, LANGUAGES
import pandas as pd
# Google ๋ฒ์ญ๊ธฐ๋ฅผ ์ด๊ธฐํํฉ๋๋ค.
translator = Translator()
# ํ๊ตญ์ด ํ
์คํธ๋ฅผ ์์ด์ ์ผ๋ณธ์ด๋ก ๋ฒ์ญํ๋ ํจ์์
๋๋ค.
def translate_text(text, dest_language, max_retries=10):
ย ย """
ย ย ์ฃผ์ด์ง ํ
์คํธ๋ฅผ ์ง์ ๋ ์ธ์ด๋ก ๋ฒ์ญํฉ๋๋ค. ์คํจํ ๊ฒฝ์ฐ ์ต๋ max_retries๋ฒ ์ฌ์๋ํฉ๋๋ค.
ย ย :param text: ๋ฒ์ญํ ํ
์คํธ (str)
ย ย :param dest_language: ๋์ ์ธ์ด ์ฝ๋ (์: 'en' for English, 'ja' for Japanese)
ย ย :param max_retries: ์ต๋ ์ฌ์๋ ํ์ (๊ธฐ๋ณธ๊ฐ: 3)
ย ย :return: ๋ฒ์ญ๋ ํ
์คํธ (str) ๋๋ ์คํจ ์ None
ย ย """
ย ย retry_count = 0
ย ย while retry_count < max_retries:
ย ย ย ย try:
ย ย ย ย ย ย # ํ
์คํธ๋ฅผ ๋ฒ์ญํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํฉ๋๋ค.
ย ย ย ย ย ย translated = translator.translate(text, dest=dest_language)
ย ย ย ย ย ย return translated.text
ย ย ย ย except Exception as e:
ย ย ย ย ย ย # ๋ฒ์ญ ๊ณผ์ ์์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฉด ์ฌ์๋ ํ์๋ฅผ ์ฆ๊ฐ์ํต๋๋ค.
ย ย ย ย ย ย print(f"Retry {retry_count + 1}/{max_retries}. Error: {e}", "์๋ณธ:", text)
ย ย ย ย ย ย retry_count += 1
ย ย # ์ต๋ ์ฌ์๋ ํ์๋ฅผ ์ด๊ณผํ ๊ฒฝ์ฐ
ย ย print(f"Failed to translate after {max_retries} attempts.", "์๋ณธ:", text)
ย ย return None
# ๋ฒ์ญํ ํ๊ตญ์ด ํ
์คํธ ์์์
๋๋ค. ์ด ๋ฆฌ์คํธ๋ ์ฌ์ฉ์๊ฐ ์ ๊ณตํ๋ ํ๊ตญ์ด ๋ฌธ์์ด์ ํฌํจํ ๊ฒ์
๋๋ค.
korean_texts = "์๋กํ๊ธฐ-1010101001011010-ํฉํ ๋ฆฌ ์ปดํผ๋ -1010101001011010-๋ถ๋ฌ์ค๊ธฐ"
korean_texts = korean_texts.replace("\r\n", "\\r\\n")
korean_texts=korean_texts.split("-1010101001011010-")
unique_texts = []
[unique_texts.append(item) for item in korean_texts if item not in unique_texts]
# ๋ฒ์ญํ ํ
์คํธ ๋ชฉ๋ก ์
๋ฐ์ดํธ
korean_texts = unique_texts
# ๋ฒ์ญ ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํ ๋์
๋๋ฆฌ์
๋๋ค. ์ด๊ฒ์ ์ต์ข
๋ฐ์ดํฐํ๋ ์ ์์ฑ์ ์ํ ์ด๊ธฐ ๊ตฌ์กฐ๋ฅผ ์ค์ ํฉ๋๋ค.
translations = {'key': [], 'ko': korean_texts, 'en': [], 'jp': []}
# ๊ฐ ํ๊ตญ์ด ํ
์คํธ์ ๋ํด ์์ด์ ์ผ๋ณธ์ด๋ก ๋ฒ์ญ์ ์๋ํ๊ณ , ๊ฒฐ๊ณผ๋ฅผ ๋์
๋๋ฆฌ์ ์ถ๊ฐํฉ๋๋ค.
for ko_text in korean_texts:
ย ย a=translate_text(ko_text, 'en')
ย ย b=translate_text(ko_text, 'ja')
ย ย print("์๋ณธ:",ko_text,"en:",a ,"jp:",b)
ย ย translations['key'].append(a)
ย ย translations['en'].append(a) ย # ์์ด๋ก ๋ฒ์ญ
ย ย translations['jp'].append(b) ย # ์ผ๋ณธ์ด๋ก ๋ฒ์ญ
print(len(translations['key']), len(translations['ko']), len(translations['en']), len(translations['jp']))
# ๋ฒ์ญ ๊ฒฐ๊ณผ๋ฅผ ์ฌ์ฉํ์ฌ pandas DataFrame์ ์์ฑํฉ๋๋ค.
df_translations = pd.DataFrame(translations)
# ์ต์ข
์์ฑ๋ DataFrame์ CSV ํ์ผ๋ก ์ ์ฅํฉ๋๋ค. ํ์ผ ๊ฒฝ๋ก๋ ํ๊ฒฝ์ ๋ง๊ฒ ์กฐ์ ํด์ผ ํฉ๋๋ค.
df_translations.to_excel("C:/Users/j0106/OneDrive/๋ฐํ ํ๋ฉด/์ ํด๋ (2)/translations.xlsx",index=False)
print("๋")
# ์ฃผ์: ์ ์ฝ๋๋ ์คํ ๊ฐ๋ฅํ ํ๊ฒฝ์์ ๊ตฌ๊ธ ๋ฒ์ญ API์ pandas ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์ ์์ ๋ ์คํํด์ผ ํฉ๋๋ค.
์ด๋ ๊ฒ ์์
ํ์ผ๋ก ๋์ค๋๋ฐ ์ด๊ฑธ ๋ฐ์ ์ฌ์ง์ฒ๋ผ jsonํ์ผ๋ก ๋ฐ๊ฟ์ค๋๋ค.
์ ๊ทธ๋ฆฌ๊ณ ๊ฒ์ ๋ฆฌ์์ค๋ค์ ์์
์คํ ์ดํ๊ณ AI ๊ทธ๋ฆผ ์ด์ฉํ๊ณ ์์ต๋๋ค. (์ ๊ฐ ๊ทธ๋ฆผ์ ๋ชป๊ทธ๋ ค์ ใ
ใ
)
์ด๋ ๊ฒ ๋ฝ์ ๋ค์์ ํธ์ง ํ ๊ฒ์์ ์ ์ฉํฉ๋๋ค.
์ง๊ธ๊น์ง ๊ฐ๋ฐ์ผ์ง ๋ด์ฃผ์
์ ๊ฐ์ฌํ๊ณ ๋ค์ ๊ฐ๋ฐ์ผ์ง๋ก ์ฐพ์์ค๊ฒ ์ต๋๋ค!!
๊ฐ์ถ๋๋ ๋ค
์ฌ ์ํ๋๋ฐ ใ
์ณ์งํผํฐ๋ก AI์ด๋ฏธ์ง ์์ฑํ๋ค๊ฐ๋ ์ธ์ ์ง๋๋ค.. ๋ค๋ฅธ๊ฑฐ ใ ์ฆใ