Pythonのtranslateの使い方
pythonのgoogletransモジュールで日本語を英語に変換する
googletransは、google翻訳の機能をpythonから呼び出せるモジュールです。引数指定で、翻訳元と翻訳先を指定します。
googletransは月に50万文字までは無料。本格的なサービスを行うのでなければ、実質タダで使えると考えて良さそうですね。
関連)Cloud Translation ドキュメント | Google Cloud
- 英語から日本語へ翻訳する場合:googletrans.translate(英文, dest=’ja’)
- 日本語から英語へ翻訳する場合:googletrans.translate(日本文, dest=’en’)
- 任意の言語間で翻訳する場合:googletrans.translate(文章, dest=’任意の言語コード’)
以下は、日本語のテキストを英語に翻訳するサンプルコードです。
from googletrans import Translator translator = Translator() ja_text = '私は日本人です' en_text = translator.translate(ja_text, dest='en').text print(en_text)
実行するとこうなります。
I am Japanese.
Pythonでgoogletransモジュールを使うには、まずpipコマンドを使ってgoogletransパッケージをインストールする必要があります。以下のコマンドを実行してください。
`pip install googletrans`
pythonのtranslateで文字列を置換
Pythonのmaketrans()関数は、複数の文字列をまとめて置換できます。引数として、2つの文字列を受け取り、1つめの文字列を2つめの文字列に置換します。
1つめの文字列の文字数と2つめの文字列の文字数は同じでなければなりません。この関数は、translate()関数と組み合わせて使用することで文字列を指定された形式に変換するときに便利です。置換前の文字列から、対象の文字だけを置換するんですね。
import string trans = string.maketrans('abc', 'xyz') sentence = "I like Python" print sentence.translate(trans)
実行するとこうなります。
I xlke Pyxthon
単純に全角-半角の変換をおこないたい場合は、モジュールが用意されています。(しかし、全角漢字を置換すると想定外の文字に変換されてしまうようです)
関連)Pythonの全角の変換
pythonのmaketransで複数の単語を置換する
maketransに変換用の辞書を引数として渡します。単語レベルで複数単語を置換できます。置換前置換後の単語のペアをzipで組み合わせてdictで辞書化するんですね。
# 入力文字列 string = "apple banana orange" # 置換前の単語 before_words = ["apple", "banana", "orange"] # 置換後の単語 after_words = ["lemon", "grape", "melon"] # maketransを使って置換 table = str.maketrans(dict(zip(before_words, after_words))) result = string.translate(table) # 置換後の文字列を表示 print(result)
実行するとこうなります。
lemon grape melon
Pythonのtranslateのまとめ
- pythonのgoogletransモジュールはgoogle翻訳の機能をPythonから呼び出せる
- pythonの文字列に対して使えるmaketransは、文字列の置換が可能
- maketransに、置換前後の文字列を辞書として指定すると、複数の文字や単語の置換が可能