クリップボードから直接Google翻訳を実行するPythonプログラムを作ってみた

論文を効率的に読みたい

こんにちは、hatpoppoです。

今回は、効率的にGoogle翻訳を実行するPythonプログラムを作ったので、その紹介をしてみたいと思います。

なぜ、作ったのか

僕は、日々たくさん新しい資料が出てくるDeep Learning 分野の論文をよく読むのですが、
その際、英語が読めないため、頻繁に Google 翻訳 を使ってます。

何度も使うので、やっぱり効率性を高めたい!と思い、
Google 翻訳を効率的に使うための手順として、以前はこんな感じで使っていました。

  1. ウィンドウの左側に論文右側にGoogle翻訳ページ を表示。
  2. 論文から、5000文字以上コピーしないように選択してコピー。
  3. コピーをすぐさま、Google翻訳にペーストして、翻訳結果を読む。
  4. わかりずらい日本語があれば、英語を見て、自ら翻訳し直す。
  5. これを繰り返して、論文を読み進める。

この手順では、1〜3までの手順が「無駄」で効率性に欠けていました。

2. について、5000文字制限というのは非効率であり、それ以上の文字数を一気に翻訳したい時があります。より多くの文章を一度に翻訳できたらと思いました。
3. について、ショートカットキーがあるとはいえ「Ctrl + c」と「Ctrl + v」を押すのは面倒で、翻訳する文章が長いほど、この回数は増えていってしまうので、なくしたいと思いました。

なので、効率性を上げるために、今回作るプログラムで必要な機能を以下にまとめてみます。

  • 1度の翻訳における、5000文字制限をなくしたい
  • コピー&ペーストの手間を省きたい
  • Google翻訳ページのウィンドウを開けたくない

作ったプログラム

今回のプログラムはPythonで作成していて、完成したプログラムの機能を以下にまとめます。

  • 使用時は、プログラムを実行するだけ。
  • 1度のコピーで、5000文字以上の翻訳が可能
  • コピーされたテキストを、一文ずつに分割して、一文一文それぞれで翻訳する。
  • クリップボードから、テキストを取得し、翻訳結果をクリップボードに上書きする。
  • 論文をコピーして、数秒待った後にペーストしたら、翻訳結果が貼り付けられる。
  • 翻訳結果は、英語一文、その翻訳結果、一行あけて、次の英語と翻訳。

プログラムはこんな感じです。

Pythonは、ライブラリが豊富で、やりたいと思ったことをすぐ実現できるので、素晴らしいプログラミング言語だと思っています!

ライブラリについては、今回はこんな感じで利用しました。

Pythonライブラリ名機能と用途
sleep指定時間だけ、プログラムを一時停止できます。
tqdm翻訳の進行状態を表示します。100%になったら翻訳完了です。
pyperclipクリップボードから情報を取得したり、上書きしたりできます。
googletrans.TranslatorGoogle翻訳を実行して、翻訳結果を出力します。

プログラムの概要としては、
クリップボードのテキスト情報に変化があるか調べ、
変化があったら、Translatorで翻訳開始します。
翻訳には数秒かかるため、その進捗をtqdmで表示し、
翻訳完了すれば、進捗100%となって、
クリップボードに翻訳結果を上書きします。
上書きしているので、あとはペーストするだけで、翻訳結果を貼り付けできます!

さらに、翻訳結果は以下のように、一文一文分割しているため、
翻訳の日本語がおかしくて、英語を読む必要がある場合は、とても便利です!

最後に

今回は、効率的に論文を読むために、Pythonを用いたGoogle翻訳プログラムを作ってみました。
工夫したところとしては、
Google翻訳ページを開けることなく、クリップボード上で自動的に翻訳を実行してくれるところと、
翻訳結果を英語一文とその翻訳結果を繰り返した構造にしたところです。

翻訳結果をこうすることで、Google翻訳の翻訳結果がわかりずらい日本語となっていても、翻訳結果のすぐ上に元英語があるので、単語の関係性を逐次見ながら翻訳し直す時にとても便利になりました。

ただ、このプログラムは完璧ではなく
論文中に出てくる変数や数式には弱いです…

これに関しては、Google翻訳の弱点(そもそもPDFにおける文章構造が問題)でもあるため、
これを改善できたら、論文を読むスピードがさらに向上できるのではないかと思っています。

なので、今後もプログラムのアップデートを続けていきたいと思います!

まぁ、英語が読めるようになれば、何の問題もないんですがね(笑)

コメント