概要
pythonでの自然言語処理って仕事でもあんまり使わないし,今後使うことがあるのかも疑問だったが,まさかプライベートで使いたくなるとは…
とある方が作成されたソフトでも翻訳はしてくれるのだが,正直ポンk...
というわけでもっといい機能がないかと探していきついたのがM2M_100.
導入の仕方とか,ほかのものとかを忘備録としてメモしておきます.
翻訳ツールについて
翻訳ツールは今はいろいろ利用できます.Google翻訳なんかは一番有名なのかな?
最近ではdeepl翻訳なんかもありますね.
どうやらニューラル機械翻訳なるものが内部では動いているようですが,私も詳しくはわかりません.
APIの利用
できれば自動翻訳をしてほしいというのが今回の思うところ.
まず考えたのは,Google翻訳でもdeepl翻訳でもいいからpythonに文字列投げて,webサービスのAPI使って訳させるということ.
ただ調べるとそこそこお値段しますね…
できればタダでやりたいという貧乏症を発揮して他の案を探してみる.
Pythonの翻訳パッケージ
たぶん一番簡単に利用できるのがgoogle_translator.インストールは下記の通り.
pip install google_translator
ただこれ非常に翻訳性能が悪く,明らかに日本語から英語への翻訳が変.そもそも日本語の翻訳が難しいとかいう問題もある気もするけど…
他にもgoogletransとか似たような名前のパッケージはあるけど,他は何故か動作確認できず.
deeplもあったけど,こっちも動かなかった.
既存の翻訳モデルを持ってくる.
そうなると自分でモデル作るってか?ってなったんですが,非常に難しいのでさすがにやめ.
ならばすでに出来上がっているモデルを拝借して使えばいいのではという考えに.
その中で見つけたのがM2M_100.
Facebookさんが作った翻訳モデルみたいですね.とりあえずこれ使うかーとなったんですが,どうやって持ってくるのか? 色々さがしてたら以下のページを発見.
これ使えばいいんだなということでやってみた.
easyNMTのインストール
easyNMTを使うとM2M_100だけじゃなく,他の翻訳モデルを使うことができる模様.
まずはM2M_100でテストするとして,導入してみます.
fastTextのインストール
最初にやらないといけないのがfastTextのインストール.
どうやらgitからソースコード持ってきてビルドしてやらないとダメらしい.
そのためにgcc-g++やらmakeやら必要なのですが,とりあえずcygwinで入れてしまうことに.
とりあえず以下を参考にしました.
そしてgitのインストール.ここを参考に.
これでやっとコマンドプロンプト上でgitからソースコードを持ってきてビルドすることができるようになった.
以下を参考に進める.
コマンドは
git clone https://github.com/facebookresearch/fastText.git cd fastText make pip install .
easyNMTのインストール
これは単純に
pip install easynmt
としてあげればOK.
動作確認
以下でテスト.
from easynmt import EasyNMT model = EasyNMT('mbart50_m2m') model.translate('これはテストです', target_lang='en')
Jupyter上で行うとIProgress not foundとでてJupyterとipywidgetsをアップデートせよとメッセージが出たが,コマンドプロンプトで行うと回避できる.
もしJupyter上で行いたい場合,どうやらnodejsのインストール,jupyter lab使うならjupyterlabextension,jupyter notebook使うならnbextensionを導入する必要があるらしい.
なお実行には約2GBのデータのダウンロードが起こるようなので注意.そこそこ時間がかかる.
初回だけではなさそう.
結果は以下の通り:
翻訳精度自体は他のモデルとも比較して確認したいから時間かかりますが,ひとまずこれで自動翻訳の第一歩は踏み出せたかなと.