はじめに
教授「僕が知らなさそうな英論を読んで、発表してください。あぁ、君の専門分野外でよろしく」
僕「。。。」
教授「いつ空いてる?僕は明日空いてるけど?」
僕「。。。」
DeepLはかなり精度良く翻訳してくれますよね。今回はDeepLのAPIを利用して、テキストファイルを一気に翻訳する機能をPythonで実装しました。
まず、公式サイトにて事前に登録しておき、API_KEYを取得しておきます。
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)
参考文献