ToC
DeepL翻訳
日本からのお客様だけでなく、世界各国のお客様からのお問い合わせをうけるサービスを運営していると
いろいろな言語での問い合わせがあります。
AI翻訳で話題になったDeepL翻訳
でAPIが利用可能になっていたので少し試してみました。
利用登録
DeepLは、ブラウザ上で文字数等の一定の制限範囲内で無料で利用できるサービスと
各種の機能制限がないDeepL Pro
、APIアクセスが可能なDeepL API
の有償サービスがあります。
今回は、API
での利用を想定しているため、DeepL API
の機能を利用します。
DeepL API
は、月額630円 + 100万文字ごとに2500円 (2020/8現在)という価格体系です。
100万文字の翻訳がどの程度の量にあたるのかがあまりイメージが付きませんが、日本語でいうと
400字詰の原稿用紙が2500ページという量になるので、途方もない量ではあります。
(ちなみに一般的な翻訳者は1日2000〜4000文字程度の翻訳を行うらしいです。)
DeepL API
を利用するためには、利用契約が必要なため各種の内容を登録します。
利用者の名前やクレジットカード情報の登録を行った後、利用規約を確認して購入すると
あっという間に契約は完了して利用可能な状態になります。
翻訳データは、一時的にサーバーにアップロードされるものの処理後には即座に削除する
との記載もあり、
データ機密性の確保についてもしっかりしているようなので、安心感があります。
また、使いすぎる不安があるので(あるような、ないようなですが)、料金の上限設定も可能です。
今回は、あくまで検証のレベルなので100万文字を上限として設定しました。
DeepL APIで翻訳
利用登録が完了すると DeepL APIで使用する認証キー
という項目がアカウントの画面で
確認できるようになります。逆に言うと、認証キー
が全てです。
あとは、API 技術資料があるのでこれを見ながらすすめることになります。
細かい話は色々あると思いますが、結論からいうと下記のようなソースコードで翻訳処理が 簡単にできました。
import os
import json
from urllib import parse, request, error
DEFAULT_TARGET_LANG = 'ja'
DEEPL_API_KEY = os.environ.get('DEEPL_API_KEY')
DEEPL_ENDPOINT = 'https://api.deepl.com/v2/translate'
def translate_text_deepl(message: str, target_language_code=DEFAULT_TARGET_LANG):
headers = {'Content-Type': 'application/x-www-form-urlencoded; utf-8'}
params = {
'auth_key': DEEPL_API_KEY,
'text': message,
'target_lang': target_language_code
}
req = request.Request(url=DEEPL_ENDPOINT, method='POST',
data=parse.urlencode(params).encode('utf-8'),
headers=headers)
try:
with request.urlopen(req) as response:
response_json = json.loads(response.read().decode('utf-8'))
translated_result = response_json.get('translations', {})[0]
return translated_result.get('text', None)
except error.HTTPError as e:
print(e)
return None
翻訳処理の速度もかなり速いように感じます。
同じ翻訳内容でAmazon Transcribe
+ Amazon Translate
を使った翻訳翻訳をしてみましたが、
処理スピードはAWS
のマネージドサービスと同等レベルのレスポンスで利用できました。
そもそもリアルタイム翻訳処理が必要でなければ、あまり問題になるレベルではないと考えられます。
処理 | 1回目 | 2回目 | 3回目 |
---|---|---|---|
Deep L | 1704.44 ms | 2215.28 ms | 3234.91 ms |
Amazon Transcribe + Translate | 1889.43 ms | 1184.24 ms | 2083.89 ms |
翻訳精度は…
気になる翻訳精度ですが、日→英、英→日をいくつか試してみましたが、DeepL
の翻訳は
いくつかの機械翻訳の中で最も自然な文章になっているなと感じました。
あえて、AWSの技術資料
をDeepL
とAmazon
の両方に翻訳させてみたりもしましたが、
流石にAmazon
の翻訳の学習データとして組み込まれていると思われ、Amazon Translate
の
翻訳結果が完璧でした。(そりゃそうだ)
いずれにしても、世界各国のお客様からの問い合わせ業務を複数の言語スキルの異なるメンバーが対応するような 業務環境においては、AI翻訳を利用して得意とする言語でお問い合わせ内容を把握できるようになるため 業務品質を向上させる一つのツールとして十分に活用できる翻訳精度レベルであると思います。