๋ฐ์ํ
ํ์ด์ฌ ๊ฐ์ํ๊ฒฝ conda ์ด์ฉ : 3.7๋ฒ์
ํธํ googletrans๋ผ์ด๋ธ๋ฌ๋ฆฌ : 4.0.0-rc1
์ผ๋ก ๊ตฌ์ฑํ๋ฉด ์๋ฌ ๋์ง ์๊ณ ์๋ ์๋จ
ํ์ด์ฌ์ผ๋ก ๊ตฌ๊ธ์ ๋ฒ์ญ API๋ฅผ ์ด์ฉํ์ฌ ๋ฒ์ญ์ ํด๋ณผ ์ ์๋ค๋ ๊ฒ์ ์๊ฒ๋จ
ํ๋ฌ์ค ํ : ์ฃผํผํฐ ๋ด์ฉ์ html๋ก ๋ณ๊ฒฝ์ ์ํ ์ ์ปค๋งจ๋์ฐฝ์
jupyter nbconvert ๋ณํํ ํ์ผ๋ช
.ipynb --to html
In [1]:
print('hello world')
hello world
In [2]:
import googletrans
In [3]:
translator = googletrans.Translator()
In [5]:
str1 = "ํ์ ๋ฌธ์๋ฅผ ์๋๋ฒ์ญํ๋ ํ๋ก๊ทธ๋จ"
str2 = "ํ๊ตญ์ ์ง๊ธ ๋น๊ฐ ์ต๋๋ค."
str3 = "I am funny"
rlt1 = translator.translate(str1, dest='en', src='ko')
rlt2 = translator.translate(str2, dest='en', src = 'auto')
rlt3 = translator.translate(str3, dest='ko', src = 'en')
print(f"{str1} => {rlt1}")
print(f"{str2} => {rlt2}")
print(f"{str3} => {rlt3}")
print('\n')
print(f"{str1} => {rlt1.text}")
print(f"{str2} => {rlt2.text}")
print(f"{str3} => {rlt3.text}")
ํ์ ๋ฌธ์๋ฅผ ์๋๋ฒ์ญํ๋ ํ๋ก๊ทธ๋จ => Translated(src=ko, dest=en, text=Program to automatically translate Korean documents, pronunciation=None, extra_data="{'confiden...")
ํ๊ตญ์ ์ง๊ธ ๋น๊ฐ ์ต๋๋ค. => Translated(src=ko, dest=en, text=Korea is raining now., pronunciation=None, extra_data="{'confiden...")
I am funny => Translated(src=en, dest=ko, text=๋๋ ์ฌ๋ฏธ์๋ค, pronunciation=naneun jaemiissda, extra_data="{'confiden...")
ํ์ ๋ฌธ์๋ฅผ ์๋๋ฒ์ญํ๋ ํ๋ก๊ทธ๋จ => Program to automatically translate Korean documents
ํ๊ตญ์ ์ง๊ธ ๋น๊ฐ ์ต๋๋ค. => Korea is raining now.
I am funny => ๋๋ ์ฌ๋ฏธ์๋ค
In [6]:
print(googletrans.LANGCODES)
print(googletrans.LANGUAGES)
{'afrikaans': 'af', 'albanian': 'sq', 'amharic': 'am', 'arabic': 'ar', 'armenian': 'hy', 'azerbaijani': 'az', 'basque': 'eu', 'belarusian': 'be', 'bengali': 'bn', 'bosnian': 'bs', 'bulgarian': 'bg', 'catalan': 'ca', 'cebuano': 'ceb', 'chichewa': 'ny', 'chinese (simplified)': 'zh-cn', 'chinese (traditional)': 'zh-tw', 'corsican': 'co', 'croatian': 'hr', 'czech': 'cs', 'danish': 'da', 'dutch': 'nl', 'english': 'en', 'esperanto': 'eo', 'estonian': 'et', 'filipino': 'tl', 'finnish': 'fi', 'french': 'fr', 'frisian': 'fy', 'galician': 'gl', 'georgian': 'ka', 'german': 'de', 'greek': 'el', 'gujarati': 'gu', 'haitian creole': 'ht', 'hausa': 'ha', 'hawaiian': 'haw', 'hebrew': 'he', 'hindi': 'hi', 'hmong': 'hmn', 'hungarian': 'hu', 'icelandic': 'is', 'igbo': 'ig', 'indonesian': 'id', 'irish': 'ga', 'italian': 'it', 'japanese': 'ja', 'javanese': 'jw', 'kannada': 'kn', 'kazakh': 'kk', 'khmer': 'km', 'korean': 'ko', 'kurdish (kurmanji)': 'ku', 'kyrgyz': 'ky', 'lao': 'lo', 'latin': 'la', 'latvian': 'lv', 'lithuanian': 'lt', 'luxembourgish': 'lb', 'macedonian': 'mk', 'malagasy': 'mg', 'malay': 'ms', 'malayalam': 'ml', 'maltese': 'mt', 'maori': 'mi', 'marathi': 'mr', 'mongolian': 'mn', 'myanmar (burmese)': 'my', 'nepali': 'ne', 'norwegian': 'no', 'odia': 'or', 'pashto': 'ps', 'persian': 'fa', 'polish': 'pl', 'portuguese': 'pt', 'punjabi': 'pa', 'romanian': 'ro', 'russian': 'ru', 'samoan': 'sm', 'scots gaelic': 'gd', 'serbian': 'sr', 'sesotho': 'st', 'shona': 'sn', 'sindhi': 'sd', 'sinhala': 'si', 'slovak': 'sk', 'slovenian': 'sl', 'somali': 'so', 'spanish': 'es', 'sundanese': 'su', 'swahili': 'sw', 'swedish': 'sv', 'tajik': 'tg', 'tamil': 'ta', 'telugu': 'te', 'thai': 'th', 'turkish': 'tr', 'ukrainian': 'uk', 'urdu': 'ur', 'uyghur': 'ug', 'uzbek': 'uz', 'vietnamese': 'vi', 'welsh': 'cy', 'xhosa': 'xh', 'yiddish': 'yi', 'yoruba': 'yo', 'zulu': 'zu'}
{'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'}
๋ฌธ์๋ฅผ ํ๊ธ๋ก ๋ฒ์ญํ๋ ์ฝ๋¶
In [7]:
from os import linesep
import googletrans
translator = googletrans.Translator()
read_file_path = r"Foreword on Impact.txt"
with open(read_file_path, 'r') as f:
readLines = f.readlines()
for lines in readLines:
rlt = translator.translate(lines, dest='ko', src='auto')
print(rlt.text)
์ถฉ๊ฒฉ์ ๋ํ ์๋ฌธ
ํ์ฌ ESG ํ๊ฐ
๋ฐฉ๋ฒ๋ก ์ด ์์ต๋๋ค
๊ทผ๋ณธ์ ์ผ๋ก ๊ฒฐํจ์ด ์์ต๋๋ค.์๊ฒ
๊ธ๊ฒฉํ ํ์๋กํฉ๋๋ค
๋ณ๊ฒฝ, ESG๊ฐ ํ์ํฉ๋๋ค
์ค์ ์ํฅ์ ์ธก์ ํ๊ธฐ ์ํด ์งํํ์ญ์์ค.
์ค๋๋ ESG๊ฐ ์ธก์ ํ๋ ๊ฒ : ํฌ์ ์ํ
ํ์ฌ ํ๊ฒฝ, ์ฌํ ๋ฐ ๊ฑฐ๋ฒ๋์ค (ESG)
๋ณด๊ณ ๋ ๊ธ์ ์ ์ธ ์ํฅ์ ๋ฒ์๋ฅผ ์ธก์ ํ์ง ์์ต๋๋ค
์ธ์์.๋์ , ๊ทธ๊ฒ์ ๋ฌ๋ฌ๋ฅผ ์ธก์ ํ๋ ๋ฐ ์ค์ ์ ๋ก๋๋ค
์ํ / ์์ต์ ๊ฐ์น.
๊ฐ๋ณ ํฌ์์?ESG์ ๋์ ๋งก๊ธด ์ฌ๋
๋๊ท๋ชจ ํฌ์ ๊ธฐ๊ด์ ์๊ธ?์๋ง๋
๊ทธ๋ค์ ๋์ด
๊ธฐํ ๋ณํ๋ฅผ ์
ํ์ํค๋ ํ์ฌ๋ ๋ ์ข์ง ์์ต๋๋ค.
์ด๊ฒ์ ๋ช
๋ฐฑํ ์๋
์๋์ฐจ ์ฐ์
.์ ๊ธฐ๊ฐ ๋ง์์๋ก ์๊ฐํ ์๋ ์์ต๋๋ค
์๋์ฐจ ์ ์กฐ์
์ฒด๊ฐ ํ๋งคํ๋ ์ฐจ๋, ์ด์ก์ ๋ฐฑ๋ถ์จ
๋ณผ๋ฅจ, ESG ์ ์๊ฐ ๋์์ง๋๋ค.๊ทธ๋ฌ๋ ์ด๊ฒ์ ์๋๋๋ค
์ฌ๋ก.ํ์ฌ๊ฐ ๊ณ์ํด์ ์ฝ๊ฐ ๊ฐ์ํ๋ ํ
์ดํํ๋ ๋์ ์ ์กฐ ์์
์ ๋ฐฐ์ถ
๊ฐ์ค ๊ฐ๊ณต ์ ์๋ ESG ๋ฑ๊ธ์ด ์ฌ๋ผ๊ฐ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค.
์ฐจ๋ ์ฌ์ฉ ์์ ๋ฐฐ์ถ๋์ 80-90%๋ฅผ ๋ํ๋
๋๋ค
์ด ์๋์ฐจ ๋ฐฐ์ถ๋ (ESG์ ๋ฒ์ 3์ ํฌํจ
๋ณด๊ณ ), ์ฌ์ฉ์ผ๋ก ์ธํด ์๋ชป๋ณด๊ณ ๋๋ ๊ฒฝํฅ์ด ์์ต๋๋ค.
๋นํ์ค์ ์ธ ๊ฐ์ ์ด๊ฑฐ๋ ์ ํ๋ณด๊ณ ๋์ง ์์์ต๋๋ค.
์ผ๋ถ ์์ ๋ฐ ๊ฐ์ค ํ์ฌ๊ฐ ์ ๋ ๋์์ง ์๊ธฐ๊ฐ ์ฝ์ต๋๋ค.
"ํ๊ฒฝ ์ํฅ"์ ๋ํ ํ
์ฌ๋ผ๋ณด๋ค.
“[ESG ๋ฑ๊ธ] ์์คํ
์ ๊ฐ์ฅ ์ธ์์ ์ธ ๊ธฐ๋ฅ์
๊ธฐํ ๋ณํ์ ๋ํ ํ์ฌ์ ๊ธฐ๋ก์ด ๊ฑฐ์
ESG ์ฌ๋ค๋ฆฌ๋ฅผ ์ฌ๋ผ๊ฐ๊ฑฐ๋ ์ฌ์ง์ด
์ ํ ์์๋ฅผ ๊ณ ๋ คํ์ญ์์ค.”
ESG Mirage : Bloomberg Businessweek
ESG๊ฐ ํ์ํ ๊ฒ : ํ์ฌ ์ํฅ
์ฐ๋ฆฌ๋ ์ธก์ ํ๊ณ ๋ฉด๋ฐํ ์กฐ์ฌํ๋ ์์คํ
์ ๋ง๋ค์ด์ผํฉ๋๋ค.
์ง๊ตฌ์ ์ค์ ๋ก ๊ธ์ ์ ์ธ ์ํฅ์ ๋ฏธ์น๋ฏ๋ก ์์ฌ์ ์ฌ์ง๊ฐ ์์ต๋๋ค
๊ฐ๋ณ ํฌ์์๋ ํ์ฌ๋ฅผ ์ง์ํ๋๋ก ์ ํํ ์ ์์ต๋๋ค
๊ธ์ ์ ์ธ ๋ณํ๋ฅผ ๋ง๋ค๊ณ ์ฐ์ ์์๋ฅผ ์ ํ ์ ์์ต๋๋ค.
์ ํ ์ ๋ฉด์์ ํ์ฌ๋ ์ฌ์ฉํด์ผํฉ๋๋ค.
์ค์ ๋ฐ์ดํฐ๊ฐ ์๊ฒฉ์ผ๋ก ์คํ ๊ฐ๋ฅํ ๊ณณ๋ง๋ค ์ค์ ๋ฐ์ดํฐ
์ค์ ๋์ ์ถ์ ์น๊ฐ ์ ๊ณต๋๋ ์์
์ธ๋ฌผ.์ด๊ฒ์ ์๋ ์ฐจ๋ "์ฌ์ฉ ์์"์
๋๋ค.
๋๋ถ๋ถ์ ์๋ช
์ฃผ๊ธฐ๋ฅผ ์ค๋ช
ํ๋ ๋ฐฐ์ถ
๋ฐฐ์ถ.ํ์ ์ฐจ๋์ ๋ํ ์๋์ฐจ ์ ์กฐ์
์ฒด์ ์ถ์
๋ง์ผ๋ฆฌ์ง์ ์๋ช
์ฐ๋ฃ ์๋น๋ ํฌ๊ฒ ๋ค๋ฆ
๋๋ค
๊ทธ๋ฆฌ๊ณ ์ค์ ๋ฐ์ดํฐ๋ฅผ ๊ฑฐ์ ๋ฐ์ํ์ง ์์ต๋๋ค.์๋์ฐจ ์ ์กฐ์
์ฒด ์์ฃผ
์ด ๋ฐ์ดํฐ์ ์ก์ธ์ค ํ ์ ์์ง๋ง ๊ณต๊ฐํ์ง ์์ต๋๋ค.
ํ์ฌ ์ง์์ ๊ฒฝ์ฐ ํ์์ ์
๋๋ค.
๊ทธ๋ค์ด ์๋ฐฉํ ์์๋ ์์คํ
์ผ๋ก ์ ๋์ฐ ๋ฐ์๋ค๋
์ด๋ค ์ข
๋ฅ์ ์ฐจ๋ณ, ๊ทธ๋ค์ ์์ ์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
์ง์ฅ๊ณผ ๊ทธ๋ค์ ์ ์ ํ๊ฒ ๋ณด์์๋ฐ์ต๋๋ค
๊ทธ๋ค์ ๊ณ ์ฉ์ฃผ๊ฐ ์ํ๋ ๊ฒฝ์ฐ ์๋นํ ์์น.
๋ง์ ESG ๋ฑ๊ธ์ ๋ค์๊ณผ ๊ฐ์ด ํ๊ฐํฉ๋๋ค.“์ด ESG ๋ฌธ์ ๋
ํ์ฌ์ ์์ต์ฑ?”์ฐ๋ฆฌ๋ ๊ทธ ์์คํ
์ด ํ์ํฉ๋๋ค
“์ด ํ์ฌ์ ์ฑ์ฅ์
์ธ์์ ๊ธ์ ์ ์ธ ์ํฅ?”
ESG์ ์งํ๋ ์นํธํด์ผํฉ๋๋ค
๊ธฐ๊ด ํฌ์์, ํ๊ฐ ๋ํ์ฌ, ๊ณต๊ณต ํ์ฌ
๊ทธ๋ฆฌ๊ณ ์ผ๋ฐ ๋์ค.์ธ์์ a
์ค์ง์ ์ธ ๊ธ์ ์ ์ธ ์ํฅ, ์ฐ๋ฆฌ๋ ESG๋ฅผ ์ธ๊ธํ์ง ์์ ๊ฒ์
๋๋ค.
์ด ๋ณด๊ณ ์.๋์ , ์ฐ๋ฆฌ๋ ์ํฅ์ ๋ํด ์ด์ผ๊ธฐ ํ ๊ฒ์
๋๋ค.
์๋ก์ด ํ์ผ์ ์ ์ฅํ๊ธฐ¶
In [9]:
with open(read_file_path, 'r') as f:
readLines = f.readlines()
write_file_path = r"์๋กญ๊ฒ ๋ฒ์ญ๋ ํ์ผ.txt"
for lines in readLines:
rlt = translator.translate(lines, dest='ko', src='auto')
# print(rlt.text)
with open(write_file_path,'a', encoding="UTF8") as f:
f.write(rlt.text + '\n')
๋ฐ์ํ