岩の下に隠れていない限り、あなたはおそらく人生で何度もGoogle翻訳を使ったことがあるはずです。
ある単語や文章をある言語から別の言語に翻訳しようとすると、バックグラウンドで希望する結果をもたらしてくれるのがGoogle翻訳APIである。
Google 翻訳のウェブページにアクセスすれば何でも翻訳できるが、Google 翻訳APIをウェブアプリケーションやデスクトッププログラムに統合することもできる。
APIについて最も良いことは、セットアップと使用が非常に簡単であることです。
言語の検出から単純なテキスト翻訳、翻訳元と翻訳先の言語の設定、テキストフレーズのリスト全体の翻訳まで、Google翻訳APIの助けによって実際に多くのことを行うことができます。
この記事では、Pythonプログラミング言語でGoogle Translate APIを使用する方法を説明します。
Google翻訳APIのインストール
Python で Google Translate API を使用する前に、それをインストールする必要があります。
API のインストールには 2 種類の方法があります。
最初の方法は簡単である。
ターミナルに移動して pip
インストーラを使い、他の Python ライブラリと同じように API をインストールするだけです。
これを行うには、ターミナルで以下のコマンドを入力します。
$ pip install googletrans
Enter` を押すと、Google Translate API 用の Python モジュールがシステムにインストールされます。
PythonのAnacondaディストリビューションをインストールしている場合、Anacondaプロンプトを使用してAPIをインストールすることができます。
この方法では、次のコードスニペットに示すように、上記のコマンドの pip
を conda
に置き換えます。
$ conda install googletrans
さて、API をインストールしたところで、いくつかの例を使って実際に動かして見ましょう。
対応言語一覧
Google Translate API はさまざまな言語に対応しています。
すべての対応言語をリストアップするには、以下のスクリプトを実行します。
import googletrans
print(googletrans.LANGUAGES)
上記の例では、キーワード import
を使用して googletrans
モジュールをインポートしています。
その後、googletrans
モジュールの LANGUAGES
属性を出力することで、すべての言語名をリストアップすることができます。
上記のコードを実行すると、サポートされているすべての言語とその省略形がリストアップされます。
出力は以下のようになります。
{'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', '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', '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', 'uz': 'uzbek', 'vi': 'vietnamese', 'cy': 'welsh', 'xh': 'xhosa', 'yi': 'yiddish', 'yo': 'yoruba', 'zu': 'zulu', 'fil': 'Filipino', 'he': 'Hebrew'}
基本的な使い方
Google Translate API の最も基本的な使用法は、もちろん単語や文章をある言語から別の言語に翻訳することです。
これを行うには、 googletrans
モジュールから Translator
クラスをインポートする必要があります。
from googletrans import Translator
次に、Translator
クラスのオブジェクトを作成する必要があります。
translator = Translator()
Translator クラスのオブジェクトを作成したら、次のように Translator()
クラスオブジェクトの translate()
メソッドに、ソース言語のテキストをパラメータとして渡します。
result = translator.translate('Mitä sinä teet')
上のスクリプトでは、フィンランド語のテキストを translate()
メソッドに渡しています。
translate()メソッドは、翻訳されたテキスト、翻訳元言語、翻訳先言語、テキストの発音に関する情報を含むオブジェクトを返します。
デフォルトでは、translate()メソッドは渡されたテキストを英語に翻訳したものを返します。
この例では、translate()メソッドが返すオブジェクトは
result` 変数に格納されます。
translate()` メソッドが返すオブジェクトは以下の属性を持っています。
-
src
: 翻訳元の言語 -
src
: 翻訳元の言語 *dest
: 翻訳先の言語。翻訳先の言語、英語 (en) に設定される。 -
origin
: 元のテキスト、この例では ‘Mitä sinä teet’ となります。 -
text
: 翻訳されたテキスト、この例では ‘what are you doing?’となります。 -
pronunciation
: 翻訳されたテキストの発音
上記の属性をすべて出力して、どのような出力が得られるか見てみましょう。
print(result.src)
print(result.dest)
print(result.origin)
print(result.text)
print(result.pronunciation)
出力されます。
fi
en
Mitä sinä teet
What are you doing
What are you doing
この出力は、翻訳元の言語がフィンランド語 (fi) で、翻訳先の言語が英語 (en) であることを示しています。
翻訳された文章は text
属性で出力することができます。
上記の例では、翻訳元の言語を指定していない。
そのため、Google Translate APIはソース言語そのものを検出しようとします。
同様に、翻訳先の言語も指定していないため、APIはソース言語をデフォルトの言語である英語に翻訳しています。
ソース言語とデスティネーション言語の指定
Google 翻訳 API では、翻訳先の言語と翻訳元の言語の両方を指定するのも簡単です。
以下は、翻訳元言語のみを渡す場合のコードです。
result = translator.translate('Mikä on nimesi', src='fi')
翻訳先の言語のみを指定する場合は、dest
属性に続けて言語コードを指定します。
result = translator.translate('Mikä on nimesi', dest='fr')
また、ソース言語とデスティネーション言語を同時に渡すこともできます。
result = translator.translate('Mikä on nimesi', src='fi', dest='fr')
それでは、フィンランド語の文章をフランス語に翻訳し、翻訳元言語と翻訳先言語、そして翻訳後の文章を表示してみましょう。
今回は、翻訳元と翻訳先の言語を指定します。
from googletrans import Translator
translator = Translator()
result = translator.translate('Mikä on nimesi', src='fi', dest='fr')
print(result.src)
print(result.dest)
print(result.text)
上記のコード片は、次のような結果を出力します。
fi
fr
Quel est votre nom
フレーズ一覧の翻訳
Google翻訳APIを利用して、フレーズのリストを翻訳することも可能です。
基本的なプロセスは上で説明したものと同じです。
フレーズを含むリストを translate()
メソッドにパラメータとして渡すだけです。
これは、フレーズのバッチを別々に翻訳してもらうのに便利ですが、1つのAPIコールですべてを翻訳することができます。
それでは、フランス語のフレーズを含む文字列のリストを作ってみましょう。
sentences = ['Bienvenu', 'Comment allez-vous', 'je vais bien']
では、次に translate()
メソッドを呼び出して、リストと翻訳元言語、翻訳先言語をパラメータとして渡します。
result = translator.translate(sentences, src='fr', dest='sw')
上のスクリプトでは、翻訳元言語はフランス語、翻訳先言語はスワヒリ語です。
translate()メソッドにフレーズのリストを渡すと、オブジェクトのリストが返されます。
translate()メソッドが返すリスト中の各オブジェクトは、入力リスト中の翻訳しなければならないフレーズに対応しています。
リスト内の各入力フレーズの翻訳を見つける最も良い方法は、出力オブジェクトのリストに対して反復処理を行うことです。
そして、個々のオブジェクトの text
, origin
, src
などの属性を使って、入力リスト内の個々のフレーズの翻訳を確認することができます。
以下のスクリプトでは、 translate()
メソッドによって返されたオブジェクトのリストを繰り返し処理し、原文と訳文を出力しています。
for trans in result:
print(f'{trans.origin} -> {trans.text}')
画面に表示される結果は次のようになります。
Bienvenu -> karibu
Comment allez-vous -> Vipi wewe
je vais bien -> Niko sawa
テキストドキュメントの翻訳
Google翻訳APIを使用してテキスト文書を翻訳することもできます。
Pythonの open
メソッドを使ってテキストファイルを読み、テキストを読み込んで translate()
メソッドに渡すだけです。
まず最初に、ファイルを “read” モードで開きます。
f = open('C:UsersKhurramDesktoptest.txt', 'r')
ファイルが “read” モードであるかどうかは、mode
プロパティを使用して確認することもできます。
if f.mode == 'r':
次に、f.read()
メソッドを使って、ファイルの内容を読み込むことができます。
ファイルの内容は、任意の変数に格納することができます。
この例では、変数名を contents.
とします。
また、変数 contents
を表示して、Python がテキストファイルを正しく読み込んでいるかどうかをチェックします。
contents = f.read()
print(contents)
以下は、ファイルの内容を出力したものです。
We are going to translate this text file using Python.
Subsequently, we will also translate it into French.
この例で説明するように、テキストファイルに上記のコンテンツがあることを確認してください。
Pythonがテキストファイルにアクセスし、読み込んでいることが確認できました。
では、先ほどと同じように Translate
クラスをインポートして、結果を翻訳してみましょう。
from googletrans import Translator
file_translate = Translator()
次のステップでは、入力テキストを含む contents
変数を translate()
関数に渡します。
最後に、translate()
メソッドが返すオブジェクトの text
属性を表示すれば、翻訳された文字列が得られます。
result = translator.translate(contents, dest='fr')
print(result.text)
出力は以下のようになるはずです。
Nous allons traduire ce fichier texte en Python.
Par la suite, nous le traduirons également en français.
翻訳された文字列を同じファイル、または別のテキストファイルに書き込むには、単にファイルを書き込みモード(“w”)で開くだけです。
次に、以下のように write()
メソッドを呼び出して、翻訳されたテキストを渡します。
with open('C:UsersKhurramDesktoptest_2.txt', 'w') as f:
f.write(result.text)
上記の例では、コンテキストマネージャー with
を使って、書き込みストリームを自動的に開いたり閉じたりしています。
次に、ファイルを書き込みモードでオープンしています。
最後に、write()
メソッドを使って、翻訳された文字列を新しいファイルに書き込んでいます。
結論
Google翻訳は、翻訳に関連するさまざまな機能を実行するためのAPIを備えたツールです。
上記の例では、まだ表面を削ったに過ぎません。
APIを実践し、実際のアプリケーションでどのように使用するかを学び、理解することが推奨されます。