仕事柄、英文を翻訳することがよくある。
英文ー>日文、日文→英文、どちらのケースもある。
しかも、文章でなく、仕様書のようなフォームでエクセルに入力された英単語の場合も多い。
知らない単語や確認の意味でGoogle翻訳を使うことが多い。
シートが20枚もあるエクセルのブックで各シートに200行もあるデータをいちいちコピペして調べていたら、キリがない。
時間と体力の無駄だと思い、pythonでなんとか出来ないものかとgoogle検索してみると、
googletrans
と言う便利なものがあるらしい。
早速、使ってみた。
googletransをインストール
pip install googletrans
macならターミナルから上記のコードを入力するとインストール開始。なんか聞かれたら、yesと答える。
コード
インストールが終わったら、pythonのコードを書く。
コードはたった数行で実装できる。
from googletrans import Translator
# googletrans
tr = Translator()
value = "FR COMP 潤滑グリスポンプ"
result = tr.translate(value, dest="en", src="ja").text
print(result)
上記の例は"FR COMP 潤滑グリスポンプ"
を英語に翻訳したい。
ちなみに、WEBのGoogle翻訳の結果は”FR COMP lubricating grease pump”となる。
コードの実行結果
あれ?出来てない。
なんだか、
AttributeError: 'NoneType' object has no attribute 'group'
って、怒られてる。。。
対策あれこれ
ググってみると、どうやら2020年辺りからこのエラーに悩まされる人が頻発している様子。
githubを見ながら色々試してみた。
アンインストール
pip uninstall googletrans
修正されたgoogletransをインストールするため、現在の古いgoogletransをまずはアンインストールする。
インストール
pip install googletrans==3.1.0a0
アルファ版というのがあるらしいので、これを試す。
結果、変わらず、残念。
コードを書き足す
from googletrans import Translator
translator = Translator(service_urls=['translate.googleapis.com'])
translator.translate("Der Himmel ist blau und ich mag Bananen", dest='en')
pythonのコードの中に上記の2行目のservice_urls=[‘translate.googleapis.com’]を追記してみれば?とのアドバイスがあったので、試したが、ダメだった。残念。
さらに別のgoogletransをインストール
pip install googletrans==4.0.0-rc1
さらに別のバージョンをインストールしてみた。
結果、変わらず、残念。
さらにさらに別のgoogletransをインストール
pip install google_trans_new
もう、googletransと言う名前自体が変わっちゃってる。笑。
しかも、文法も異なる。
from google_trans_new import google_translator
translator = google_translator()
translate_text = translator.translate('สวัสดีจีน',lang_tgt='en')
print(translate_text)
#output: Hello china
その結果、バーっと長いエラーメッセージの後、Extra data: line 1 column 369(char 368)
と表示された。
さっきまでとエラーメッセージが変わったが、翻訳は出来ず。。。
もう、完全に行き詰まってしまった。
まとめ
googletransは現在使えないようです。
見つけた時はめちゃくちゃ嬉しかったんだけど・・・、
仕方がないので、スクレイピングを学習した時のseleniumを使ってなんとか出来ないかをやってみたいと思う。
結局、有料版を使うしかないのか?
ちなみに、
有料版は$20# /1,000,000 文字らしい。高いんだか、安いんだか、よく分からない。
有料版でも最初の 500,000 文字(1 か月あたり)は無料らしい。
有料版のリンクを一応、貼っておこう。