SlideShare a Scribd company logo
1 of 31
Microsoft Azure
Translator Text APIで自動翻訳
(アジュール)
欢迎参加! 中国(China)IT勉強会 @ Oisix
2017/06/27
本日のサンプルコードはgithubの個人アカウントに置いてます
https://github.com/grachro/MicrosoftTranslatorTextApi-JavaSample
発表する人:小林弘明
所属:オイシックス株式会社
海外事業部システムセクション
最近の興味は、DevOps/SRE
Ansible/Docker/Reactive/Microservices
自動翻訳する動機
日本で展開している、おいしっくすくらぶは、
旬の安心安全なオーガニック野菜を毎週お届けする
ECの定期宅配サービスです。
定期宅配には
毎週たくさんのWebページと食品情報のメンテナンスが必要。
毎週どんどん変わる
Webページと食品の情報
大勢の売り場担当者や
デザイナーが更新
香港
上海
今年この日本で展開している定期宅配を
中国ではじめる計画です。
日本語
Webページ
中国サイト開設当初は、ずっと少ない人数で、
更新をする必要があります。
中国語
Webページ
少しでもオペレーションの負荷を下げるため、
中国語の叩き台をMicrosoft Azureの
Translator Text APIで自動翻訳します。
日本語
Webページ
中国語
Webページ
仕上げは
人力で
頑張る
自動翻訳
した
中国語
Translator
Text API
翻訳APIを使う前に
中国語の
字体について
中国語には2つの字体があります。
中国本土で使われてい
る字体。日本の漢字に
比べると簡略化されて
いる。
簡体字 繁体字
香港と台湾等で使われ
ている字体。日本の旧
字体に近い。
(同じ繁体字でも香港と台湾では違いがある。)
この簡体字と繁体字をシステム的に管理するためには、
Localeコードを使用します。
Localeコード = 言語コード + 地域コード
(大雑把な説明です)
参考https://docs.oracle.com/cd/E26924_01/html/E27144/glmbx.html
言語コードは国際標準化機構がISO 639で決めている
Localeコード = 言語コード + 地域コード
簡体字 = zh(中国語)
繁体字 = zh(中国語) どちらも同じ
CN(中華人民共和国)
HK(香港)
Localeコード = 言語コード + 地域コード
地域コードはISO 3166で決められている
中国本土の中国語
香港の中国語
日本の日本語
アメリカ合衆国の英語
Localeコード = 言語コード + 地域コード
簡体字 = zh-CN
繁体字 = zh-HK
日本語 = ja-JP
英語 = en-US
Translator Text APIを
使うための前準備
Microsoft Azureのサイトで
アカウントを作成します。
https://azure.microsoft.com/ja-jp/
https://azure.microsoft.com/ja-jp/free/
1ヶ月無料で使えます。
ただし、クレジットカード
番号の入力が必要です。
こんな感じの登録をします。
手続きが終わるとAzureのポータル
サイトが開くので「新規」を
押します。
「Translator Text API」で検索して。
検索結果を選択
次の画面で
「作成」を押して
名前、リソースグルー
プ等々をいれて、
サブスクリプションを
作成します。
テスト用なら適当な値で大丈夫。
Translator Text APIが使えるよう
になったので、
[アクセス キーを表示...]
キー 1の
値を後で使います。
Translator Text APIを
Javaから使う2ステップ
公式ドキュメント
https://docs.microsoft.com/ja-jp/azure/cognitive-
services/translator/text-overview
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
public class Token {
public static String get(String キー管理のキー1) throws Exception {
HttpPost request = new HttpPost("https://api.cognitive.microsoft.com/sts/v1.0/issueToken");
request.setHeader("Ocp-Apim-Subscription-Key", キー管理のキー1);
return EntityUtils.toString(HttpClients.createDefault().execute(request).getEntity());
}
}
ステップ1
Authentication Tokenを取得
https://github.com/grachro/MicrosoftTranslatorTextApi-JavaSampleサンプル
import org.apache.commons.codec.net.URLCodec;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import com.google.gson.Gson;
public class Translater {
public static String translate(String accessToken, String fromLocale, String toLocale, String text) throws Exception {
String encoded = new URLCodec().encode(text, "UTF-8");
String theRequestURI = "https://api.microsofttranslator.com/v2/Ajax.svc/Translate";
String url = String.format("%s?from=%s&to=%s&text=%s", theRequestURI, fromLocale, toLocale, encoded);
HttpGet request = new HttpGet(url);
request.setHeader("Authorization", "Bearer " + accessToken);
String resultJson = EntityUtils.toString(HttpClients.createDefault().execute(request).getEntity());
return new Gson().fromJson(resultJson, String.class);
}
}
ステップ2 translatorAPIで翻訳します。
https://github.com/grachroサンプル
token
翻訳元
Locale 翻訳先
Locale
文書
String token = Token.get(キー管理のキー1);
String text = "クラウド";//<-日本語
String fromLang = "ja-JP";
String simplifiedChinese = Translater.translate(token, fromLang, "zh-CN", text);
String traditionalChinese = Translater.translate(token, fromLang, "zh-HK", text);
String english = Translater.translate(token, fromLang, "en-US", text);
System.out.printlnsimplifiedChinese); //云计算 <-簡体字
System.out.println(traditionalChinese); //雲計算 <-繁体字
System.out.println(english); //Cloud <-英語
日本語から簡体字・繁体字・英語に翻訳する場合
Translator Text APIは文章も翻訳できます。
一流の生産者が作ったおいしい野菜
领先的美味蔬菜生产商
領先的美味蔬菜生產商
Leading producer of delicious veggies
簡体字
繁体字
英語

More Related Content

Similar to Microsoft translator text apiで自動翻訳

「AWSを活用して少人数で複数のサービスを運用するコツ」〜jawsug in nagoya〜
「AWSを活用して少人数で複数のサービスを運用するコツ」〜jawsug in nagoya〜「AWSを活用して少人数で複数のサービスを運用するコツ」〜jawsug in nagoya〜
「AWSを活用して少人数で複数のサービスを運用するコツ」〜jawsug in nagoya〜
Teruo Adachi
 
fluxflex meetup in Tokyo
fluxflex meetup in Tokyofluxflex meetup in Tokyo
fluxflex meetup in Tokyo
Kyosuke Inoue
 

Similar to Microsoft translator text apiで自動翻訳 (20)

kintone Café 広島 Vol.2
kintone Café 広島 Vol.2kintone Café 広島 Vol.2
kintone Café 広島 Vol.2
 
Docker on azure!進化していくcontainerを覗いてみよう!
Docker on azure!進化していくcontainerを覗いてみよう! Docker on azure!進化していくcontainerを覗いてみよう!
Docker on azure!進化していくcontainerを覗いてみよう!
 
開発中のiOSアプリ紹介 #okamoba
開発中のiOSアプリ紹介 #okamoba開発中のiOSアプリ紹介 #okamoba
開発中のiOSアプリ紹介 #okamoba
 
裏クラウドデザインパターン
裏クラウドデザインパターン裏クラウドデザインパターン
裏クラウドデザインパターン
 
UnityとAmazon Web Servicesで生み出す新しい価値
UnityとAmazon Web Servicesで生み出す新しい価値UnityとAmazon Web Servicesで生み出す新しい価値
UnityとAmazon Web Servicesで生み出す新しい価値
 
ReactNative はじめの一歩
ReactNative はじめの一歩ReactNative はじめの一歩
ReactNative はじめの一歩
 
「AWSを活用して少人数で複数のサービスを運用するコツ」〜jawsug in nagoya〜
「AWSを活用して少人数で複数のサービスを運用するコツ」〜jawsug in nagoya〜「AWSを活用して少人数で複数のサービスを運用するコツ」〜jawsug in nagoya〜
「AWSを活用して少人数で複数のサービスを運用するコツ」〜jawsug in nagoya〜
 
20170418 aws black-belt-architecture_pattern_of_serverless
20170418 aws black-belt-architecture_pattern_of_serverless20170418 aws black-belt-architecture_pattern_of_serverless
20170418 aws black-belt-architecture_pattern_of_serverless
 
fluxflex meetup in Tokyo
fluxflex meetup in Tokyofluxflex meetup in Tokyo
fluxflex meetup in Tokyo
 
20201008 GitHub at Microsoft
20201008 GitHub at Microsoft20201008 GitHub at Microsoft
20201008 GitHub at Microsoft
 
面白いは正義
面白いは正義面白いは正義
面白いは正義
 
通常の3倍の速度で プログラミング!? 「 Emacsキーバインドのすすめ」
通常の3倍の速度でプログラミング!?「 Emacsキーバインドのすすめ」通常の3倍の速度でプログラミング!?「 Emacsキーバインドのすすめ」
通常の3倍の速度で プログラミング!? 「 Emacsキーバインドのすすめ」
 
サイボウズのサービスを支えるログ基盤
サイボウズのサービスを支えるログ基盤サイボウズのサービスを支えるログ基盤
サイボウズのサービスを支えるログ基盤
 
kintone café 大阪 Vol.3
kintone café 大阪 Vol.3 kintone café 大阪 Vol.3
kintone café 大阪 Vol.3
 
皆さん!ふくてんが来ましたよ!!
皆さん!ふくてんが来ましたよ!!皆さん!ふくてんが来ましたよ!!
皆さん!ふくてんが来ましたよ!!
 
kintoneアプリをjavascriptでいじってみよう
kintoneアプリをjavascriptでいじってみようkintoneアプリをjavascriptでいじってみよう
kintoneアプリをjavascriptでいじってみよう
 
株式会社リブセンス会社説明資料(Kiitok Career Fair 2019)
株式会社リブセンス会社説明資料(Kiitok Career Fair 2019)株式会社リブセンス会社説明資料(Kiitok Career Fair 2019)
株式会社リブセンス会社説明資料(Kiitok Career Fair 2019)
 
オルターブースが実践する .NET Core “ガチ” 開発
オルターブースが実践する .NET Core “ガチ” 開発オルターブースが実践する .NET Core “ガチ” 開発
オルターブースが実践する .NET Core “ガチ” 開発
 
もっとサーバーレスを手軽に便利に!Azure Logic Apps
もっとサーバーレスを手軽に便利に!Azure Logic Appsもっとサーバーレスを手軽に便利に!Azure Logic Apps
もっとサーバーレスを手軽に便利に!Azure Logic Apps
 
初心から一週間で作ってみた Kinesis Client Library for Go
初心から一週間で作ってみた Kinesis Client Library for Go初心から一週間で作ってみた Kinesis Client Library for Go
初心から一週間で作ってみた Kinesis Client Library for Go
 

Microsoft translator text apiで自動翻訳