deeplを使って翻訳を効率的に行いましょう。
この方法をマスターすれば、翻訳アプリやツールに毎回アクセスしなくてもプログラム内で翻訳が完結します。
海外のニュースも自動翻訳して出力できるようなるなど、応用範囲の広いAPIになります。
ちなみに海外のニュースを取得して日本語訳してデータフレームで出力するPythonコードはこちら。
基本の翻訳
必要なライブラリをインストールしてください。
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ファイルを翻訳するには、テキストを抽出するためにPyPDF2
やpdfplumber
などのライブラリを使用できます。
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
ウェブスクレイピングには requests
と BeautifulSoup
を使うのが一般的です。
以下はウェブサイトのテキストを翻訳するための基本的な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音声からテキスト抽出】英語の字幕を自動生成する方法