はじめに
今回、画期的な機械翻訳ツールを紹介する。その名も、DeepL である。
DeepLのWebインターフェイスも中々使い勝手は良い
#RからWebページを開く browseURL("https://www.deepl.com/translator")
DeepLの良さは、何と言っても、その翻訳精度である。 Google翻訳よりも自然なフレーズ選択をしてくれる。
悲しいことに、 自身の英語力をすでに超えている英訳・和訳なので、 使わないわけにはいかない。。
DeepL登録HP
DeepL APIを使うには、無料のdeveloper登録が必要である。
まず、DeepL APIの登録ページに移動する。
#RからWebページを開く browseURL("https://www.deepl.com/pro?cta=header-prices/#developer")
DeepL API Freeの「無料で登録する」を選択して、次のページに進む。
そこで、アカウントの登録を行う。
登録時に、クレジットカード番号を聞かれるのがやや面倒
Pro版にしないと請求は来ないとのこと
これも無料で使えるので仕方ない。。。
登録が終われば、承認キーが発行される。
curlで問い合わせるときに、このキーが必要となるので、 コピーして保存しておく。
DeepL APIを使って、和訳・英訳をやってみる。
DeepLの練習(1)いつもの例題: 英語 to 日本語
source_langを"EN"、target_langを"JA"と設定する。
[Your Authentication Key]に承認キーを入力すること、また、[ ]は不要。
#入力文字列 Sentence <- "Hello, world" #curlを用いて、DeepL API実行 a <- system(paste0('curl -s https://api-free.deepl.com/v2/translate -d "auth_key=[Your Authentication Key]" -d "text=', Sentence, '" -d source_lang="EN" -d "target_lang=JA"'), intern = T) #前処理 result <- strsplit(strsplit(as.character(a), "\"text\":\"")[[1]][2], "\"}]}")[[1]][1] #出力結果 result #[1] "ハロー、ワールド"
DeepLの練習(2)専門的な文書の翻訳: 日本語 to 英語
source_langを"JA"、target_langを"EN"と設定する。
[Your Authentication Key]に承認キーを入力すること、また、[ ]は不要。
#入力文字列 Sentence <- "薬品とは、精製あるいは配合されて、何らかの用途に利用可能な状態とした化学物質のうち、少量で使用するものをいう。" #curlを用いて、DeepL API実行 a <- system(paste0('curl -s https://api-free.deepl.com/v2/translate -d "auth_key=[Your Authentication Key]" -d "text=', Sentence, '" -d source_lang="JA" -d "target_lang=EN"'), intern = T) #前処理 result <- strsplit(strsplit(as.character(a), "\"text\":\"")[[1]][2], "\"}]}")[[1]][1] #結果 result #[1] "A chemical is a chemical substance that has been refined or blended to make it usable for some purpose, and that is used in small quantities."
無料版APIオプションの説明
翻訳機能は、テキストの翻訳を可能にするもので、所定のAPI URL (https://api-free.deepl.com/v2/translate) で利用できる。この同期呼び出しは、以下の基本パラメータをサポートしている。
パラメータ | オプション | 説明 |
---|---|---|
text | Required | 翻訳されるテキスト。UTF8エンコードのプレーンテキストのみ対応している。パラメータは複数回指定することができ、翻訳は要求された順に返す。それぞれのパラメータ値には、複数の文章を含めることができる。1回のリクエストで、最大50個のテキストを翻訳に送ることができる。 |
source_lang | Optional | 翻訳されるテキストの言語。現在利用可能なオプション "DE" - ドイツ語 "EN」-英語 "ES" - スペイン語 "FR" - フランス語 "IT" - イタリア語 "JA」-日本語 "ZH" - 中国語 このパラメータが省略された場合、APIはテキストの言語を検出して翻訳を試す。 |
target_lang | Required | テキストを翻訳する言語。略語は同上。 |
split_sentences | Optional | 翻訳エンジンが入力を最初に文に分割するかどうかの設定。デフォルトでは、有効。設定可能な値は以下の通り。 "0" - 分割を行わず、入力全体を1つの文として扱う。 "1" (デフォルト) - 接続点と改行点で分割する。 "nonewlines" - 改行を無視して接続点のみで分割する。 テキストパラメータごとに1つの文を送信するアプリケーションでは、エンジンが意図せずに文を分割してしまうのを防ぐために、split_sentences=0を設定することを推奨。 |
preserve_formatting | Optional | 翻訳エンジンがオリジナルのフォーマットを尊重するかどうかの設定(通常は一部を修正する場合もある)。設定可能な値は次の通り。 "0" (デフォルト) "1" この設定で影響を受けるフォーマットの側面は次の通り。 文章の最初と最後の句読点 文章の先頭の大文字/小文字 |
formality | Optional | 翻訳された文章をフォーマルな表現にするか、インフォーマルな表現にするかの設定。この機能の現在の対象言語は、"DE"(ドイツ語)、"FR"(フランス語)、"IT"(イタリア語)、"ES"(スペイン語)、"NL"(オランダ語)、"PL"(ポーランド語)、"PT-PT"、"PT-BR"(ポルトガル語)、"RU"(ロシア語)の場合のみ動作する。 可能なオプションは "default" (デフォルト) "more" - よりフォーマルな言語にする "less" (より少ない) - よりカジュアルな言語にする場合 |
また、以下のような拡張パラメータも用意されています。これらのパラメーターの使用方法については、後述の「XMLの取り扱い」をご参照ください。
パラメータ | オプション | 説明 |
---|---|---|
tag_handling | Optional | どのような種類のタグを処理するかの設定。現在利用可能なオプション: "xml" |
non_splitting_tags | Optional | 文章を分割しないXMLタグのコンマ区切りのリスト |
outline_detection | Optional | 詳細については、"XMLの処理"セクションを参照 |
splitting_tags | Optional | 常に分割を引き起こす XMLタグのコンマ区切りリスト |
ignore_tags | Optional | 翻訳されないテキストを示すXMLタグのコンマ区切りのリスト |
原文は、以下のWebページで確認できる。
browseURL("https://www.deepl.com/docs-api/translating-text/")
DeePL関数(自作関数)
まとめ
動作は少し遅いけど、、
この翻訳は素晴らしい。