Deepl APIを有効活用〜使い方からPythonサンプルコードまで

deeplを使って翻訳を効率的に行いましょう。

習得できるスキル

この方法をマスターすれば、翻訳アプリやツールに毎回アクセスしなくてもプログラム内で翻訳が完結します。
海外のニュースも自動翻訳して出力できるようなるなど、応用範囲の広いAPIになります。

ちなみに海外のニュースを取得して日本語訳してデータフレームで出力するPythonコードはこちら。

NEWS API徹底ガイド

基本の翻訳

必要なライブラリをインストールしてください。

pip install deepl
import deepl

# ここにDeepL APIキーを設定してください
auth_key = "your-deepl-auth-key"

# DeepL APIを使用するためのトランスレーターを初期化します
translator = deepl.Translator(auth_key)

# 翻訳したいテキストと目的の言語を指定します
text_to_translate = "Hello, world!"
target_language = "JA"  # 日本語に翻訳

# 翻訳を実行
result = translator.translate_text(text_to_translate, target_lang=target_language)

# 結果を表示
print("Translated text:", result.text)
注意

英語の場合はイギリス英語とアメリカ英語がある点に注意してください。

  • ブルガリア語(BG)
  • 中国語(簡体字)(ZH)
  • 中国語(繁体字)(ZH)
  • チェコ語(CS)
  • デンマーク語(DA)
  • オランダ語(NL)
  • 英語(アメリカ)(EN-US)
  • 英語(イギリス)(EN-GB)
  • エストニア語(ET)
  • フィンランド語(FI)
  • フランス語(FR)
  • ドイツ語(DE)
  • ギリシャ語(EL)
  • ハンガリー語(HU)
  • インドネシア語(ID)
  • イタリア語(IT)
  • 日本語(JA)
  • ラトビア語(LV)
  • リトアニア語(LT)
  • ポーランド語(PL)
  • ポルトガル語(ブラジル)(PT-BR)
  • ポルトガル語(ポルトガル)(PT-PT)
  • ルーマニア語(RO)
  • ロシア語(RU)
  • スロバキア語(SK)
  • スロベニア語(SL)
  • スペイン語(ES)
  • スウェーデン語(SV)
  • タイ語(TH)
  • トルコ語(TR)

改行して出力

テキストに改行を含めたい場合、Pythonの改行ルールである \n を使用して直接文字列に挿入してください。

出力結果も同様の改行になります。

ファイルを翻訳

DeepL APIを使用してPDFファイルやWordファイル(.docx)を翻訳するには、まずファイルの内容を読み込み、それをテキストとしてDeepL APIに渡す必要があります。

ただし、DeepL API自体は直接PDFやWordファイルを翻訳する機能を提供していないため、ファイルの内容を抽出してからテキスト翻訳を行うステップが必要です。

PDFファイルの翻訳

PDFファイルを翻訳するには、テキストを抽出するためにPyPDF2pdfplumberなどのライブラリを使用できます。

pip install PyPDF2
pip install pdfplumber 
import PyPDF2
import deepl

# DeepL APIキー
auth_key = "your-deepl-auth-key"

# PDFファイルを開く
with open("your-pdf-file.pdf", "rb") as file:
    reader = PyPDF2.PdfFileReader(file)
    text = ""
    for page in range(reader.numPages):
        text += reader.getPage(page).extractText()

# DeepL APIを使用するためのトランスレーターを初期化
translator = deepl.Translator(auth_key)

# 翻訳を実行
target_language = "JA"  # 日本語に翻訳
result = translator.translate_text(text, target_lang=target_language)

# 結果を表示
print(result.text)
import pdfplumber
import deepl

# DeepL APIキーを設定
auth_key = "your-deepl-auth-key"

# DeepL トランスレーターを初期化
translator = deepl.Translator(auth_key)

# PDFファイルを開く
with pdfplumber.open("path/to/your/document.pdf") as pdf:
    text_to_translate = "\n".join(page.extract_text() for page in pdf.pages if page.extract_text())

# 翻訳する言語を設定
target_language = "JA"  # 例:日本語に翻訳

# 翻訳を実行
result = translator.translate_text(text_to_translate, target_lang=target_language)

# 結果を表示
print("Translated text:", result.text)

Wordファイル(.docx)の翻訳

Wordファイル(.docx)を翻訳するには、まずファイルからテキストを読み込む必要があります。

これにはpython-docxライブラリを使用できます。

pip install python-docx deepl
import docx
import deepl

# DeepL APIキーを設定
auth_key = "your-deepl-auth-key"

# DeepL トランスレーターを初期化
translator = deepl.Translator(auth_key)

# Wordファイルを開く
doc = docx.Document("path/to/your/document.docx")

# テキストを抽出
text_to_translate = "\n".join([para.text for para in doc.paragraphs if para.text])

# 翻訳する言語を設定
target_language = "JA"  # 例:日本語に翻訳

# 翻訳を実行
result = translator.translate_text(text_to_translate, target_lang=target_language)

# 結果を表示
print("Translated text:", result.text)

ウェブサイトの翻訳を自動化

ウェブサイトのテキストを翻訳するには、まずウェブサイトからテキストを抽出し、その後でDeepL APIを使用して翻訳します。

pip install requests beautifulsoup4 deepl

ウェブスクレイピングには requestsBeautifulSoup を使うのが一般的です。

以下はウェブサイトのテキストを翻訳するための基本的なPythonコードの例です。

import requests
from bs4 import BeautifulSoup
import deepl

# DeepL APIキーを設定
auth_key = "your-deepl-auth-key"

# DeepL トランスレーターを初期化
translator = deepl.Translator(auth_key)

# 翻訳したいウェブサイトのURL
url = "https://example.com"

# ウェブサイトからコンテンツを取得
response = requests.get(url)
content = response.content

# BeautifulSoupを使用してテキストを抽出
soup = BeautifulSoup(content, 'html.parser')
texts = soup.stripped_strings  # または必要に応じて他の方法でテキストを抽出

# 抽出したテキストを連結
text_to_translate = "\n".join(texts)

# 翻訳する言語を設定
target_language = "JA"  # 例:日本語に翻訳

# 翻訳を実行
result = translator.translate_text(text_to_translate, target_lang=target_language)

# 結果を表示
print("Translated text:", result.text)

ウェブスクレイピングを行う際は、対象ウェブサイトの利用規約やロボット排除標準(robots.txt)を尊重し、サーバーに過度な負荷をかけないように注意してください。

一部のウェブサイトはスクレイピングを禁止している場合があります。

Youtube動画から音声データだけを抽出して翻訳

著名な投資家や投機家の書籍の引用は手書きでもそこまで苦労しませんし、OCR(Optical Character Recognition/Reader、オーシーアール、光学的文字認識)の発達で簡単にできます。

Youtube動画のテキスト化はプラグインを使えば簡単にできますが、Pythonを使用してこの作業を行うには、通常、youtube-dlというツールを使います。

youtube-dlはYouTubeをはじめとする多くの動画共有サイトから動画や音声をダウンロードすることができるコマンドラインツールですので、Youtubeプラグインを使うよりも便利に機能します。

pip install youtube-dl

音声データの変換には追加のツールが必要でほとんどの場合、ffmpegを使用します。

ffmpegはウェブサイト(ffmpeg.org)からダウンロード可能です。

ターミナルから実行

通常はターミナルで直接実行できます!

youtube-dl -x --audio-format mp3 [YouTubeのURL]

Jupyter Notebookで実行

Jupyter Notebookで同様のコマンドを実行する場合、セルの先頭に ! を付けてシステムコマンドとして実行します。

!youtube-dl -x --audio-format mp3 [YouTubeのURL]

デフォルトではコマンドを実行したディレクトリ(カレントディレクトリ)にファイルが保存されますが、もちろん出力先パスを設定することもできます。

youtube-dl -x --audio-format mp3 -o "/path/to/your/directory/%(title)s.%(ext)s" [YouTubeのURL]

youtube-dlを最新版にアップデート

エラーが出る場合はアップデートで解決することが多いです。

pip install --upgrade youtube-dl

pipを使わない方はこちら

sudo pip install --upgrade youtube-dl

抽出後の音声をテキスト化するには筆者の運営するオーディオスタジオの記事にて紹介しています。

【Python音声からテキスト抽出】英語の字幕を自動生成する方法

kotaro
本業は芸術家をしています。
トレードが大好きで、トレードを愛しています。
もっぱらテクニカル分析派で、ファンダメンタルはテクニカル指標に合わせてついてくると確信しています。
芸術家だった祖母と、銀行家だった祖父に育てられ、10代に差し掛かる前から株式投資の本や哲学書を読んでいます。
要介護5だった祖母の介護をきっかけにプログラミングに興味をもち、株式会社ジオセンスのCEO:小林一英氏に弟子入り。
先生の指導のお陰で初心者から約1ヶ月でCを使った温度と湿度を計測して寝返りのタイミングをLEDランプで知らせるデバイスを開発。
現在は金融トレードのためにPythonを中心に知識を増やしています。
上部へスクロール