技術は使ってなんぼ

自分が得たものを誰かの役に立てたい

【Python】論文翻訳ツールに大幅なアップデートを施してみた【DeepL実装】

こんにちは。

皆様、GWはいかがお過ごしだったでしょうか。

私は家族全員で風邪っぽい症状が続き、家で静かに過ごしております。

なのでブログやツールの作成に打ち込むことにしました!

そしてついに、OpneAIのAPIを使った論文要約ツールが完成しました!

で、作りこむにあたって、色々大幅なアップデートを施したので、今回はアップデート内容の紹介をします。

既にGitでは論文要約まで実装したものをアップしていますので、使いたい方はどうぞ以下のGithubを参照ください。

github.com

以前の記事の論文補助ツールをベースにしていますが、内容がフォーマッターではなくなったので新しいリポジトリで作成しました。

yonesuke0716.hatenablog.com

ちょうど業務でも論文翻訳ツールを使う機会が増え、このツールをもっと実用化しようとかなり作りこみました。

今回の紹介する内容は以下となります。

それではよろしくお願いします。

1.README更新(Dockerコメント修正)

前回までの状態で、Dockerコマンドを入力すると、おそらくWindowsの方はエラーが出ていたと思います。

なので、Windowsにも対応したコマンドを用意しました。

Dockerコマンド

また毎回動かすたびにコンテナが増殖してしまうので、使い終わったら削除する「--rm」を引数につけるよう修正しました。

2.config.iniの仕様変更

以下のようになりました。

config.ini

変化点として「mode」という設定値が追加されました。

このmodeの設定値により、全部で6パターンの出力が可能になりました。

詳細は3章で紹介します。

翻訳も、今まではGoogle翻訳APIを使用しておりましたが、新たに「DeepL」のAPIにも対応できるようにしました。

www.deepl.com

DeepLのAPIについては4章で解説します。

そして一番の重要な変化点は、「要約」が出来るようになったことです。

以前の記事でChatGPTによる要約機能の実装は告知していましたが、ようやく実装できました。

こちらについては次回の記事で紹介しようと思います。

3.テキストファイルの出力方法の仕様変更(整形・翻訳・要約の選択制)

具体的には以下の6パターンです。

出力パターンチャート

従来は英文と翻訳(google)のみのパターンだけでしたが、実際の使用パターン(ユースケース)を考えるとこのぐらいできた方が良いのではと思い実装しました。

従来の設定値だとtrans=1, summary=0, deepL=0にします。

こちらをデフォルトとしてGithubにはアップしておきます。

テキストの整形文の出力結果も出せるようにしたのは、DeepL等の他の翻訳ツールにかけたい場合を想定しました。

いやAPIあるじゃん?と思うかもしれませんが、APIの無料利用は制限があるため、あまりたくさんの論文にかけることができません。

なので、整形だけでもしてくれたら嬉しいという時に選択していただけると良いかと思います。

4.翻訳ツールの仕様変更(google翻訳かDeepL翻訳の選択制)

さてGoogle翻訳APIは無料で使えるものの、翻訳精度という意味ではDeepLにはやや劣るイメージがあります。

よってDeepLにかけた翻訳結果が欲しい場合を想定して、DeepLのAPIも使えるようにしました。

こちらのAPIは無料版もありますが使用制限があるため、大量の論文にかけるとすぐに制限にかかってしまうので注意が必要です。

またAPI利用のためには、DeepLアカウントを作成し、APIキーの作成をする必要があります。

DeepL使用時はAPIキーが必要!

main.pyの「your API key」に、ご自身で作成したDeepLのAPIキーをコピペしてください。

また使った感想として、google翻訳APIに比べて処理時間が2~3倍程度長いイメージです。

そこまでめちゃくちゃ時間かかりませんが、google翻訳より遅いなぁと感じるかもしれません。

実行結果

git cloneしてREADMEの通りにDockerコマンドを叩くと以下のような画面になります。

実行結果

こちらはデフォルトのtrans=1, summary=0, deepL=0での実行結果です。

そしてoutputフォルダが生成され、以下のようになります。

outputフォルダ

出力結果のサンプルは従来通りです。

出力結果サンプル

まとめ

以上、今回の大きな変更点について紹介しました。

このツールで出来ることをまとめると、
・論文の整形ができる(pdf, txt)
・整形した結果に対して翻訳ができる
・翻訳ツールをgoogleかDeepLかを選択できる
・論文の要約ができる(こちらの詳細は次回ブログにて)

いやーノッてきたとはいえ、なかなかモリモリなツールになってきました。

これから実際に私も現場で使用しながら、今後改善点等見つかればアップデートしていく予定です。

それでは今回はここまで。