【Python】gooletransを使って自動翻訳をやってみる。

新米太郎
新米太郎

皆さんこんにちは新米です。

今回は、Google翻訳APIのgoogletransを用いて自動翻訳する方法を紹介します。

私の開発環境
Mac OS 11.3.1
Python 3.8.10

 

まずは、パッケージをインストールしましょう。

Pythonを書く前にパッケージをインストールしましょう。

⚠️最新版ではない場合はアンインストール

以前に「googletrans」をインストールした方はバージョンが最新になっていない場合があります。バージョンが4.0.0-rc1以上でないと正常に動かない場合があるので一度アンインストールしましょう。

pip3 uninstall googletrans

 

>>詳細はこちら

googletransをインストール

Macならターミナル、Windowsはコマンドプロンプトで以下を実行

pip install googletrans==4.0.0-rc1

又は

pip3 install googletrans==4.0.0-rc1

どちらかを実行

googletransのバージョンを確認

pip3 list | grep google

 

例)grepで検索をかけて表示されていればインストール済み

user@computer % pip3 list | grep google
google-api-core 1.30.0
google-api-python-client 2.8.0
google-auth 1.31.0
google-auth-httplib2 0.1.0
googleapis-common-protos 1.53.0
googletrans 4.0.0rc1



チュートリアル:自動翻訳する方法

短いコードで自動翻訳が可能です。

src=’en’ は、元の言語が英語。
dest=’ja’ は、日本語へ翻訳する。と言う意味です。
ちなみにsrcはsource(元)、destはdestination(行き先、宛先)の略です。


from googletrans import Translator

tr = Translator()
result = tr.translate("hello", src="en", dest="ja").text
print(result)

実行

user@computer % python3 sub.py
こんにちは

言語一覧

英語から日本語に翻訳する以外にも例えば、、

英語→フランス語
日本語→ドイツ語
など言語指定をすれば翻訳が可能です。(Google様 優秀!)

☆googletransで使える国名のコードのリンクを載せておきます。
>>対応している国名コード一覧はこちら

翻訳ファイルを作成

Pythonを実行すると英文ファイルを翻訳してファイルを作成するプログラミングをやってみましょう。

【処理の流れ】
翻訳したい英文ファイルを指定→日本語に翻訳→ファイル作成

 

これから紹介するコードは私が作成したコードです。
もっと綺麗に簡潔に書ける箇所があれば修正してみて下さい。(笑)

# 英語のファイルを選択 → 日本語に翻訳 → テキスト化
from googletrans import Translator
import os

def main():
  english_file = input('翻訳したい英語ファイルのパスを入力して下さい>>')
  while True:
    if not os.path.isfile(english_file):
      english_file = input('ファイルが存在しません。再度入力して下さい>>')
    else:
      break
  translation(english_file)

def translation(file_path):
  with open(file_path) as f:
    lines = f.readlines()
    f.close()

  tr = Translator()
  try:
    for line in lines:
      # 1行ずつ日本語に翻訳
      result = tr.translate(line, src="en", dest="ja").text
      writing_translation(result)
    print('翻訳ファイルを作成しました。')
  except Exception as e:
    print(e)

# 1行づつ翻訳文を書き込む
def writing_translation(result):
  path = './ja.txt'
  f = open(path, 'a')#追加モード
  f.write(result + '\n')#改行
  f.close()

if __name__ == "__main__":
  main()

 

例)今回翻訳するファイル
📁 en.txt

I have a pen
I have an apple

実行

python3 main.py
翻訳したい英語ファイルのパスを入力して下さい>>en.txt
翻訳ファイルを作成しました。

📁作成されたja.txtの中身

私はペンを持っています
りんごを持っています

※from googletrans import Translatorで警告が出るかもしれませんが気にしないで大丈夫です。
処理は正常に動きます。

まとめ

いかがだったでしょうか。
冒頭でも話しましたが、最新バージョンのgoogletransをインストールしておきましょう。

紹介したコードをお好みにアレンジしてみて下さい!

新米太郎
新米太郎

最後まで読んでくれてありがとう。



コメント

タイトルとURLをコピーしました