Edited at

新Google翻訳をAPIから呼び出して、未翻訳の技術書読みまくるマンになる(1)

More than 1 year has passed since last update.

こんにちはー。

11/16に新google翻訳が発表されました。

pythonから新Google translate apiを叩いて新翻訳結果が取得できましたので、やり方簡単にまとめます。

この内容はPython mini-Hack-a-Thon 第71回の発表物です。


前書き

基本的には、Googleの手順通りの内容です。英語バリバリ読める人はそちらを見てください。

(そもそも英語ができないからこんな記事を書いている!)

Google Cloud Pratform(GCP)に触ること自体が初なので、試行錯誤しながらガチャガチャいじった結果です、あまりきれいに纏まっていません。

もっとうまいやり方ご存知の方は、ぜひより良い記事ををお願いしますね。:blush:


環境


  • windows10

  • python3

  • pyCharm

  • cmd


手順


  1. GCPサインアップ


    1. クレジットカード登録必須?



  2. GCPでプロジェクトを作成(3.でプロジェクトIDが必要になる)

  3. GCPのAPIマネージャからGoogle Translate Api有効化


    1. デフォルトで有効?



  4. Cloud Translation API Premium Edition Beta Sign Up Formでプレミアムを申し込む



    1. こちらから飛べるフォーム

    2. 硬い内容の入力フォームです。ちと怖い・・・evil感出さないように素直に入力しました。:innocent:

    3. 2.で作ったプロジェクトNameとプロジェクトIDを入れる。

    4. フォームを送ると「Googleチームからすぐ連絡がいくぜ!」みたいなものが表示される



  5. 4日ぐらいしたらGoogle Pratformからメールがくる


    1. Your account is enabled for Cloud Translation Premium Edition

    2. 全然連絡来なかったので、rejectされたと思ってました

    3. プロジェクトのAPIがプレミアム状態になってるらしいんですが、どこから確認するか不明です。とにかく承認が下りたプロジェクトは消さないようにしてます。



  6. Apiマネージャからサービスアカウントキー(jsonファイル)を取得


    1. サービスアカウントキーの取得はこちらの記事を参考

    2. APIマネージャ->認証情報->認証情報を作成->サービスアカウントキー(参考画像は下にあります)

    3. うまくいけばjsonファイルをダウンロードできる




  7. cloud sdkをインストール


    1. コマンドプロンプトで初回セットアップ(認証)までを実行

    2. あまりよくわからず終わりましたが、基本的に gcloud auth list で何か表示できればOK



  8. pyCharmのTerminalからgcloud auth activate-service-account --key-file=XXX.json"を実行


    1. XXX.jsonは8.で取得したjsonファイル

    2. 実行前にpycharmのプロジェクトフォルダにjsonファイルを置いておく



  9. pyCharmのTerminalからgcloud auth print-access-tokenを実行する


    1. トークンが表示される



  10. pythonから'requests.get()'する


    1. トークンはgetのリクエストヘッダに埋め込む。公式参照

    2. サンプルソースを上げました。ひどい英語力ですが・・・GitHub

    3. 注意点としては、以前の翻訳APIとURLが変わっていることです。詳しくはソースを見てください。



  11. 新翻訳結果がjsonファイルで取得できる.


    1. マジェスティック!:trident:





参考画像:サービスキーの取得


長々と書いたけど、簡単には

GCPに慣れている人はおそらく8.ぐらいまではよくあるフローみたいです。

パパッとできると思います。

技術的にコアな部分は、headerにトークンを埋め込んでgetするだけ!


翻訳結果の検証

サンプルソースにトークンを埋め込み、ここの比較結果と同じ翻訳を行います。

新翻訳で出力されるかを検証しました。

(json取得値)


機械翻訳は決して解決されません。 GNMTは、言葉の削除や正しい名前やまれな用語の誤訳、段落やページの文脈を考慮するのではなく、孤立した文章の翻訳など、人間の翻訳者が決して行かない重大な誤りを引き起こす可能性があります。ユーザーにより良いサービスを提供するためにできることはまだたくさんあります。しかし、GNMTは重要なマイルストーンです。ここ数年でこの研究の方向性に貢献してきた多くの研究者やエンジニア(Googleとより広いコミュニティの両方)との祝辞を述べたいと思います。


うまくいきました:two_hearts:

googleに祝辞を!


オマケ:既存のAPI翻訳結果


機械翻訳は、解決されるものではありません。 GNMTはまだ言葉をドロップし、固有名詞や希少な用語をmistranslating、および文章を翻訳分離ではなく、段落またはページのコンテキストを考慮すると同じように、人間の翻訳者が作ることはないだろうと大きな誤差を作ることができます。私たちはより良い私たちのユーザーにサービスを提供するために行うことができます多くの作業が残っています。しかし、GNMTは重要なマイルストーンを表します。我々は、多くの研究者・技術者、両方のGoogle内およびより広いコミュニティ - 過去数年間の研究のこの方向に寄与しているとそれを祝うしたいと思います。


Oh....:confounded:


注意点


  • GoogleTranslateAPIは有料


    • 新規にGoogleCloudPratformに参加すればトライアルで60日間は$300分無料!

    • 新翻訳APIの料金体系は来月末まで既存の料金体系でいいよ、とのメールもらいました


      • 1月中に新料金体系出るらしいので、注意。新料金は2月から適用とのこと。

      • つまり2月からはもっと簡単に利用できるようになるかも。おそらくこの記事はdeplicatedになりそう



    • 現在の料金体系は100万文字で$20なので、1冊20万文字の本5冊分ぐらいは無料で翻訳できるかも

    • 今回のテストで新旧翻訳で何度もAPI叩きましたが今のところの課金請求額は¥19-¥34,182.00=0円です。


      • 課金を恐れずいこう。:heartbeat:





  • このAPIは重要なアプリケーションでのリアルタイム翻訳を目的としたものではない、とのこと


    • This feature is not intended for real-time usage in critical applications.

    • 原文リンク




Thanks

mhashi

teratail:自分が投稿した質問


終わりに

すでにブラウザ経由では新Google Translateを利用できますが、今回はAPI経由でも利用できることが分かりました。

英語読めないマン'sにしてみれば、翻訳が待たれるモノってめちゃめちゃあると思います。

エンジニアさんはバンバン英語情報を新Google翻訳で翻訳して、よいプロダクトを作ったり、情報共有していってください。:thumbsup:


反省会

Hack-a-Thonで時間切れで、今回技術書を読ませるところまでいけませんでした。:bust_in_silhouette:

タイトル回収できてなくて申し訳ありません。

隙を見て、ePubデータをぶち込んで翻訳結果を見る回の方の記事も書きたいと思います。