Argos Translateを使えば、Pythonでオフライン翻訳ができると聞いたので、早速テストしてみた。
まずはモジュールのインストール
pip install argostranslate
GitのExampleにある様にスクリプト書けば動く。
import argostranslate.package import argostranslate.translate from_code = "jp" to_code = "en" # Download and install Argos Translate package argostranslate.package.update_package_index() available_packages = argostranslate.package.get_available_packages() package_to_install = next( filter( lambda x: x.from_code == from_code and x.to_code == to_code, available_packages ) ) argostranslate.package.install_from_path(package_to_install.download()) # Translate translatedText = argostranslate.translate.translate("こんにちは、世界!", from_code, to_code) print(translatedText)
翻訳用のモデルは初回時にユーザーディレクトリに勝手にダウンロードされるのだが、これだと、いまいちファイルの取り回しがめんどくさい。
そこで、自分でダウンロードして、しかるべき場所に配置・管理する方法を調べてみた。
1.翻訳用のモデルをArgos open techからダウンロード。
https://www.argosopentech.com/argospm/index/
2.とりあえず、和英と英和用のものを入手(translate-ja_en-1_1.argosmodel、translate-en_ja-1_1.argosmodel)し、スクリプトと同じ階層に配置
3.配置したモデルを利用する形にExampleスクリプトを改造。
import argostranslate.package import argostranslate.translate from_code = "jp" to_code = "en" jpen_model = "./translate-ja_en-1_1.argosmodel" #日>英用モデル enjo_model = "./translate-en_ja-1_1.argosmodel" # 英>日用モデル argostranslate.package.install_from_path(jpen_model) argostranslate.package.install_from_path(enjo_model) # Translate translatedText = argostranslate.translate.translate("こんにちは、世界!", from_code, to_code) print(translatedText)
長文の翻訳は厳しいし、実用的とはまだ言えないけど、遊ぶ分には問題ないし、お金を気にぜず使えるのは嬉しい!