見出し画像

DeepL APIとは?Pythonでの導入方法と翻訳の自動化テクニック

1.はじめに

越境ECサイトを構築するにあたり、翻訳作業は多くの場面で必要となります。日本語で作成した商品説明文、特定商取引法などのポリシーを英文にする必要があります。しかし、手作業での翻訳には時間がかかり、精度が不十分な翻訳エンジンもあります。そこで役立つのが、DeepL API です。

DeepLは、AIを活用した高品質な翻訳エンジンで、特に翻訳の精度がとりわけ高いことで知られています。
本記事では、Pythonを使ってDeepL APIを活用し、簡単に翻訳を実行する方法を解説します(DeepL API 無料版の使用法を解説します。無料版でも一月で500000文字まで翻訳可能です。)

この記事で学べること

DeepL APIを使って高品質な翻訳を自動で実行する方法
Pythonを用いた実装手順(環境変数を活用したAPIキーの管理方法を含む)
複数のテキストを一括翻訳する方法(コピペでOK)

Pythonを活用すれば、翻訳作業を効率化し、手間を大幅に削減できます。
それでは、DeepL APIをPythonで利用する手順を詳しく見ていきましょう!

本記事ではPythonの環境が整っていることを前提としているので、Pythonのインストール方法について詳しく知りたい方は以下のブログ記事を参考にしてみてください。


2.DeepL APIとは?

DeepLとは?

DeepLは、ニューラルネットワークを活用した高精度な翻訳エンジンを提供するサービスです。Google翻訳やMicrosoft Translatorなど、他の翻訳エンジンと比較しても、特に日本語やドイツ語などの文脈を正しく捉える能力に優れていると評価されています。

DeepLの翻訳サービスは、次の2つの方法で利用できます。

1.DeepLの公式Webサイト
手動で文章をコピペ・打ち込み翻訳する、一般的な使用法です。

2.DeepL APIを利用したプログラム連携(無料or有料プラン)

DeepL APIの特徴

DeepL APIを利用すると、プログラムから自動的に高精度な翻訳を実行できます。以下のような特徴があります。

🔹 高精度な翻訳:文脈を理解し、自然な表現に変換
🔹 多言語対応:日本語、英語、フランス語、ドイツ語、中国語など33言語をサポート
🔹 一括翻訳が可能:大量のテキストをAPI経由で一度に翻訳
🔹 カスタマイズ可能:用語集を設定して特定の単語の翻訳ルールを変更可能(有料プランのみ)

DeepL APIを活用するメリット

翻訳作業を自動化できる(手作業の手間を削減)
高精度な翻訳が可能(専門的な文章も適切に訳せる)
プログラム内で自由に利用できる(Webサイトやアプリに組み込み可能)

DeepL APIを使うことで、Webサイトの多言語対応や海外ユーザー向けの自動翻訳機能の実装が容易になります。
次の章では、実際にDeepL APIを使用するための準備手順について解説します!


3.DeepL APIを利用する準備

DeepL APIを利用するためには、APIキーの取得環境変数の設定が必要です。ここでは、APIキーの取得方法から、Pythonで使用するための環境構築まで詳しく解説します。


3.1 DeepL APIキーを取得する

DeepL APIを使用するには、まず**APIキー(認証キー)**を取得する必要があります。以下の手順で進めましょう。

① DeepLの公式サイトにアクセス

👉 DeepL日本語サイト にアクセスします。

「無料で体験する」→下へスクロール→「DeepL API Free」を選択

無料プランと有料プランがありますが、無料プランでも一定回数の翻訳(一か月に500000文字まで)が可能です。

③DeepLアカウントを作成
DeepLアカウント作成のページに遷移するのでメールアドレスを入力してください。「続行」のボタンを押すと、パスワード設定画面が表示されるので、パスワードを設定してください。

④住所・支払い情報を入力
必要な情報を記入して登録します。クレジットカード情報を記載する必要がありますが、「DeepL API Free」を使用する限り、勝手に請求されることはありません。

有料プランへ手動で変更しない限り請求は発生しません。


⑤APIキーを取得

  1. ログイン後、アカウントページに移動

  2. 「DeepL APIキー」を確認

  3. APIキーをコピー(このキーを使ってプログラムから翻訳を実行します)

⚠️ 注意
APIキーは第三者に公開しないように注意してください。
次のステップで環境変数として管理する方法を解説します。


3.2 APIキーを環境変数に設定する

APIキーをPythonコード内に直接記述すると、セキュリティ上のリスクがあります。
そこで、APIキーを「.env」ファイルに保存し、環境変数として読み込む方法を採用します。

① Python用の環境変数管理ライブラリ(python-dotenv)をインストール

pip install python-dotenv

② .env ファイルを作成

プロジェクトフォルダ内(同一フォルダ内)に .env というファイルを作成し、次のように記述します。

DEEPL_API_KEY=your_deepl_api_key_here

👉 your_deepl_api_key_here の部分に、取得したAPIキーを入力してください。

③ Pythonスクリプトで環境変数を読み込む

.env ファイルに保存したAPIキーを、Pythonコード内で読み込むには python-dotenv を使用します。

import os
from dotenv import load_dotenv

# .envファイルを読み込む
load_dotenv()

# 環境変数からAPIキーを取得
DEEPL_API_KEY = os.getenv("DEEPL_API_KEY")

print(f"取得したAPIキー: {DEEPL_API_KEY}")  # 動作確認用(本番環境では表示しない)

このように .env にAPIキーを保存しておくことで、コード内に直接APIキーを書かずに安全に管理できます。


4.PythonでDeepL APIを使って翻訳する

前のセクションでAPIキーの取得環境変数の設定が完了したので、
いよいよPythonを使ってDeepL APIを利用し、テキストの翻訳を実行してみましょう!


4.1 DeepL API用のライブラリをインストール

DeepL APIを簡単に利用するために、requests ライブラリを使用します。
以下のコマンドを実行して、必要なライブラリをインストールしてください。

pip install requests 

requests:HTTPリクエストを送信するためのライブラリ


4.2 DeepL APIを使った基本的な翻訳スクリプト

次のコードを実行すると、英語のテキストが日本語に翻訳されます。

import os
import requests
from dotenv import load_dotenv

# .env ファイルを読み込む
load_dotenv()

# DeepL APIキーを環境変数から取得
DEEPL_API_KEY = os.getenv("DEEPL_API_KEY")

# DeepL APIエンドポイント
DEEPL_API_URL = "https://api-free.deepl.com/v2/translate"

def translate_text(text, source_lang="EN", target_lang="JA"):
    """
    DeepL APIを使用してテキストを翻訳する関数
    :param text: 翻訳したいテキスト
    :param source_lang: 翻訳元の言語 (デフォルト: 英語)
    :param target_lang: 翻訳先の言語 (デフォルト: 日本語)
    :return: 翻訳後のテキスト
    """
    params = {
        "auth_key": DEEPL_API_KEY,  # APIキー
        "text": text,  # 翻訳するテキスト
        "source_lang": source_lang,  # 元の言語
        "target_lang": target_lang  # 翻訳後の言語
    }

    response = requests.post(DEEPL_API_URL, data=params)

    # レスポンスの確認
    if response.status_code == 200:
        return response.json()["translations"][0]["text"]
    else:
        print(f"翻訳エラー: {response.status_code}, {response.text}")
        return None

# テスト用の翻訳
text_to_translate = "Hello, how are you?"
translated_text = translate_text(text_to_translate)

print(f"翻訳結果: {translated_text}")

4.3 実行結果の例

上記のコードを実行すると、次のように表示されます。

 翻訳結果: こんにちは、お元気ですか?

このように、Pythonを使って簡単にDeepL APIを利用できることが確認できました!
次のセクションでは、さらに実用的な活用方法について解説していきます。


5.DeepL APIの実用的な活用例

前のセクションでは、DeepL APIを使って単純なテキストを翻訳する方法を紹介しました。
しかし、実際の業務や開発では「大量のテキストを一括で翻訳したい」「特定のファイル内の文章を翻訳したい」といった場面が多いでしょう。

このセクションでは、実用的な活用例として、以下の3つのシナリオを紹介します。

  1. リストに含まれる複数の文章を一括翻訳

  2. CSVファイル内のテキストを翻訳

  3. Webページのテキストを翻訳(スクレイピング)


5.1 リストに含まれる複数の文章を一括翻訳

💡 一度に複数の文章を翻訳したい場合は、DeepL APIのリクエストをループ処理することで対応できます。

📌 コード例

import os
import requests
from dotenv import load_dotenv

# 環境変数を読み込む
load_dotenv()
DEEPL_API_KEY = os.getenv("DEEPL_API_KEY")

DEEPL_API_URL = "https://api-free.deepl.com/v2/translate"

def batch_translate_texts(texts, source_lang="EN", target_lang="JA"):
    """
    リスト内の複数の文章をDeepL APIで一括翻訳
    :param texts: 翻訳したい文章のリスト
    :param source_lang: 元の言語(デフォルト: 英語)
    :param target_lang: 翻訳後の言語(デフォルト: 日本語)
    :return: 翻訳後の文章リスト
    """
    translated_texts = []
    
    for text in texts:
        params = {
            "auth_key": DEEPL_API_KEY,
            "text": text,
            "source_lang": source_lang,
            "target_lang": target_lang
        }
        response = requests.post(DEEPL_API_URL, data=params)

        if response.status_code == 200:
            translated_texts.append(response.json()["translations"][0]["text"])
        else:
            translated_texts.append(f"翻訳エラー: {response.status_code}")
    
    return translated_texts

# 翻訳したいテキストリスト
texts_to_translate = [
    "Hello, how are you?",
    "This is a test message.",
    "Let's translate multiple sentences!"
]

translated_results = batch_translate_texts(texts_to_translate)
print("翻訳結果:", translated_results)

 実行結果

 翻訳結果: ['こんにちは、お元気ですか?', 'これはテストメッセージです。', '複数の文章を翻訳しましょう!']

📌 ポイント

  • for ループを使って、複数の文章をAPIへ順番に送信

  • リストで管理することで、一括翻訳が可能に

  • エラー発生時はエラーメッセージをリストに追加


5.2 CSVファイル内のテキストを翻訳

💡 CSVファイルを一括翻訳し、翻訳結果を新しいCSVファイルに保存する方法です。

📌 コード例

import pandas as pd

def translate_csv(input_csv, output_csv, source_lang="EN", target_lang="JA"):
    """
    CSVファイルの指定列を翻訳し、新しいCSVファイルに保存
    :param input_csv: 入力CSVファイル名
    :param output_csv: 出力CSVファイル名
    :param source_lang: 元の言語(デフォルト: 英語)
    :param target_lang: 翻訳後の言語(デフォルト: 日本語)
    """
    df = pd.read_csv(input_csv)
    
    # 'text' カラムの内容を翻訳(カラム名は適宜変更)
    df["translated_text"] = df["text"].apply(lambda x: translate_text(x, source_lang, target_lang))

    # 翻訳後のCSVファイルを保存
    df.to_csv(output_csv, index=False, encoding="utf-8-sig")

    print(f"翻訳済みのデータを {output_csv} に保存しました!")

# CSVファイルの翻訳処理を実行
translate_csv("input.csv", "translated_output.csv")

📌 ポイント

  • pandasを使ってCSVデータを扱う

  • "text" 列を翻訳し、新しい列 "translated_text" に保存

  • 変換したデータを新しいCSVファイルとして保存


5.3 Webページのテキストを翻訳(スクレイピング)

💡 Webページの情報を取得し、翻訳する方法です。
例えば、英語のニュースサイトの本文を日本語に翻訳できます。

📌 コード例

import requests
from bs4 import BeautifulSoup

def translate_webpage(url, source_lang="EN", target_lang="JA"):
    """
    Webページの本文を取得し、翻訳する
    :param url: 翻訳したいWebページのURL
    :param source_lang: 元の言語(デフォルト: 英語)
    :param target_lang: 翻訳後の言語(デフォルト: 日本語)
    """
    response = requests.get(url)
    
    if response.status_code != 200:
        print("Webページを取得できませんでした。")
        return None
    
    # BeautifulSoupを使ってHTML解析
    soup = BeautifulSoup(response.text, "html.parser")
    
    # ページ内のすべての<p>タグのテキストを取得
    paragraphs = [p.get_text() for p in soup.find_all("p")]
    
    # 取得したテキストを翻訳
    translated_paragraphs = batch_translate_texts(paragraphs, source_lang, target_lang)
    
    return "\n".join(translated_paragraphs)

# 翻訳するWebページのURL
url_to_translate = "https://example.com/news-article"
translated_content = translate_webpage(url_to_translate)

print("翻訳結果:\n", translated_content)

📌 ポイント

  • BeautifulSoup を使ってWebページのテキストを取得

  • batch_translate_texts() で すべての段落を翻訳

  • 翻訳後の内容を結合して表示

このセクションでは、DeepL APIを実際の業務や開発で活用できる3つの例を紹介しました。


6.まとめと今後の活用方法

この記事では、DeepL APIを使った効率的な翻訳方法について解説しました。
特に、以下のポイントを押さえながら、実用的な活用例を紹介しました。

この記事で学んだこと

DeepL APIの基本的な使い方
環境変数(.envファイル)を活用してAPIキーを管理
リストやCSVファイル内のテキストを一括翻訳する方法
Webページのテキストを取得し翻訳する方法


💡 DeepL APIの今後の活用方法

DeepL APIは、さまざまな場面での翻訳作業を効率化するのに役立ちます。特に、以下のような用途に活用できます。

  1. ECサイトのローカライズ
    海外向けのストアを運営する場合、商品説明やページ内容を多言語対応にすることが重要です。DeepL APIを活用すれば、商品情報をスムーズに翻訳し、現地の顧客に適したコンテンツを提供できます。

  2. ブログやマニュアルの翻訳
    自社のブログ記事や技術マニュアルなどを翻訳し、多くのユーザーに情報を届けることができます。特に、プログラムを利用して自動的に翻訳することで、手作業の負担を大幅に減らせます。

  3. データ分析への活用
    世界中のレビューや口コミデータを翻訳し、分析に活用することが可能です。海外市場の反応を理解したり、競合の状況を調査する際に役立ちます。


💡 DeepL APIの限界と注意点

DeepL APIは高精度な翻訳を提供しますが、以下の点に注意が必要です。

  • APIの無料プランにはリクエスト制限がある
    → 大量の翻訳を行う場合は、有料プランの利用を検討する必要があります。無料プランでは一か月で500000文字まで翻訳することができます。

  • 専門用語や業界用語の翻訳精度
    → 一般的な翻訳には優れていますが、特定の業界用語やカスタマイズが必要な場合は、独自の辞書や編集が求められることがあります。有料プランでは独自の用語集を作成することができます。

  • HTMLタグを含むテキストの翻訳
    → 文章の構造を保ったまま翻訳する場合、不要なタグを除外する処理を加える必要があります。


これからDeepL APIを活用しよう!

DeepL APIを活用することで、手作業で行っていた翻訳業務を大幅に効率化できます。
また、Pythonと組み合わせることで、自動化スクリプトを作成し、より便利なシステムを構築することも可能です。

今回紹介したコードを応用しながら、作業効率化に役立ててみてください!

いいなと思ったら応援しよう!

カズ| 越境EC×効率化
よろしければサポートをお願いします!これからもお役に立てる情報を努めて発信していきます!