[Python]自動でオリジナル英単語[中国語]リストを作ってみる。
1.自動で単語リストを作る
ある日思いました、市販の単語集に載っている単語があまり面白くないと。politicsやらpollutionやら、いつ使うねん!というツッコミからinspireされてタイトルにあるプログラムを作ろうと思い今に至ります。
気になった日本語の単語のリストを指定の外国語[英語or中国語]に翻訳し、その一覧をcsvファイルに出力するプログラムを作ります。
日本語から英語への翻訳モジュールを改造して、中国語にも対応できるようにします。
2.翻訳モジュール(日本語から英語or中国語)
言語を選択する関数を新規に作成します。返す値は言語コードになり、その値をtran_ja_toen_or_cn()のlang引数に渡します。
from googletrans import Translator
from sys import exit
def chose_lang():
lang_mode = int(input("言語を選択してください[1:英語/2:中国語[簡体字]"))
if lang_mode == 1:
lang = "en"
elif lang_mode == 2:
lang= "zh-cn"
else:
print("指定の言語番号を選択してください")
exit()
return lang
def trans_ja_to_en_or_cn(lang, context):
translator = Translator()
trans_ja_to_select_lang = translator.translate(context, src="ja", dest=lang)
translated_text = trans_ja_to_select_lang.text
return translated_text
if __name__ == "__main__":
lang = chose_lang()
context = input("つぶやく内容を入力してください:")
print(trans_ja_to_en_or_cn(lang, context))
実行結果
言語を選択してください[1:英語/2:中国語[簡体字]2
つぶやく内容を入力してください:私はあなたのことが好きです
我喜欢你
3.完成形
2で作成したモジュールを用いて、単語リスト生成プログラムを作成します。
今回は下記コード内にある9つの単語を選んでみました。どの日本語も身近なモノだと思います。
from translate import trans_ja_to_en_or_cn
from translate import chose_lang
from datetime import datetime
#翻訳したい日本語のリスト
japanese_words = ["りんご", "プログラミング", "アマゾン",
"グーグル", "観葉植物", "水筒",
"コオロギ", "ネクタイ", "ベルト"
]
#日付をファイル名に使う
date = datetime.now()
date = date.strftime("%Y%m%d")
#言語選択
lang = chose_lang()
#ファイル名を日付_言語コード.csv
file_name = "{0}_{1}.csv".format(date, lang)
with open(file_name, "w", encoding="utf-8") as f:
for ja_word in japanese_words:
japanese = ja_word
foreign_lang = trans_ja_to_en_or_cn(lang, ja_word)
row_data = "{0},{1}\n".format(japanese, foreign_lang)
f.write(row_data)
print("翻訳完了したよ~( ´ ▽ ` )ノ ")
4.実行結果
英語
中国語(簡体字)