LoginSignup
19
25

More than 1 year has passed since last update.

DeepL API Freeを利用して一括翻訳【Python】

Posted at

はじめに

教授「僕が知らなさそうな英論を読んで、発表してください。あぁ、君の専門分野外でよろしく」
僕「。。。」
教授「いつ空いてる?僕は明日空いてるけど?」
僕「。。。」

DeepLはかなり精度良く翻訳してくれますよね。今回はDeepLのAPIを利用して、テキストファイルを一気に翻訳する機能をPythonで実装しました。
まず、公式サイトにて事前に登録しておき、API_KEYを取得しておきます。
image.png
FREE版でも月50万文字まで翻訳可能なので、有難く使わせて頂きました。
※データセキュリティの問題があるため、取り扱うテキストには注意してください。

最終的なコード

翻訳したいテキストファイル(target.txt)を翻訳して、翻訳結果を異なるテキストファイル(convert.txt)に出力します。

import requests

API_KEY = #ここにAPIキーを入力してください。

# ファイルを開く
f = open('target.txt', 'r', encoding='UTF-8')
TEXT = f.read().replace('\n', ' ') # 改行が含まれている場合はスペースに置換

# URLクエリに仕込むパラメータの辞書を作っておく
params = {
            "auth_key": API_KEY,
            "text": TEXT,
            "source_lang": 'EN', # 入力テキストの言語を英語に設定
            "target_lang": 'JA'  # 出力テキストの言語を日本語に設定(JPではなくJAなので注意)
        }

# パラメータと一緒にPOSTする
request = requests.post("https://api-free.deepl.com/v2/translate", data=params) # free用のURL、有料版はURLが異なります
result = request.json()

# 保存
f = open('convert.txt', 'w', encoding='UTF-8')
f.write(result["translations"][0]["text"])

翻訳言語の指定

翻訳言語を任意に設定するためには、上記コード内のparams内のxxx_langを変更してください。

"source_lang": # ここで元のテキスト言語を指定します
"target_lang": # ここで翻訳後のテキスト言語を指定します

FREE版とPRO版における実装の違い

ポストするURLが異なります。以下のようにプランに合わせてURLを指定してください。

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

参考文献

19
25
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
25