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)
長文の翻訳は厳しいし、実用的とはまだ言えないけど、遊ぶ分には問題ないし、お金を気にぜず使えるのは嬉しい!