IBM Watson Car_Demo サンプルをやってみるその3


IBM Watson Car_Demo サンプルをやってみるその3

■ はじめに

 前回はIBM WatsonのチュートリアルCar_Demoについて、備忘録とワークススペースについて投稿してきました。
 さて今回はCar_Demoを日本語するための準備のために、Language Transaltorについて再び備忘録を投稿します。 

■ 前提

 IBM Watson Car_Demo サンプルをやってみるその1およびその2を完了していること。
 curlをインストールする。

■ IBM Watson Language Translatorを試す

 IBM Cloudeにログイン
 

 ダッシュボードでカタログをクリック
 

 カタログの左リストからWatsonをクリック

 Language Traslatorをクリック

Language Translatorのサービス作成画面

 もちろん、ライトプラン

 作成ボタンクリック

 またまたチュートリアル(それも英語)ドカン!

 めけずに、まずServicesをクリック

 Language TranslatorサービスをSelected

 サービスの追加をクリック

 新規プロジェクトの作成画面、プロジェクト名の入力:にデフォルトが設定済み
 そのまま採用(任意でいい)

 プロジェクト作成クリック

 プロジェクト作成エラー
 残念ながらライトプランでは、プロジェクトは作成できないようです。
 別のプランにする必要があります。
 最初のLanguage Translatorのサービス作成までで1インスタンスできていいるためです。
 チュートリアルのServicesをクリックする下りは不要(ガーン)
 トラップだ!

 ダッシュボードに戻って、Language Translatorのサービスができている確認
 できていました!
 サービス名をクリック

 サービス資格情報をクリック

 資格情報をクリック

 新規情報の追加画面、パラメーターはブランクのまま
 追加クリック

 資格情報が追加されます

 キー名を選択して、資格情報の表示をクリック
 url並びに、usernameとpasswordをメモに保存してください。

 チュートリアのStep1のコマンドを参照して翻訳してみます。
 curlをインストールする必要があります。

 
 curlのapiはここを参照して見てください。
 だたし、パラメータの指定に違いがあるところに注意です。

 × POST request 例

 curl -u "{username}":"{password}" \
 -X POST \
 -H "Accept: application/json" \
 -d '{"text":"Hello","model_id":"en-es"}' \
 "https://gateway.watsonplatform.net/language-translator/api/v2/translate"

 Windowsでは、エラーです。

 ○ Windows版

curl -u username:password -X POST -H "Accept: application/json" -d "{\"text\":\"Hello\","\model_id\":\"en-ja\"}" https://gateway.watsonplatform.net/language-translator/api/v2/translate

 改行をつけない、記号の前に\をつけるところがポイントです。
 英語→日本語の場合、model-idはen-jaにします。
 VSCodeのjson出力結果が文字化けしています。出力結果はUTF-8で戻ってきます。
 VSCodeのターミナルをUTF-8に設定します。

 VSCodeの設定→検索に「shellArgs.windows」を入力
 terminal.integrated.shellArgs.windowsの編集ボタンで編集をクリックして、右ウィンドウにコピーして下記のように編集します。

  "terminal.integrated.shellArgs.windows": [
    "/k",
    "chcp",
    "65001"
  ]

 ターミナルをexitして、Ctrl+Shift+@で再起動します。
 Active code page:65001が表示されれば、UTF-8に変更されました。

 違う英文を投入してみます。

 curl -u username:password -X POST -H "Accept: application/json" -d  "{\"text\":\"i feel like getting a coffee\",\"model_id\":\"en-ja\"}"  https://gateway.watsonplatform.net/language-translator/api/v2/translate

 翻訳結果が「iコーヒーが好きな気がする」になって(笑)、iをIとして認識してくれないようです。
 また,curlでUTF-8でbody writeエラーが出力されるようです、予想ですが送信している文字がUTF-8でないため怒られているようです。特に翻訳に影響がないようなので一旦無視して進みます。

 iをIにした英文を投入すると、私と翻訳してくれました。(翻訳のくせがありそうです)

 curlを使えば、Watsonで英語を日本語へ翻訳できそうです。
 前回の「car_waorksapce.json」のIntents、Entities、Dialog_nodesをこのLanguage Translatorの機能で日本語化します。

■ まとめ

 WatsonのLanguage Translatorをローカルから利用するには、curlで入力文を投入することで翻訳結果を取得できます。
 Watsonの翻訳には癖がありそうです。AIにも無くて七癖的な人間味がありそうで興味深いです。
 次回はこのLanguage Translatorで「car_workspace.json」を一括翻訳にチャレンジします。

以上、おそまつ