Pythonのtranslateで、英語翻訳や文字列置換

Pythonのtranslateの使い方

Pythonのtranslateの使い方

pythonのgoogletransモジュールで日本語を英語に変換する

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の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で複数の単語を置換する

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のtranslateのまとめ

  • pythonのgoogletransモジュールはgoogle翻訳の機能をPythonから呼び出せる
  • pythonの文字列に対して使えるmaketransは、文字列の置換が可能
  • maketransに、置換前後の文字列を辞書として指定すると、複数の文字や単語の置換が可能