【Python】DeepL APIを使って英語から日本語に翻訳させる方法

Python

AIを使った優秀な翻訳アプリとして有名なDeepL。

DeepLでは開発者向けにAPIの提供も行っています。使ってみたところ非常にカンタンで便利だったので、使い方を紹介したいと思います。しかも50万字まで無料で利用できるというから、個人開発であれば十分すぎるほどの容量!

ぜひあなたのプログラムでも使ってみてください。

APIキーの取得

まずはDeepLのAPI翻訳 | 機械翻訳のテクノロジーにいって、無料登録を済ませましょう。

登録が完了したら、右上のハンバーガーメニューをクリックしてアカウント情報にいってください。

アカウント情報に飛んだら、さらにアカウントタブをクリックします。

下の方にスクロールするとDeepLで使用する認証キーというセクションがあるので、そこにあるキーを保存しておいてください。

Pythonコード

以下のコードをコピペして実行してみてください。

import requests

YOUR_API_KEY = 'ここにあなたのAPIキーを入力してください'


def translate_to_japanese():
    text = input('翻訳したい英語を入力してください。> ')
    params = {
                "auth_key": YOUR_API_KEY,
                "text": text,
                "source_lang": 'EN',
                "target_lang": 'JA' 
            }
    # パラメータと一緒にPOSTする
    request = requests.post("https://api-free.deepl.com/v2/translate", data=params)

    result = request.json()
    print(result["translations"][0]["text"])
translate_to_japanese()

なお、requestsモジュールを使いますので、インストールしていない方は先に以下のpipコマンドでインストールしてください。

pip install requests

実行結果は以下になります。

今回は単純にコマンドラインからテキストを入力し、翻訳結果を出力させていますが、プログラム中で元テキストを引数に渡して結果を何らかの形で処理するなどして、活用できるかと思います。レスポンスもかなり早いのでストレスも感じません。

複雑なコードではないので、だいたいわかるかと思いますが、念のため簡単に解説すると、

params = {
                "auth_key": YOUR_API_KEY,
                "text": text,
                "source_lang": 'EN',
                "target_lang": 'JA' 
            }

paramsという辞書型に

  • auth_key: APIキー
  • text: 翻訳するテキスト
  • source_lang: 翻訳前の言語
  • target_lang: 翻訳語の言語

を登録し、

request = requests.post("https://api-free.deepl.com/v2/translate", data=params)

でparamsと一緒にPOSTで送信しています。

source_langとtarget_langにはDeepL APIで定められた定数を指定する必要があります。現在(2023年1月)サポートされている翻訳言語ペアは以下のようになっています。

  • EN (English) → DE (German)
  • DE (German) → EN (English)
  • EN (English) → FR (French)
  • FR (French) → EN (English)
  • EN (English) → ES (Spanish)
  • ES (Spanish) → EN (English)
  • EN (English) → JA (Japanese)
  • JA (Japanese) → EN (English)
  • EN (English) → IT (Italian)
  • IT (Italian) → EN (English)
  • EN (English) → PL (Polish)
  • PL (Polish) → EN (English)
  • EN (English) → NL (Dutch)
  • NL (Dutch) → EN (English)
  • DE (German) → FR (French)
  • FR (French) → DE (German)

現在は英語・日本語・ドイツ語・フランス語・スペイン語・イタリア語・ポーランド語・オランダ語に対応しているようですね。この並びに日本語が含まれているのが嬉しいです。ただし日本語から英語以外の言語には直接翻訳はできないようです。日本語→英語→イタリア語のように一度英語を経由させることで無理やり翻訳させることはできます。

まだまだ言語ペアが少ないようにも感じますが、今後のアップデートに期待しましょう。

結果はJsonで返ってくるので、翻訳結果の中身は以下のようにして取り出せます。

result = request.json()
result["translations"][0]["text"]

まとめ

いかがでしたか?

APIキーの取得も楽で、数行のコードで簡単に翻訳機能を実装できるのでかなり魅力的なAPIです。
言語ペアが若干少ないのが難点ですが、今後のアップデートでもっと増えていくのが予想されますので、気長に待ちましょう。

Pythonの学習には以下の書籍が参考になりました。

プロフィール

プロフィール
コードラボJP

大学卒業後SEに就職、現在は退職しフリーランスとして活動中。
『初心者でも挫折せずに一人でプログラミングを学べる』をモットーに、コードラボJPを開設
お問い合わせ等はcodelabsjp@gmail.comまで

コードラボJPをフォローする
タイトルとURLをコピーしました