• 海外赴任時の車の売却はJCM

お気に入り一覧 お気に入り登録 お気に入り解除

Pythonを使って多言語の自動翻訳をやってみる【Mac:簡単解説】

カテゴリ タイ

今回は、Mac上でPythonを使って、自動翻訳の実装を行いたいと思います。
具体的には”googletrans"というライブラリを使って、インターネット経由でGoogle Translate Ajax APIを用いて翻訳を行います。つまりインターネットに接続されている環境が必要になります。

また、ここでは、Jupyter Labを用いてPythonのコーディングを行う方法を説明します。

この記事を読んで、理解できること、できるようになること speech_synthesis_03speech_synthesis_03

インターネットへの接続環境下で、Google Translate Ajax APIを使用することにより、以下の107語での翻訳(それぞれで入力、出力可能)する事ができます。

入力テキストデータ、出力テスストデータの言語の指定や、入力されたテキストデータが何語であるか、分類することもできます。(最もたりからしい言語の表示とその確からしさ(Confidence)の表示。)

('af', 'afrikaans') ('sq', 'albanian') ('am', 'amharic') ('ar', 'arabic') ('hy', 'armenian') ('az', 'azerbaijani') ('eu', 'basque') ('be', 'belarusian') ('bn', 'bengali') ('bs', 'bosnian') ('bg', 'bulgarian') ('ca', 'catalan') ('ceb', 'cebuano') ('ny', 'chichewa') ('zh-cn', 'chinese (simplified)') ('zh-tw', 'chinese (traditional)') ('co', 'corsican') ('hr', 'croatian') ('cs', 'czech') ('da', 'danish') ('nl', 'dutch') ('en', 'english') ('eo', 'esperanto') ('et', 'estonian') ('tl', 'filipino') ('fi', 'finnish') ('fr', 'french') ('fy', 'frisian') ('gl', 'galician') ('ka', 'georgian') ('de', 'german') ('el', 'greek') ('gu', 'gujarati') ('ht', 'haitian creole') ('ha', 'hausa') ('haw', 'hawaiian') ('iw', 'hebrew') ('he', 'hebrew') ('hi', 'hindi') ('hmn', 'hmong') ('hu', 'hungarian') ('is', 'icelandic') ('ig', 'igbo') ('id', 'indonesian') ('ga', 'irish') ('it', 'italian') ('ja', 'japanese') ('jw', 'javanese') ('kn', 'kannada') ('kk', 'kazakh') ('km', 'khmer') ('ko', 'korean') ('ku', 'kurdish (kurmanji)') ('ky', 'kyrgyz') ('lo', 'lao') ('la', 'latin') ('lv', 'latvian') ('lt', 'lithuanian') ('lb', 'luxembourgish') ('mk', 'macedonian') ('mg', 'malagasy') ('ms', 'malay') ('ml', 'malayalam') ('mt', 'maltese') ('mi', 'maori') ('mr', 'marathi') ('mn', 'mongolian') ('my', 'myanmar (burmese)') ('ne', 'nepali') ('no', 'norwegian') ('or', 'odia') ('ps', 'pashto') ('fa', 'persian') ('pl', 'polish') ('pt', 'portuguese') ('pa', 'punjabi') ('ro', 'romanian') ('ru', 'russian') ('sm', 'samoan') ('gd', 'scots gaelic') ('sr', 'serbian') ('st', 'sesotho') ('sn', 'shona') ('sd', 'sindhi') ('si', 'sinhala') ('sk', 'slovak') ('sl', 'slovenian') ('so', 'somali') ('es', 'spanish') ('su', 'sundanese') ('sw', 'swahili') ('sv', 'swedish') ('tg', 'tajik') ('ta', 'tamil') ('te', 'telugu') ('th', 'thai') ('tr', 'turkish') ('uk', 'ukrainian') ('ur', 'urdu') ('ug', 'uyghur') ('uz', 'uzbek') ('vi', 'vietnamese') ('cy', 'welsh') ('xh', 'xhosa') ('yi', 'yiddish') ('yo', 'yoruba') ('zu', 'zulu') 環境 translation_04translation_04

今回のぼくの環境は以下の通りです。

OS : MacOS Mojave 10.14.6 Python : version 3.6.5 Hardware : MacBook Pro 2016 IDE : Jupyter Lab
概要 translation_05translation_05

googletransのインストレーションは以下の方法でできます。Macのターミナルから直接入力される場合は、1行目の初めの"!"を省略してください。

# install googletrans !pip install googletrans 翻訳

それではまず、最も単純は方法での翻訳のためのコーディングの方法を説明します。

from googletrans import Translator translator = Translator() word1 = input("翻訳する言葉を入力して!") word2 = translator.translate(word1) print(word2.text)

上記のコードを入力して、インターネットに接続した環境で実行すると翻訳すべき文章(または単語)の入力を促してきますので、入力してエンターキーを押すと、翻訳されたテキストが出力されます。(この場合、出力側の言語を指定していないので、Defaultの英語で出力されます。)

”If you enter the above code and execute it in an environment connected to the Internet, you will be prompted to enter the sentence (or word) to be translated, so if you enter it and press the enter key, the translated text will be output. (In this case, the language of the output side is not specified, so it is output in English of Default.)”

上記の英文はその上の日本語のぼくの文章を入力して、出力したものをそのまま、コピペしたものです。かなりの精度で翻訳されていると思います。

言語の指定

それでは次に、入出力のテキストの言語指定の方法を説明します。

from googletrans import Translator translator = Translator() word1 = input("翻訳する言葉を入力して!") word2 = translator.translate(word1, src="en", dest="ja") print(word2.text)

上記のコードは、入力を英語、出力を日本語に指定したものです。ご覧の通り、5行目に変数srcに英語を意味する"en"、destに日本語を意味する"ja"を代入することによって、言語を指定しています。ちなみにsrcはsource、destはdestinationの略です。

それぞれの言語とそれを表す記号(日本語の場合の"ja")は前述の107語の表にありますので、参照して下さい。

それでは少し意地悪ですが、先ほどの英訳で出力された英文を上記の和訳のコードに代入して、出てきた和訳ともとの日本語とを比較してみましょう。

「上記のコードを入力して、インターネットに接続した環境で実行すると翻訳すべき文章(または単語)の入力を促してきますので、入力してエンターキーを押すと、翻訳されたテキストが出力されます。(この場合、出力側の言語を指定していないので、Defaultの英語で出力されます。)」
「上記のコードを入力し、インターネットに接続された環境で実行すると、翻訳する文章(または単語)の入力を求められるので、入力してEnterキーを押すと、翻訳されたテキストが出力されます。 (この場合、出力側の言語は指定されていないため、デフォルトの英語で出力されます。)」

上記のピンク色の文章が元のぼくの文章で、緑色の文章がそれをgoogletransで英訳の後、和訳したものです。元のぼくの日本語よりよくできた日本語のような気がします。

入力言語の分類

最後に入力されたテキストデータが何語であるかの分類(最も確からしい言語の表示)とその確からしさの表示について説明します。

from googletrans import Translator from googletrans import LANGUAGES translator = Translator() word1 = input("調べる言葉を入力して!") detection = translator.detect(word1) if detection.lang == "zh-CN": detection.lang = "zh-cn" if detection.lang == "zh-TW": detection.lang = "zh-tw" type_of_language = LANGUAGES[detection.lang].capitalize() confidence_of_language = int(detection.confidence * 100) print("入力された言葉は{}と推測され、その確からしさは{}%です。".format(type_of_language, confidence_of_language))

上記のコードを簡単に説明しますと、detection = translator.detect()でインスタンスを作り、detection.langで言語のコード(日本語の場合は"ja"等)を返し、detection.confidenceでその言語であろう確からしさを0から1.0の間の数値で返します。

上のコードでは、言語のコードを前述の107語の表を使い英語の言語名に変換して、初めのアルファベットを大文字にしています。

それらを使って、コードでは、入力された言葉が何語であるかとその言葉である確からしさをパーセントで示します。

また、なぜか、中国語のコードで大文字と小文字が一致していないところがあるので、修正しています。(表ではzh-cnとなっているのに、返ってくるのはzh-CN)

まとめ translation_03translation_03

正直言って、ぼくは日本語の英訳の正確さにびっくりしました。これならば、ほんの少し手を加えれば、実務でも使える精度だと思います。

また、このライブラリでは正式な手法でGoogle先生のAPIを使っているわけではないので、安定性が求められるような使い方をされる場合は、お金を払って正式に"Googleのofficial translate API"を使ってください。また、一度に送信できるテキストデータの文字数は1万5千が上限です。また、連続してデータを送る場合は、サーバーに過度な負担をかけないように適当な感覚をあけて送信してください。

次回はこれまで説明いたしました、音声解析、音声合成、そして今回の自動翻訳を組み合わせて、音声の言葉を多言語に翻訳して音声で回答する方法の解説をしていきたいと思います。

それでは、最後までお付き合いありがとうございました。さようなら。

translation_05translation_05 参考資料

本記事の作成にあたり以下の資料を参考にさせていただきました。

https://pypi.org/project/googletrans/https://96lovefootball.hatenablog.com/entry/2019/02/10/213000

続きを読む

ブログ紹介

みゆきメダカのブログ

https://miyukimedaka.com

20年以上の東南アジアでの海外赴任の経験をもとに、これから海外赴任される方、されている方との有益な情報の共有できればと思っています。

カテゴリ タイ

このブログの最新記事

これで漏れ無し!海外赴任前の準備方法

チャートとチェックリストを使って、
海外赴任前の準備項目を確認しながら情報を収集して準備に備えましょう!

海外赴任準備チェックリストを確認する

書籍版のご案内

海外赴任ガイド 到着から帰国まで

書籍版「海外赴任ガイド」は各種ノウハウや一目で分かりやすい「海外赴任準備チャート」などをコンパクトな一冊にまとめております。海外赴任への不安解消に繋がる道しるべとしてご活用ください。

書籍版の詳細

プログライターの方

海外赴任ブログを登録する

あなたのブログを登録してみましょう!

プログライターの方

海外赴任ガイドのSNS

Twitter アカウントをみる

たいせつにしますプライバシー 10520045