この記事で分かること
・Googletransを使ったGoogle翻訳の使い方が分かる
・GoogletransのPythonの実装例が分かる
・Googletransがなぜ不安定と言われているかわかる
・Googletransはいきなり使えなくなることがある。その対処方法が分かる
メイド見習い |
1万語ほど翻訳したら急に翻訳できなくなってしまったんだ。
翻訳を試みても「Expecting value: line 1 column 1 (char 0)」というエラーがでるばかり。
なぜだか分かる?
メイド長 |
結論から言うと、Google翻訳からブロックされちゃったんだね。
ブロックされると24時間は使えなくなるから、待つしか無いんだよ!
翻訳の自動化が使えないのは痛いな~。なにかいい方法ない?
と言うことで今回は
・Googletransとは何か
・GoogletransのPythonの実装例
・Googletransがなぜブロックされたのか?
・ブロックされたときの対処方法5選
について解説します!
Googletransとはなにか?
翻訳を自動的にできる
Googletransは、pythonなどのプログラミング言語を使って翻訳作業を自動化するものです。翻訳したいものが大量にあるときは、Googletransが使えると短時間で作業を終わらせることができます。
論文などたくさんの文章を翻訳するときに役立つツールといえます。
インストールおよび実装は非常に簡単です!
翻訳は、英語、日本語だけで無く、ドイツ語、イタリア語などあらゆる言語に対応しているといえます。
Googletransの実装例
pythonを使ったGoogletransの実装例を公開します。
実装自体は非常に簡単で、5分もあればGoogletransのインストールから動作確認までできます。
以下にサンプルを記載します。ほんの数行で実装できます。
実際は、for文で繰り返して翻訳をすることになると思いますが、
適宜、sleep処理など入れたほうが良さげです。
#googletransからインストール
#https://pypi.org/project/googletrans/
!pip install googletrans
from googletrans import Translator
translator = Translator()
#この2行で日本語から英語に翻訳しています
#この処理のときにgoogle翻訳のサービスを使っている
translation = translator.translate("ここに翻訳したい文字列を入れる", src='ja', dest="en")
#翻訳されて英語を出力できます!
print(translation.text)
本題!ブロックされたときの対処方法
筆者はどのような状況でブロックされたのか?
1万語の翻訳が終わった辺りから、
「Expecting value: line 1 column 1 (char 0)」というエラーが出力されるようになり、翻訳結果を返さなくなりました。
いろいろ調べた結果、どうやらIPアドレスを元にGoogleからブロックされたようだ。
Googletransの配布サイトには、以下のような注意書きがあり、
どうやら15k分の文字列を翻訳をしたら一時的に使えなくなるかもしれません。
「The maximum character limit on a single text is 15k.」
Google翻訳は、スクレイピングなどの大量リクエストを遮断するとのこと。
Googletransも、Google翻訳の機能を使っているため、ブロックされても仕方ないようです。
ブロックされたときの5つの対処方法
24時間待つ
Googleにて明確なブロック時間が明記されているわけではないが、経験上、ブロックされてから24時間が経過すると再び使えるようになっていました。
他のIPアドレスを使う
ブロックはIPアドレスの情報を元に特定しています。
よって、接続PCのIPアドレスを変えることで、ブロックを回避して、Googletransを使うことができます。もちろん、変更後のIPアドレスでGoogletransを使い続けるとやはりブロックされてしまいます。
IPアドレスを変更する手段としては、スマホのデザリングを使う、(この後解説する)
フリースポットなどが考えられます。
kaggleのカーネルを使う
kaggleのカーネルでもGoogletransを使うことができます。
カーネルでも使い続けていると
「Expecting value: line 1 column 1 (char 0)」エラーが出て翻訳ができなくなることがありますが、1時間ほど待つと、再び翻訳を続行できるようです。
ただし、あまりにもGoogletransを使いすぎるとkaggle(Googleのサービスなので)からbanされる可能性がないとは言えないため、あくまでも自己責任で。
本家のAPIを使う
一番安定して翻訳をさせるときは、本家のAPI「Translation API – Google Cloud」を利用するのがオススメです。
ただし有料で、100 万文字ごとに$20の料金が発生します。
Translation API – Google Cloud-料金
フリースポットを使う
フリースポットに移動するとIPアドレスを変更することができます。
その結果、再びGoogletransを使うことができます。
再び、翻訳できなくなったら、スポットを変えるという方法をつかう。
面倒かもしれませんが・・・。
まとめ
Googletransは、無料で使用できる分、いつ使えなくなるのかわからないため不安定といえます。
ブロックされたら他のIPを使う。
何度もネットワークを変えるのは、面倒ですが、無料で大量の翻訳の機能を使うのであれば、この記事を書いた2020/01/28時点では最も有力かもしれません。
安定的に翻訳を使うのならば、有料になるが「Translation API – Google Cloud」がオススメです。
これはGoogleのビジネスモデルだから仕方ないと言えば仕方ない。
\IT未経験者からのサポートあり!転職サービス3選!!/
サービス名 | |||
---|---|---|---|
未経験 | 未経験OK | 未経験の転職専用 | 経験者向け |
公開の求人数 | ITエンジニア全体で1万件以上 ITエンジニア未経験で600件以上 |
未公開 | 5,000件以上 |
利用対象 | 全職種 | IT特化 | IT特化 |
特徴 | ✓誰もが知る転職サービス ✓経歴を登録しておくとオファーが来る |
✓企業担当者と条件交渉 ✓スキルの身につく企業を紹介 |
✓IT専門のエージェントが対応 ✓転職成功すると年収200万円以上の大幅アップがある |
転職サポート内容 |
|
|
|
公式サイト | リクナビネクスト | テックゲート | レバテックキャリア |