SlideShare a Scribd company logo
1 of 100
Download to read offline
2016年7月16日
日本アイ・ビー・エム株式会社
東京ソフトウェア開発研究所、ワトソン製品開発
小峯宏秋
Watson API トレーニング
2016/7/16
© Copyright IBM Corporation 2016
 この資料は、新たに IBM Watson を使用したアプリケーションを作成
しようとしている方に向けての最初の説明資料として作成しました。
 本資料で十分説明できない内容や追加の情報については、なるべく参考
文献や資料のリンクを挿入しています。そちらも併せて参照してくださ
い。
 本資料に含まれる実習を行うための補助資料を LabFiles として提供し
ています。実習を行う際に使用してください。
– 本資料に記載されているコードやコマンド例は、プレゼンテーション
ソフトの自動変換で不適切な文字に変換されていることがありますの
で、補助資料の operations.txt の内容を参照してください。
 本資料は作成時点での最新情報を記載していますが、紹介している製品
や技術リソースの内容は予告なく変更されることがありますことをご留
意ください。
この資料について
22016/7/16
© Copyright IBM Corporation 2016
 Watson サービス
– IBM Watson の展開
– Watson サービスを利用したアプリケーション
 Q&A ソリューションに利用できる Watson サービスの詳細
– Natural Language Classifier サービス
– Retrieve and Rank サービス
– Dialog サービス
– Document Conversion サービス
– Speech to Text サービス
– Text to Speech サービス
 日本語に対応したその他のWatson サービス
– Visual Recognition
– Personality Insight
アジェンダ
32016/7/16
© Copyright IBM Corporation 2016© Copyright IBM Corporation 2016
Watson サービス
IBM Watson の展開
IBM Bluemix と Watson サービスの概要
42016/7/16
© Copyright IBM Corporation 2016
IBM Watson の展開
52016/7/16
IBM Watson
発祥
• 質問応答システム@Jeopardy!
現在
• コグニティブ・システムを実現する技術・製品・サービス
• コグニティブ・システムを実現するためWebサービス群
(IBM Watson Developers Cloud)
© Copyright IBM Corporation 2016
 集約された Q&A コグニティブサービスとしてはじまった Watson サー
ビスは、主要な機能単位でコンポーネント化されると共に、様々な新し
いコグニティブサービスが追加されています。
 ここのサービスを組み合わせて使用することで、柔軟なコグニティブソ
リューション開発を可能にしました。
 アプリケーションの中に組みこみ可能な豊富なコグニティブサービスを
順次提供しています。
Bluemix の Watson サービス
Watson
Services APIs
Watson コグニティブ・サービスの
自由な組み合わせによる機能実現
NL Classifier
Retrieve & Rank
Document Conversion
Dialog
Watson
QA API
集約されたWatson Q&A
コグニティブ・サービス
2016/7/16 6
© Copyright IBM Corporation 2016
2016年 7月、利用可能なサービス
72016/7/16
Dialog
Relationship
Extraction
Document
Conversion
Retrieve and
Rank
Language
Translation
Natural
Language
Classifier
Concept
Insights
Personality
Insights
AlchemyAPI
(Language, Vision, News)
Tone
Analyzer
Text To
Speech
Speech To
Text
Tradeoff
Analytics
Visual
Insights
experimental
beta
Visual
Recognition
experimental
Conversation
to be deprecated
deprecated
日本語に対応したサービス
© Copyright IBM Corporation 2016
サービスの種類
82016/7/16
Language
• テキストから
情報を抽出
• アプリケーシ
ョンはテキス
トで記述され
たコンテキス
を理解できる
ようになる
Speech
• 音声からテキ
スト、テキス
トから音声を
変換
• アプリケーシ
ョンが音声を
扱えるように
なる
Vision
• 画像から情報
や知見を抽出
• アプリケーシ
ョンは画像か
らコンテキス
を理解できる
ようになる
Data Insights
• データを効率
的に処理
外部ニュース
の取り込み
数値データの
組み合わせを
最適化
© Copyright IBM Corporation 2016© Copyright IBM Corporation 2016
IBM Bluemix と
Watson サービスの概要
IBM Watson の展開
IBM Bluemix と Watson サービスの概要
92016/7/16
© Copyright IBM Corporation 2016
Bluemix と Watson Developer Cloud の関係
102016/7/16
IBM Bluemix 環境
アプリケーション
Watson Developer Cloud 環境
Watson
サービス
(API)
REST API
サービスへの
アクセス情報
(ユーザーIDと
パスワード)
アプリケーション
サービスへの
アクセス情報
(ユーザーIDと
パスワード)
REST API
Bluemix上で動いていないアプリケーションに関しては
Bluemix上で発行されたアクセス情報をコピーして、利用
バインドで提供
© Copyright IBM Corporation 2016
 Watson Developer Cloud は Watson コグニティブサービスを提供す
る クラウド環境です。
– 様々な Watson サービスは REST API を通じて利用可能です。
– Watson サービスを使用してソリューションを効率よく開発するた
めの情報を提供しています。
• サービスのドキュメント
• デモンストレーション
• サンプルコードやスターターキット
• 開発者向けのコミュニテイへのリンク(IBM developerWorks)
IBM Watson Developers Cloud
112016/7/16
https://www.ibm.com/smarterplanet/us/en/ibmwatson/developercloud/
© Copyright IBM Corporation 2016
Bluemix と Watson Developer Cloud
122016/7/16
 アプリケーションの実行環境
 Watson を含む各種サービスの作
成と管理、および認証情報の管理
 サービス利用に対する課金の確認
 システムとサービスの状況確認
 IBM によるサポート
 Watson サービスの実体
 Watson サービスで開発を行うた
めの各種リソース
– ドキュメント
– SDK
– サンプルコード
– デモアプリケーション
IBM Bluemix の提供するもの
https://console.ng.bluemix.net/
IBM Watson Developer Cloud が
提供するもの
https://www.ibm.com/watson/developercloud/
 Watson に関する質問 - Questions in Watson space
• https://developer.ibm.com/answers/smart-spaces/25/watson.html
 サービスや技術に関する情報 - Watson blog
• https://developer.ibm.com/watson/blog/
IBM developerWorks http://www.ibm.com/developerworks/
© Copyright IBM Corporation 2016
Watson サービスのドキュメント
132016/7/16
https://www.ibm.com/watson/developercloud/doc/
Watson service documents
Watson API Reference
• API 呼び出しの方法と、
Curl, Node, Java, Python の
呼び出し例を表示
© Copyright IBM Corporation 2016
Natural Language Classifier サービスを新規に作成し、作成したサービ
スの資格情報を取得してください。また作成したサービスの API に cURL
でアクセスしてください。
1. Bluemix にログインします。
2. 新規に Natural Language Classifier サービスを作成します。
3. 作成したサービスの概要からドキュメントを確認します。
4. 作成したサービスの資格情報を確認し、サービスにアクセスするため
のユーザー名とパスワードを取得します。
5. 作成した Natural Language Classifier サービスを cURL で呼び出し
ます。
実習 1: Bluemix で Watson サービスを作成する
142016/7/16
© Copyright IBM Corporation 2016
Natural Language Classifier (NLC) サービスの作成手順
1. 以下の URL にアクセスして Bluemix へログインします。
– http://Bluemix.net
• ユーザー名が表示されず「ログイン」リンクが表示されるときは、
その「ログイン」リンクをクリックしてください。
2. カテゴリ一覧で「Watson」をクリックします。
実習手順:Watson サービスの作成手順
152016/7/16
© Copyright IBM Corporation 2016
 右上の「今すぐ始めましょう。」の横の「+」アイコンをクリックしま
す。
実習手順:Watson サービスの作成手順
162016/7/16
© Copyright IBM Corporation 2016
3. 左側のカテゴリで「Watson」が選択された状態で、使用したいサービ
ス(今回は Natural Language Classifier)をクリックします。
実習手順:サービスの作成手順
172016/7/16
© Copyright IBM Corporation 2016
4. 「サービス名」などを確認して「作成」ボタンをクリックします。
実習手順:サービスの作成手順
182016/7/16
接続は「アンバインドの
まま」で構いません。
サービス名と資格情報名は必要に
応じて変更してください。
通常はデフォルトの設定を使って
構いません。
もし Bluemix アカウントの提供者から
指定があれば、指定された価格プラン
を使用してください。
クリックしてサービスインスタンスを
作成します。
© Copyright IBM Corporation 2016
4. サービスが作成されると「概要」ページが開かれ、この画面より「資
料」や「デモ」のリンクを開くことも可能です。
実習手順:サービスの作成手順
192016/7/16
GUI で分類器を管理できる
Toolkit もあります。
ドキュメントや
デモページへのリンク
© Copyright IBM Corporation 2016
5. 「サービス資格情報」タブを開いて、作成したサービスにアクセスす
るための認証情報を取得します。
実習手順:サービスの作成手順
202016/7/16
ここで生成された資格情報(URL、ユーザー名、パスワード)で
Watson サービスを使用します。あとの手順で使うので、
これらをテキストファイルに記録してください。
資格情報が表示されないときは、
ここをクリックして追加します。
© Copyright IBM Corporation 2016
 cURL(カール)
– 様々なプロトコルでのネットワークリクエストを発行できるコマンド
ラインツールです。cURL を使用することで、HTTP リクエストの呼
出し内容やレスポンスのデータを確認することができます。
– 取得できる生のデータや、HTTP リクエストのヘッダーなども確認で
きるので、詳細な調査などでは便利。
1. Windows のコマンドプロンプトを開きます。
2. 必要に応じて cURL の実行ファイルのあるフォルダにパスを設定し、
cURL コマンドから呼び出せるようにします。
3. 「curl –v」とタイプしてバージョン情報を確認します。
実習手順: Watson サービス API を cURL で呼び出す
212016/7/16
> set path=c:¥tools¥curl;%path%
> curl -v
curl 7.33.0 (x86_64-pc-win32) libcurl/7.33.0 OpenSSL/0.9.8y zlib/1.2.8
libssh2/1.4.3
© Copyright IBM Corporation 2016
 Natural Language Classifier サービスの、登録済みの分類器一覧を取
得する API を呼び出します。
4. 以下のコマンドを発行し、作成済みの NLC サービスに分類器が登録さ
れていないことを確認します。
実習手順: Watson サービス API を cURL で呼び出す
222016/7/16
> curl -k -u {username}:{password} -X GET
"https://gateway.watsonplatform.net/natural-language-
classifier/api/v1/classifiers"
注意
※ {username} と {password} は、作成した NLC サービスの資格情報の値を
使用します。
※ -k オプションはローカルの SSL 認証情報がないためにエラーが出るときに、
SSL 認証のチェックを一時的に止める設定です。
※ 「-X GET」は省略しても構いません。
※ コマンドは1行で入力します。
※ 登録されている分類器の名前など日本語が含まれていると、UTF-8 表示のた
めに文字化けします。-o オプションでファイルに出力して、エディタで開い
て確認してください。
© Copyright IBM Corporation 2016
 AlchemyAPI とその関連サービスでは、資格情報が api_Key として提
供されます。
参考情報:Alchemy API での資格情報
232016/7/16
※ 無料プランでは、api_key の発行後は24時間次の api_key を生成できません。
© Copyright IBM Corporation 2016
 Watson Developer Cloud ページの下段に記載
• https://www.ibm.com/watson/developercloud/
 その他の SDK とサンプルも、開発中も含めて GitHub に公開していま
す。
– https://github.com/watson-developer-cloud
• android-sdk
• node-red-node-watson
• speech-javascript-sdk
• text-to-speech-java
Watson SDKs
242016/7/16
© Copyright IBM Corporation 2016
 開発する言語とご自分の好みで、好きな統合開発環境を使ってください。
 Eclipse であれば、IBM Eclipse Tools for Bluemix が便利です。
• https://marketplace.eclipse.org/content/ibm-eclipse-tools-bluemix
– 様々な操作を Eclipse GUI で実施可能
• アプリケーションやサービスの作成と管理
• Cloud Foundry によるアプリケーションのデプロイ
• Bluemix で稼動する Java アプリケーションのリモートデバッグ
– 参考文献
• Bluemix 上で稼動する Web アプリケーション開発方法 - Java 編
• https://www.ibm.com/developerworks/jp/cloud/library/j_cl-bluemix-java-app/
• IBM Eclipse tools for Bluemix の構成手順
• http://www.slideshare.net/hiroakikomine/ibm-eclipse-tools-for-bluemix
開発環境は?
252016/7/16
© Copyright IBM Corporation 2016© Copyright IBM Corporation 2016
Watson サービスの詳細
• Natural Language Classifier サービス
• Retrieve and Rank サービス
• Dialog サービス
• Document Conversion サービス
• Speech to Text サービス
• Text to Speech サービス
262016/7/16
© Copyright IBM Corporation 2016
Watson API でのソフトバンクとの協業
272016/7/16
Dialog
Document Conversion
Retrieve and Rank
Natural Language
Classifier
Text To Speech
Speech To Text
© Copyright IBM Corporation 2016
質問応答のシナリオに適用できるサービスの組み合わせ
282016/7/16
意図判別
対話
情報検索
音声
コミュニ
ケーション
コンテンツ
Dialog
ルールによる応答と
対話のシステム
Document Conversion
既存文書を Watson で利用でき
るコンテンツに変換
Retrieve and Rank
検索と機械学習アルゴリズムに
よるランキング
Natural Language Classifier
機械学習による自然文の意図の分類
Text To Speech
テキストから音声での発話
Speech To Text
音声からテキストへの変換
Watson を組み込んだ
対話型のアプリケーション
© Copyright IBM Corporation 2016
活用想定例:仮想ショッピング店員
292016/7/16
Speech to Textサービス
•ユーザーの音声をテキストに変換し、
他のサービスの入力とする
Dialogサービス
•対話のフローを制御
•対話の中で引きだした情報を管理
服のサイズ、好みの色など
Text to Speechサービス
•アプリケーションからの応答から
音声を合成して、ユーザーに出力する
Natural Language Classifier サービス
•短いテキストから意図を分類
「大きめのサイズはありますか」
「少し、小さいです」
「need_bigger_size」クラスに分類
•会話の分岐を決定
使用しているサービス
お客様は音声でリクエストし、
Watson も音声で回答します。
© Copyright IBM Corporation 2016
Watson質問応答サービスのアプローチと位置づけ
302016/7/16
意図
同じ意図の質問数
1
10
20
頻繁に聞かれる質問
稀な質問
Watsonが提供する複数の推論アルゴリズム
質問を分類し
事前に用意された回答やアクションへつなげる 膨大な知識から回答を探索し評価する
Watson Engagement Advisor
(Natural Language Classifier)
Knowledge Expansion
(Retrieve & Rank)
© Copyright IBM Corporation 2016
カスタマーサポートでユースケース
312016/7/16
?
!
仮想エージェント
?
!
?
!
エージェント支援(コールセンター)
仮想エージェントのシナリオは Natural Language Classifier サービスに向いています。
 人間のエージェントはより複雑で難しい質問に集中できます。
Retrieve and Rank サービスは、エージェンが未知の回答を探し出す手助けとなります。
© Copyright IBM Corporation 2016© Copyright IBM Corporation 2016
Watson サービスの詳細
• Natural Language Classifier サービス
• Retrieve and Rank サービス
• Dialog サービス
• Document Conversion サービス
• Speech to Text サービス
• Text to Speech サービス
322016/7/16
© Copyright IBM Corporation 2016
 自然言語の処理に深層学習(Deep learning)を適用し、入力されたテ
キストの意図を理解して、あらかじめ定義したクラスに分類するサービ
スです。
 あらかじめ大量の文章を読み込むことで、自然言語の基礎知識(base
knowledge)を持ちます。
 適用業務分野で定義されたクラスとサンプルのテキストを集めたトレー
ニングデータで学習させた分類器で、新たに与えられる未知の文を分類
してその意図を認識します。
 意図とは
– 質問や発言から言語に含まれるノイズを取り除いて、それが何を言お
うとしているか、あるいは何を聞こうとしているのかということ
例:
• 「銀行口座はどうやって開けますか?」と
「銀行で口座を開くために必要なものを教えてください。」
• どちらの質問も「銀行で口座を開く」と言う同じ意図を持ってお
り、それ以外の言葉はノイズです。
Natural Language Classifier サービス – 概要
332016/7/16
© Copyright IBM Corporation 2016
Natural Language Classifier サービスの – 技術
34
Natural Language Classifier サービスは機械学習のアルゴリズムを使用して、
入力された短いテキストからその意図を判別して返します
アプリケーション
Deep
Learning
? !
意図(隠れたシグナル)
+ ノイズ
分類器 意図テキスト
回答
2016/7/16
Natural Language
Classifier サービス
© Copyright IBM Corporation 2016
 自然言語の処理
1. 質問に回答するシナリオ
 ユーザーが問い合わせたりタイプした質問の回答を予想する
2. ツィッター/SMS メッセージの分類
 ツィッターのメッセージの意図をくみ取り、適切な対応をする
3. 感情分析
 メッセージに含まれるその人の感情を特定し、直接の対応をする
4. Dialog と組み合わせて分類を行う
 手順を追ったガイダンスを行う中でユーザーの状況や求めるもの
を特定する
Natural Language Classifier サービス – 利用シナリオ
352016/7/16
© Copyright IBM Corporation 2016
アプリケーション
NLC サービス – ライフサイクルと呼出し手順
36
分類器の作成
[POST] /v1/Classifiers
ステータスの取得
[GET] /v1/Classifiers/
{Classifier_id}
質問の分類
[POST/GET] /v1/Classifiers/{Classifier_id}/classify
分類結果の処理
(アプリケーション側の処理)
分類器の削除
[DELETE] /v1/Classifiers/{Classifier_id}
“Training”
トレーニングデータを変更したときには、変更したデータを送信して
新しい分類器を作成します。
“Available”
トレーニングデータを送信して
新しい分類器を作成します。
作成した分類器が「Available」に
なるのを待ちます。
アプリケーションは、ラベルをも
とにユーザーへの応答を行います。
質問を投入して分類器による分類
を行い、ラベルを返します。
不要になった分類器を削除
します。
2016/7/16
© Copyright IBM Corporation 2016
 トレーニングデータ
– あらかじめ定義した意図を示すクラスラベルと、その意図に該当する
サンプルの文章を集めた CSV ファイル
• UTF-8 でエンコード
• 最大で 15,000レコードで、1行は1024文字以下
• その他の注意事項
• http://www.ibm.com/watson/developercloud/doc/nl-classifier/data_format.shtml#top
 トレーニングメタデータ
– 分類器の言語設定と名前を定義
NLC サービス – トレーニングデータ
372016/7/16
"今日はどれくらい暑い?",temperature
"外はどれくらい暑い?",temperature
"蒸し暑くなるかなあ?",temperature
…
"風が強いか?",conditions
"今日雨が降るか?",conditions
"雨の可能性があるかな?",conditions
…
{
"language":"ja",
"name":"My Classifier“
}
トレーニングデータ メタデータ
© Copyright IBM Corporation 2016
 NLC API を直接呼び出す
– http://www.ibm.com/watson/developercloud/
natural-language-classifier/api/v1/
?curl#create_classifier
 Watson SDK (Java/Node/Python)から
呼び出す
– http://www.ibm.com/watson/developercloud/
natural-language-classifier/api/v1/
?node#create_classifier
 NLC Toolkit を利用
– 作成した NLC サービスの「管理」ページから
「Access the beta toolkit」ボタンをクリック
NLC 分類器の作成方法
382016/7/16
© Copyright IBM Corporation 2016
 気温と天候についての会話を分類したトレーニングデータ
weather_data_train_ja.csv を使用します。
– LabFiles¥Exercise_01 にファイルがあります。
 NLC Toolkit を用いて自然言語を分類する分類器を作成し、分類器でト
レーニングが完了するのを待ちます。
– トレーニングに数分から数十分の時間がかかります。
 分類器に適当な文を入力して正しく分類できるかどうかを確認します。
実習 2-1:NLC 分類器の作成
392016/7/16
© Copyright IBM Corporation 2016
1. Bluemix のダッシュボードで先ほど作成した NLC サービスを開き、
「管理」ページを開きます。
2. 「Access the beta toolkit」ボタンをクリックします。
実習手順: NLC 分類器の作成
402016/7/16
© Copyright IBM Corporation 2016
3. 「確認許可」画面で「確認」ボタンをクリックします。
4. Toolkit 画面の「Classifiers」ページが開かれるので、「Add training
data」の「+」をクリックします。
実習手順: NLC 分類器の作成
412016/7/16
© Copyright IBM Corporation 2016
5. 「Upload training data」ボタンをクリックして、
weather_data_train_ja.csv をアップロードします。
6. トレーニングデータが適切にアップロードされたことを確認します。
実習手順: NLC 分類器の作成
422016/7/16
© Copyright IBM Corporation 2016
7. 「Create classifier」ボタンをクリックして分類器を作成します。
8. 「Create Classifier」画面で言語で日本語を選択し、分類器の名前を
適当に設定して「Create」ボタンをクリックします。
9. 分類器が作成され、トレーニングが開始されます。トレーニングには
数分から数時間かかります。
実習手順: NLC 分類器の作成
432016/7/16
© Copyright IBM Corporation 2016
 ニューラルネットワークを用いた人工知能の構築技術の総称
– 脳(神経細胞)の働きを模した学習アルゴリズム
 特に、深く大規模な構造を備えていることが特徴
Deep Learning(深層学習)
44
http://www.slideshare.net/nlab_utokyo/deep-learning-49182466
2016/7/16
Linear
Transformation
Linear
Transformation
Linear
Transformation
Linear
Transformation
1階層目
「線」
入力「画
素」
2階層目「部
品」
3階層目「物
体」
© Copyright IBM Corporation 2016
テキストを理解するために単語からはじめる
単語の意味を、それに頻繁に付随しているものから学びます
 この学習をたくさんの自然言語テキストから行います
45
rough the night with the stars shining so brightly, it
made in the light of the stars. It all boils down, wr
surely under the bright stars, thrilled by ice-white
m is dazzling snow, the stars have risen full and cold
un and the temple of the stars, driving out of the hug
in the dark and now the stars rise, full and amber a
bird on the shape of the stars over the trees in front
But I couldn’t see the stars or the moon, only the
they love the sun, the stars and the moon. None of
r the light of the shiny stars. The plash of flowing w
2016/7/16
© Copyright IBM Corporation 2016
 莫大な数のテキストで、さまざまなコンテキストを調べて、単語のベク
トル表記を学習します。
 その結果、単語はもはやばらばらなシンボルではなくなります。
– “brightly”(明るく) は他の適当に選んだ単語によりも “shining”(輝
く) と関連性がある
– 学習された表現空間で、線形の意味関連が現れてくる
• “king” と “queen” の関係は、
“man” と “woman” の関係と同じ
• Paris – France + Italy ≈ Rome
単語や文字をベクトル表記で表現する
46
man
woman
uncle
aunt
king
queen
2016/7/16
© Copyright IBM Corporation 2016
トレーニングデータと Classifier の仕組み
トレーニングデータにより
たくさんのサンプルの質問を投入
Classifier が意図を探す際に類似のテキストを
見つける可能性が高まり、結果の信頼度もあがる
Classifier
Natural Language Classifier
意図
 Classifier の能力はトレーニングデータの内容で決まります。
トレーニングデータ
サンプル
質問 サンプル
質問
サンプル
質問 サンプル
質問
47
新しい
質問
トレーニングモデル
2016/7/16
© Copyright IBM Corporation 2016
ユースケース: 病院の代表電話にかかってくる電話の対応
(病院の仮想エージェント)
意図の階層:
– 施設情報
• 面会時間
• 駐車場
• 食堂
• 交通手段
• 携帯電話の使用
– 入院案内
• 衣類のレンタル
• 食事情報
• 個室案内
• 入院手続き…
意図の階層化の例 – ひとつの分類器
それぞれのリーフ要素
が意図を表しています。
それぞれの意図に対し
て必要な回答とそれを
表示するための仕組み
を用意します。
48
意図の階層化を行うことで、意図の粒度を合わせるとともに、
対応すべき必要な意図が抜けることを防ぐことができます。
2016/7/16
© Copyright IBM Corporation 2016
 複数の分類器を用意し、同時にあるいは順番に呼ぶこともできます。
 同じテキストから異なる種類の意図を判別するために、複数の分類器を
使用します。
「要望の種類」の分類器
複数の分類器を使用する例
49
「水漏れがして
服が汚れたよ」
メンテナンス
要員の派遣
支配人よる
フォローアップ対応
ホテルのゲストからの
メッセージの例:
設備
サービス時間
ルームサービス
ランドリー
「感情」の分類器
怒り
喜び
感謝
苦情
2016/7/16
© Copyright IBM Corporation 2016
 作成した分類器のステータスを確認し、トレーニングが完了した分類器
で適当な文を入力してその分類結果をテストします。
実習手順
1. NLC Toolkit で分類器のステータスが「Available」になっているのを
確認し、「Test and improve performance」ボタン(右矢印)をク
リックします。
2. 「Improve performance」ページで適当な文を入力して分類器のテス
トをします。
実習 2-2: NLC 分類器でのテキストの分類
502016/7/16
© Copyright IBM Corporation 2016
 適当なユースケースで簡単な会話を行うアプリケーションを開発すると
想定して、トレーニングデータを作成し分類器をトレーニングください。
– 例:
• 研究室の紹介アプリケーション
• よろず相談エージェント
• 暇つぶしの話し相手
• バーチャル恋人
などなど
 トレーニングデータを作成するに当たり、以下の点を考慮してください。
– アプリケーションで回答する質問の範囲を決めて、それをカバーする
意図(クラス)を定義する。
– アプリケーションで回答しない質問の例を考える。必要に応じて回答
しない質問としてひとつのクラスに分類する。
→ 「申し訳ありませんが、その質問にはお答えできません。」
– トレーニングデータには、それぞれの意図に該当するなるべくリアル
なサンプルの質問文を用意する。
課題 1:NLC で仮想エージェントの作成
512016/7/16
© Copyright IBM Corporation 2016 522016/7/16
ジョージア工科大学のアショク・ゴール教授らの研究チームは、IBMの人工知能システムWatsonを使って、オンライン
学習プログラムのTAをコンピューターに担当させるという実験を行いました。なお、実験ではオンライン学習する学生
に、コンピューターのTAがいるという事実は伏せられています。
学生の質問に答えたり相談にのったりするコンピューターTAには「Jill Watson」という女性の名前が与えられました。
実際に学生への対応を始めるまでに、ゴール教授らは、Jillに約4万件分の学生からのメールやチャットを読み込ませて、
質問や相談に対する応答方法を学習させました。そして、Jill自身が「97%以上の精度で正しく答えられる」と判断した
質問にのみ応答することにして、実際にオンライン学習をする300人強の学生のための9人いるTAの一人として、2016
年1月からJillを運用し始めました。
ゴール教授によると、実際の教室での講義に比べるとはるかに多くの学生に学習の機会を与えられるオンライン学習での
最大の悩みは、学生から寄せられる大量の質問への対応であるとのこと。学生の質問の大半は、これまでにも、そしてこ
れからも何度も寄せられるであろう典型的な質問で、このありふれていて回答が決まっている質問への対応に、TAが忙
殺されているという現状があるそうです。そのため、Jillのように典型的な質問や相談に対応できるロボットTAが実用化
されれば、人間のTAにしかできない「より深い内容のやりとり」に「人間の」TAは集中することが期待でき、オンライ
ン学習はより大きな成果を上げられると考えられています。
人工知能Watsonが学生の教育アシスタント(TA)に
~学生たちはTAがコンピューターだとは気づかず
GIGAZINEニュースサイト翻訳のWSJの記事より
Imagine Discovering That Your Teaching Assistant Really Is a Robot http://www.wsj.com/articles/if-your-
teacher-sounds-like-a-robot-you-might-be-on-to-something-1462546621
© Copyright IBM Corporation 2016
 NLC の API Reference には、cURL の他に Node.js や Python での
API アクセス方法が記載されています。-d オプションをつけることで
API からのレスポンスを表示できるので、API の動きを理解できます。
 LabFiles の Exercise_3 フォルダに、サンプルの Node.js と Python
のコードがあります。以下の手順で実行してください。
1. 必要なライブラリのインストール
• [Node.js] npm install watson-developer-cloud
• [Python] pip install --upgrade watson-developer-cloud
2. 以下のファイルを編集して、サービスにアクセスする資格情報を設
定
• [Node.js] nlcConstants.js
• [Python] nlcConstants.py
3. 以下のコマンドで NLC 分類器の一覧を取得
• [Node.js] node nlcListClassifiers.js
• [Python] python nlcListClassifier.py
 注意
– Node.js では必要なライブラリを追加でインストールしてください。
– Python は 2.7 で動作確認しています。
実習 3: プログラムでの NLC サービスへのアクセス
532016/7/16
興味ある方は持ち帰って試してください
© Copyright IBM Corporation 2016© Copyright IBM Corporation 2016
Watson サービスの詳細
• Natural Language Classifier サービス
• Retrieve and Rank サービス
• Document Conversion サービス
• Dialog サービス
• Speech to Text サービス
• Text to Speech サービス
542016/7/16
© Copyright IBM Corporation 2016
 Retrieve and Rank サービスは、2つの情報検索のコンポーネントをひ
とつにまとめたサービスです:
– Apache Solr による検索 (Retrieve)
• http://lucene.apache.org/solr/
– 検索結果を改良する機械学習による再ランク (Rank)
 この組み合わせにより、検索結果にランカーによる再ランクが適用され、
より関連性のある結果を得ることができます。
Retrieve and Rank – 概要
552016/7/16
Retrieve Rank
ランカー
(トレーニングモデル)
質問
Retrieve によって
Solrで検索
された結果
Ranker で
再ランクされた
結果
回答ユニットの
ドキュメント
トレーニング
データ
Solr インデックス
(回答ユニットの
ドキュメント)
© Copyright IBM Corporation 2016
 Retrieve は、IBM プラグインを組み込んだ Solr 検索によって、入力さ
れた質問に関連する回答文書の候補と特徴ベクトルを取得します。
 Ranker は、トレーニングデータ(グランドトゥルースから生成された特
徴ベクトル)でトレーニングされた機械学習モデルによって、回答候補
を再ランクします。
Retrieve and Rank で解答を取得するメカニズム
562016/7/16
Solr インデックス Retrieve の結果 Ranker の結果
Retrieve
Retrieve の結果を再ランク
することで最終結果が得られる
Ranker
Retrieve によって
回答候補が検索される
© Copyright IBM Corporation 2016
特徴量 (Feature) と特徴ベクトル (Feature Vector)
572016/7/16
輪郭の特徴量
目の特徴量
耳の特徴量
鼻の特徴量
口の特徴量
特徴ベクトル
機械学習により、
この特徴ベクトルが
「イケメン」を示して
いるかを判別できる
© Copyright IBM Corporation 2016
1. 学習データとして、質問とそれに
対する回答例を投入
2. 学習データの内容を特徴ベクトル
(Feature Vector) として表現
– (検索スコア、検索数, …)
3. それぞれの特徴ベクトルを
グランドトゥルースの
関連度でラベル付けをして
トレーニングデータとする
– (例えば 0, 1, 2 …)
4. トレーニングデータから
学習してモデルを作り、
新たな質問の回答候補を
再ランクする
ランカーの学習と再ランク
582016/7/16
Ranker
学習モデル
Ranker
グランドトゥルース
{Q1, Q2, … Qx}
ランキング
Retrieve の
検索結果 出力
トレーニング
© Copyright IBM Corporation 2016
 Learn to Rank として知られている情報検索システムでの研究をベース
にしています。
 Learning to rank
– https://en.Wikipedia.org/wiki/Learning_to_rank
• Learning to rank or machine-learned ranking (MLR) is the application of
machine learning, typically supervised, semi-supervised or reinforcement
learning, in the construction of ranking models for information retrieval
systems. Training data consists of lists of items with some partial order
specified between items in each list. This order is typically induced by
giving a numerical or ordinal score or a binary judgment (e.g. "relevant" or
"not relevant") for each item. The ranking model's purpose is to rank, i.e.
produce a permutation of items in new, unseen lists in a way which is
"similar" to rankings in the training data in some sense.
– Based on Yahoo competition in 2010
• From RankNet to LambdaRank to LambdaMART: An Overview
• http://research.microsoft.com/en-us/um/people/cburges/tech_reports/MSR-TR-
2010-82.pdf
• Yahoo! Learning to Rank Challenge (Archive)
• http://archive.is/sr8r
ランカーの内部メカニズム
592016/7/16
Learning to Rank あるいは「機械学習によるランク (machine-learned ranking: MLR)」 は、情報
検索システムでのランキングモデルの作成にあたり、多くの場合には専門家の管理下で、ときに
は部分的な管理や強化アルゴリズムによって学習が行われる、機械学習のアプリケーションです。
リスト内で順位付けされたアイテムで構成されたリストがトレーニングデータになります。この
順位付けは大抵は、それぞれのアイテムに対して(関連があるか無いかどうかを示す)数値や序
列のスコアや相対値によって定義されます。ランキングモデルの目的はランクをすることで、新
たに与えられた「はじめて見る」一連のアイテムを、トレーニングデータのランキングと意味的
にで「同じように」なるように並べ替えすることです。
© Copyright IBM Corporation 2016
 Retrieve and Rank サービスの典型的な利用例の一つは、顧客対応を行
うプロフェッショナルです。彼らは莫大な量の資料から関係ありそうな
情報を即座に発見し顧客対応を行う必要があります。
– 顧客サポート
• 日々増えてくる回答候補の文書資料の中で、顧客への回答を瞬時
に探す必要があります。
– フィールドの技術者
• オンラインで技術情報の収集に利用します。
– プロフェッショナルサービス
• 重要なプロジェクトの推進で適切なスキルを持った優秀な人材を
探します。
 検索対象の文書に、評価に利用できる情報があると、ランキングの学習
データとして使用できる。
– 例: 文書の参照数、「いいね」数、作成者の評判 などなど
⇒ 単純な検索以上の結果をもたらす可能性があります。
Retrieve and Rank サービスの典型的な利用例
602016/7/16
© Copyright IBM Corporation 2016
Retrieve and Rank サービスの基本的な利用手順
612016/7/16
1. Solr クラスタを作成する
2. Solr 構成ファイルを作成してアップロード
3. Solr コレクションの作成
5. ランカーを作成してトレーニング
トレーニングデータを再作成したときは、その修正したデータで新しいランカーを作成します。
6. グランドトゥルースの作成と更新
6. 結果を評価しグランドトゥルースの更新
4. 文書を投入してインデックス作成
クラスタ名とサイズを指定してクラスタを作成。
作成後、クラスタが利用可能になるまで待つ。
テンプレートをもとにスキーマを定義し、パッ
ケージした構成ファイルをアップロードする。
アップロードした構成ファイルと関連つけて Solr
コレクションを作成する。
回答となる文書を集めて整形し、 Solr コレク
ションに投入して検索できるようにインデックス
する。
サンプルとなる質問と関連する回答を集め、関連
度スコアとともに関連度ファイル(CSV)にまと
める。
関連度ファイル(CSV)からトレーニングデータ
を生成し、アップロードしてランカーを作成する。
トレーニングが完了するのを待ち、ランカーを試
して再ランクされた結果を評価する。
© Copyright IBM Corporation 2016
 LabFiles の 「Exercise_04」フォルダに、ソフトバンク社向けに提供
した Retrieve and Rank サービスのハンズオン実習資料を置きました。
このハンズオン実習をすることで、Retrieve and Rank サービス(と
Document Conversion サービス)の構成と利用の方法を学ぶことがで
きます。
– 実習の手順を書いた PDF ファイル
– 実習に必要なファイルをまとめた ZIP ファイル
 実習の手順を終えるには、おおよそ4~6時間を想定しています。
実習 4: Retrieve and Rank の構成と利用
622016/7/16
興味ある方は持ち帰って試してください
© Copyright IBM Corporation 2016© Copyright IBM Corporation 2016
Watson サービスの詳細
• Natural Language Classifier サービス
• Retrieve and Rank サービス
• Document Conversion サービス
• Dialog サービス
• Speech to Text サービス
• Text to Speech サービス
632016/7/16
© Copyright IBM Corporation 2016
 既存の様々な文書を、Watson サービスで利用可能な形式に変換します。
 投入して変換できるファイル:
– PDF 文書
– Microsoft Word 文書
– HTML 文書
 サービスから取り出せる形式:
– 規格化された HTML 文書
– 規格化されたプレーンテキスト文書
– 回答ユニットを含む JSON 文書
→ 他の Watson サービスで利用可能
 利用方法
– 他の Watson サービスとの連携
• Retrieve and Rank サービス
• Personality Insights サービス
• AlchemyAPI の各種サービス
Document Conversion サービス – 概要
642016/7/16
© Copyright IBM Corporation 2016
 Document Conversion サービスの変換プロセス
– このパスを通じて変換されるので、変換オプションはこのパスを考慮
して設定します。
Document Conversion サービスの変換プロセス
652016/7/16
© Copyright IBM Corporation 2016© Copyright IBM Corporation 2016
Watson サービスの詳細
• Natural Language Classifier サービス
• Retrieve and Rank サービス
• Document Conversion サービス
• Dialog サービス
• Speech to Text サービス
• Text to Speech サービス
662016/7/16
© Copyright IBM Corporation 2016
 「ダイアログ」= 仮想エージェントとユーザーとの対話の窓口
 Watson Dialog サービスは仮想エージェントとの会話を管理するため
の包括的なプラットフォーム提供するサービスです。
 ルールベースでのユーザーの入力を認識して、対応する返答を返します。
Dialog サービス – 概要
672016/7/16
<output>
<prompt selectionType="RANDOM">
<item>Which fruit do you like?</item>
</prompt>
<getUserInput>
<input>
<grammar>
<item>I like orange.</item>
<item>I love orange.</item>
<item>*orange</item>
</grammar>
<output>
<prompt selectionType="RANDOM">
<item>You like orange.</item>
<item>Orange is great</item>
</prompt>
</output>
</input>
Dialog システムの
最初のメッセージ
ユーザーから入力されたメッセージの
マッチングルール
マッチしたときの、Dialog システムからの
返答メッセージ
© Copyright IBM Corporation 2016
 仮想エージェントアプリケーションのダイアログの作成。
ダイアログがあることで、人間と仮想エージェントが自然で自由な流れ
で、人間のように会話をできます。
 Dialog サービスを使って作成された仮想エージェントアプリケーショ
ンは、以下のようなかたちでユーザーを支援します。
Dialog サービスの一般的な使用例
 ユーザーに応じた、コンテキ
ストを認識したやり取り
 質問への回答
 製品提案や意思決定支援を提
供
 必要な手順に従って、一連の
操作の実施
 段階的なプロセスを介しての
ユーザーガイド
 曖昧な問い合わせの明確化
 外部システムとの取次ぎ
 個性を見せることで人間らし
いやり取りの実現
 画面操作などのガイド
 対話的な問題解決の提供
2016/7/16 68
© Copyright IBM Corporation 2016© Copyright IBM Corporation 2016
Watson サービスの詳細
• Natural Language Classifier サービス
• Retrieve and Rank サービス
• Dialog サービス
• Document Conversion サービス
• Speech to Text サービス
• Text to Speech サービス
692016/7/16
© Copyright IBM Corporation 2016
 音声信号の構成と文法や言語の構造を用いて、音声データを
テキストデータに変換
 音声の中に、特定のキーワードを含むか(開始と終了時間)の
検知が可能(ベータ)
 活用シーン
– コールセンターにおける、やりとりの書き起こし
– 音声によるシステムのコントロール
 入出力
– 入力:ファイルまたはストリーム形式の音声データ
– 出力:音声から認識されたテキスト
Speech to Text サービス – 概要
702016/7/16
© Copyright IBM Corporation 2016
IBM Watsonが会話音声認識におけるブレイクスルーを発表
712016/7/16
 昨年、英語電話音声会話の NIST Switchboard という公開されたベンチマークテストで8%の
WERを達成しました。これはそれまでに発表した最善の結果よりも36%のエラー率削減でした。
 今年、Deep Learningの技術を利用している音響モデルと言語モデルの両方をさらに改良すること
によって、WERを6.9%までさらに削減することができました。
George Saon / 2016年4月28日
https://developer.ibm.com/watson/blog/2016/04/28/recent-advances-in-conversational-speech-recognition-2/
(2015) https://developer.ibm.com/watson/blog/2015/05/26/ibm-watson-announces-breakthrough-in-conversational-speech-transcription/
“Recent Advances in Conversational Speech Recognition”
© Copyright IBM Corporation 2016
Speech to Text サービス – 詳細
722016/7/16
項目 内容
言語 アメリカ英語、イギリス英語、アラビア語、ポルトガル語、スペイン語、標準中国語、
日本語、フランス語
種類 一般用途広帯域モデル、電話音声用狭帯域モデル
提供形態 Bluemix上でREST APIを公開
iOS、Android OS向けにSDKも公開
API特徴 1. ストリーミング認識(発話中からリアルタイムで結果出力)
2. 各単語の音声認識信頼度を出力可能
3. 2位以下の音声認識結果(対立仮説)も入手可能
認識精度 Deep Learning技術を利用しており高精度
プラン 様々な追加機能と追加言語が計画中
WORD START TIME(SEC) END TIME(SEC) CONFIDENCE
寿司 0.29 0.6 0.7
食べたい 0.6 1.14 0.8
(単語) (開始時間位置) (終了時間位置) (音声認識信頼度)
例:対立仮説例:音声認識信頼度
デモページ:https://speech-to-text-demo.mybluemix.net/
© Copyright IBM Corporation 2016
 ルノワールを検出するよう構成した例
音声でのキーワード出現の検出(Keyword Spotting)
732016/7/16
{
"results": [
{
"keywords_result": {
"ルノワール": [
{
"normalized_text": "ルノワール",
"start_time": 0.44,
"confidence": 0.885,
"end_time": 1.02
}
]
},
"alternatives": [
{
"confidence": 0.835,
"transcript": "ルノワール 展 見て きた "
}
<後略>
}
検出された
開始時間
終了時間
© Copyright IBM Corporation 2016© Copyright IBM Corporation 2016
Watson サービスの詳細
• Natural Language Classifier サービス
• Retrieve and Rank サービス
• Dialog サービス
• Document Conversion サービス
• Speech to Text サービス
• Text to Speech サービス
742016/7/16
© Copyright IBM Corporation 2016
 テキストから自然なリズムやイントネーションを再現した音声ストリー
ムを生成
Text to Speech サービス – 概要
752016/7/16
項目 内容
言語 英語(米)、英語(英)、スペイン語、スペイン語(北米)、フランス語、ドイ
ツ語、イタリア語、日本語、ブラジルポルトガル語
種類 9言語男女合計13音声
提供形態 Bluemix上でREST APIを公開
API特徴 1. 英(米)・英・独・仏語についてはSSMLタグを部分的にサポート
1. 読みの指定
2. 数字の読み方の指定(桁読み、棒読み)
3. ポーズ位置の指定、など
2. 英(米)1音声ではSSMLタグによる感情音声合成を実現
(GoodNews, Apology, Uncertainty)
3. ユーザー辞書の利用
4. WAV、Ogg opus、FLACフォーマットを出力
合成品質 統計的な韻律モデルを用いて、波形を接続・編集
プラン より詳細な制御機能と追加言語が計画中
デモページ:http://text-to-speech-demo.mybluemix.net/
© Copyright IBM Corporation 2016
 Watson Developer Cloud にある speech-javascript-sdk を使用して、
STT/TTS を使用したサンプルコードを実行します。
– GitHub:https://github.com/watson-developer-cloud/speech-
javascript-sdk
– リリースモジュール:https://github.com/watson-developer-
cloud/speech-javascript-sdk/releases
• 現時点では、STT のサンプルに日本語音声モデルを使用するコー
ドが実装されていないので、LabFiles の Exercise_05 に含まれる
修正したモジュールを使用します。
• speech-javascript-sdk-0.19.1-modified-20160712.zip
• watson-speech.js
 このサンプルは Node.js でサーバーを
構成していますが、クライアント側の
実装で使用さている Javascript コード
は他の実装方法でも参考になります。
実習 5:音声アプリケーションの実装
762016/7/16
独自アプリ
ケーション
ブラウザ
Watson Developer Cloud
トークン管理
トークンの
取得
音声の操作
© Copyright IBM Corporation 2016
1. Bluemix のダッシュボードで Speech to Text と Text to Speech
サービスを作成します。
– アプリへのバインドは必要ありません。サービス名はデフォルトで
生成された値で構いません。
– 作成された STT/TTS のサービスをそれぞれ開き、アクセスするた
めのサービス資格情報をテキストファイルに記録します。
2. speech-javascript-sdk-0.19.1-modified-20160712.zip を適当な
フォルダに展開します。
3. 展開したフォルダに含まれる speech-javascript-sdk-
0.19.1¥examples¥static¥watson-speech.js はダミーのファイルな
ので、LabFiles にある watson-speech.js で置き換えます。
実習手順:音声アプリケーションの実装
772016/7/16
© Copyright IBM Corporation 2016
 展開したフォルダの speech-javascript-sdk-0.19.1¥examples フォル
ダにある、stt-token.js と tts-token.js を編集し、先ほど記録したサー
ビス資格情報の username と password を設定します。また必要に応
じて url も修正します。
実習手順:音声アプリケーションの実装
782016/7/16
// For local development, replace username and password or set env properties
var sttConfig = extend({
version: 'v1',
url: 'https://stream.watsonplatform.net/speech-to-text/api',
username: process.env.STT_USERNAME || '<username>',
password: process.env.STT_PASSWORD || '<password>'
}, vcapServices.getCredentials('speech_to_text'));
// For local development, replace username and password or set env properties
var ttsConfig = extend({
version: 'v1',
url: 'https://stream.watsonplatform.net/text-to-speech/api',
username: process.env.TTS_USERNAME || '<username>',
password: process.env.TTS_PASSWORD || '<password>'
}, vcapServices.getCredentials('text_to_speech'));
stt-token.js
tts-token.js
アプリケーションを Bluemix で
実行するときには、これらの値は
アプリの環境変数から取得される
ので、ここで設定する必要はあり
ません
© Copyright IBM Corporation 2016
 コマンドプロンプトを開き、展開したフォルダに含まれる speech-
javascript-sdk-0.19.1¥examples フォルダに移動し、以下のコマンド
で Node.js の追加パッケージをインストールします。
 以下のコマンドでサンプルのサーバーアプリケーションを起動します。
 サーバーが起動したら Firefox ブラウザから http://localhost:3000/
にアクセスして、サンプルアプリケーションを試します。
実習手順:音声アプリケーションの実装
792016/7/16
> npm install dotenv
> npm install express
> npm install vcap_services
> npm install watson-developer-cloud
> npm start
Example IBM Watson Speech JS SDK client app & token server live at
http://localhost:3000/
Secure server live at https://localhost:3001/
© Copyright IBM Corporation 2016
実習手順:音声アプリケーションの実装
802016/7/16
日本語が使用できる
音声認識のサンプル
日本語が使用できる
音声合成のサンプル
© Copyright IBM Corporation 2016
実習手順:音声アプリケーションの実装
812016/7/16
モデルに「ja-JP_BroadbandMddel」を選択します。
「Start …」ボタンでストリ-ミング開始
マイクの使用確認ダイアログが表示されたら、
適切なマイクを選択して「Share …」を
クリックします。
microphone-streaming-model.html デモでの音声の認識
認識されたテキストを表示します。
© Copyright IBM Corporation 2016
実習手順:音声アプリケーションの実装
822016/7/16
text-to-speech-custom-voice.html での音声合成
音声に「ja-JP_EmiVoice」を選択します。
「Synthesize test」ボタンで音声合成の開始
合成するテキストを入力します。
© Copyright IBM Corporation 2016
 既存の Web ページやアプリケーションに、TTS/STT を使用して音声
機能を追加してください。
– 例:
• 研究室の紹介ページで、ボタンを押すと音声で説明すようにする。
• 既存アプリケーションを、音声で操作できるように拡張する。
• 先の課題で作成した NLC での仮想エージェントのフロントエンド
を音声対応にする。
などなど
課題 2:音声アプリケーションの実装
832016/7/16
© Copyright IBM Corporation 2016© Copyright IBM Corporation 2016
その他の日本語に対応した
Watson サービス
Personality Insights
Visual Recognition
842016/7/16
© Copyright IBM Corporation 2016
 電子メール、テキスト・メッセージ、ツイートやフォーラムの書き込み
を分析し、作成者のパーソナリティーを判定します。
 入力データ
– 分析対象者が一人で書いた、最少で1000語の自然文。
– 統計学的に有意な結果を得るためには、 少なくとも3500語以上、理想的には
6000語以上の長さのテキストが必要です。
– Twitter のつぶやきでも構いません。
 出力データ
Personality Insights
852016/7/16
– 5因子モデルによる性格分析
• Openness (知的好奇心)
• Extraversion(外向性)
• Agreeableness(調和性)
• Emotional range(情緒不安定性)
• Conscientiousness (誠実性)
– 欲求
• 実用主義、社会性、調和
• 自由主義、親密
– 価値
• 自己超越、変化許容性、自己増進
• 快楽主義、現状維持
© Copyright IBM Corporation 2016
Personal Insight デモページ
862016/7/16
https://personality-insights-livedemo.mybluemix.net/
© Copyright IBM Corporation 2016
Personal Insight デモページ
872016/7/16
結果(性格のサマリー)の例
道草 - 夏目漱石 (日本語)
• 熱くなりやすいタイプであり、ひどく陽
気なタイプであり、また慣例にとらわれ
ないタイプです.
• 大胆なタイプです: 時間をかけて慎重に検
討するよりもむしろ即座に行動を起こし
ます. 圧力を受けても冷静なタイプです:
冷静で、予期しない出来事にも効果的に
対処します. また、自主性の高いタイプで
す: 自分の時間を大切にしたいという強い
願望があります.
• 組織への帰属を意識して意思決定するタ
イプです.
• 自主性があなたの行動に大きな影響を与
えています: 最高の成果が得られるよう、
自分自身で目標を設定する傾向がありま
す. 成功することにはあまりこだわりませ
ん: 自分の才能を誇示することにあまり拘
らず意思決定します.
© Copyright IBM Corporation 2016
活用想定例:カスタマーケア・アシスタント
882016/7/16
パーソナリティー
検索 問合せ履歴
ジャック フロスト
顧客NO: 0011
電話番号: 080-xxx-xxx
メール: jack@example.com
Twitter: @jackfrost
類似するお客様の問合せTop5
タイトル カテゴリー 日付
支払い方法について 支払 2015-01-23
充電が出来ない 故障 2015-03-15
家族プランの問合せ プラン 2015-04-04
現在、B社と契約中のお子様の電話代が安くならないかの相談を受けまし
た。家族プランをご紹介
1. 家族割について
2. プランの変更
3. 割引適用条件について
4. 電源の入れ方
5. 充電の仕方
類似するお客様
© Copyright IBM Corporation 2016© Copyright IBM Corporation 2016
その他の日本語に対応した
Watson サービス
Personality Insights
Visual Recognition
892016/7/16
© Copyright IBM Corporation 2016
 深層学習のアルゴリズムを使用して画像を分析し、画像に含まれるオブ
ジェクト、顔、テキストを分析します。
– 画像に含まれるオブジェクトを分析し、あらかじめサービスで持って
いるカテゴリの該当するものに確信度付きで分類します。
• 利用目的に合わせたて独自に分類した画像を学習データとして、
カスタマイズされた分類器の作成も可能です。
– 顔認識(Detect faces) API を使用することで、画像に含まれる顔
を検知し、性別と年連を判別します。
• 有名人については人物の特定もします。
– 文字認識(Recognize text)API を使用することで、画像に含まれ
るテキスト(現時点で英語のみ)を認識します。
 活用シーン
– 画像データをカテゴリーごとに整理
– ソーシャルメディアの写真からユーザーの興味をセグメント化
– 特定のコンテンツに関連した画像を、探し出す
Visual Recognition – 概要
902016/7/16
© Copyright IBM Corporation 2016
Visual Recognition – デモページ
912016/7/16
http://visual-recognition-demo.mybluemix.net/
© Copyright IBM Corporation 2016
 目的
– Visual Recognition による事前分類やフィルタリングをすることで、
業務における様々な確認や分析作業を行う人間の負荷低減をする。
• 不適切な画像のフィルタリング
• 画像選択での事前分類
• 商品や製作物の品質確認
 トレーニングデータ
– 分類すべきクラスごとに集められた最低10枚の画像
(適切な分類品質を得るには50枚以上)
– どのクラスにも該当しないネガティブな最低10枚の画像
Visual Recognition – カスタマイズされた分類器の作成
922016/7/16
分類器
Apple
クラス
(ポジティブ)
Banana
クラス
(ポジティブ)
Orange
クラス
(ポジティブ)
Vegetable
(ネガティブ)
Apple
© Copyright IBM Corporation 2016
Visual Recognition -カスタマイズされた分類器の使用例
932016/7/16
これらの画像と、
同じ特徴を持つ
画像を検出
但し、これらの
画像と、同じ
特徴を持つ画像
は不正解
学習データ
実行結果1
77%の確信度で、この分類器にマッチ
この分類器にマッチする
確信度は50%以下
実行結果 2
© Copyright IBM Corporation 2016
 Visual Recognition サービスを作成し、cURL で API を呼び出してサ
ンプルの画像を分類します。
 Visual Recognition サービスの Tutorial からダウンロードしたトレー
ニング用の画像データを使用してカスタム分類器を作成し、カスタム分
類器での画像の分類を試します。
– この実習内容は、以下のページにある「Visual Recognition -
Tutorial」から抜粋したものです。
• http://www.ibm.com/watson/developercloud/doc/visual-
recognition/tutorials.shtml
実習 6: Visual Recognition での画像分析
942016/7/16
© Copyright IBM Corporation 2016
1. Bluemix のダッシュボードで Visual Recognition サービスを作成し
ます。
– アプリへのバインドは必要ありません。サービス名はデフォルトで
生成された値で構いません。
2. 作成された Visual Recognition
サービスを開き、アクセスする
ためのサービス資格情報
(api_key)をテキスト
ファイルに記録します。
3. コマンドプロンプトで以下の cURL コマンドを発行し、fruitbowl.jpg
の画像の分類し、その結果を確認します。
実習手順: Visual Recognition での画像分析
952016/7/16
> curl -k -X POST -F "images_file=@fruitbowl.jpg" "https://gateway-
a.watsonplatform.net/visual-recognition/api/v3/classify?api_key={api-
key}&version=2016-05-20"
© Copyright IBM Corporation 2016
4. cURL による呼び出し結果を
確認します。
– 「fruit」に高い確信度で
分類されていることがわか
ります。
実習手順: Visual Recognition での画像分析
962016/7/16
{
"images": [
{
"classifiers": [
{
"classes": [
{
"class": "fruit", "score": 0.937027
},
{
"class": "apple", "score": 0.668188
},
{
"class": "banana", "score": 0.549834
},
{
"class": "food", "score": 0.524979
},
{
"class": "orange", "score": 0.5
}
],
"classifier_id": "default", "name": "default"
}
],
"image": "fruitbowl.jpg"
}
],
"images_processed": 1
}
© Copyright IBM Corporation 2016
5. 「Visual Recognition – Tutorial」の Stage 2: Classifying an
image セクション内の Sample files (あるいは以下のURL)をダウン
ロードします。
• https://github.com/watson-developer-cloud/visual-recognition-
tutorial/zipball/master?cm_mc_uid=82999389183014561059798&cm_mc_sid_50200000=1468483780
6. ダウンロードしたファイルを展開します。展開されたファイルに含ま
れる以下の ZIP ファイルをトレーニングデータとして使用します。
– 犬を分類するためのポジティブデータ
• beagle.zip、husky.zip、golden-retriever.zip
– ネガティブなデータ
• cats.zip
実習手順: Visual Recognition での画像分析
972016/7/16
© Copyright IBM Corporation 2016
7. 以下の cURL コマンドを発行して、カスタム分類器を作成します。
– –F パラメータ送信するデータファイルを指定しています。ポジティブな
ファイルには、データ名を「{クラス名}_positive_examples」としてクラ
ス名を設定し、ネガティブデータにはデータ名に「negative_examples」を
指定しています。
8. cURL コマンドのレスポンスに
classifier_id が含まれているので、
テキストファイルなどに記録して
おきます。
実習手順: Visual Recognition での画像分析
982016/7/16
> curl -k -X POST -F beagle_positive_examples=@beagle.zip
-F husky_positive_examples=@husky.zip
-F goldenretriever_positive_examples=@golden-retriever.zip
-F negative_examples=@cats.zip -F "name=dogs“
"https://gateway-a.watsonplatform.net/visual-
recognition/api/v3/classifiers?api_key={api-key}&version=2016-05-20"
{
"classifier_id": "dogs_1941945966",
"name": "dogs",
"owner": "xxxx-xxxxx-xxx-xxxx",
"status": "retraining",
"created": "2016-05-18T21:32:27.752Z",
"classes": [
{“class”: “dalmatian”}, {"class": "husky"},
{"class": "goldenretriever"}, {"class": "beagle"}
]
}
© Copyright IBM Corporation 2016
9. 以下の cURL コマンドを発行して、カスタム分類器をトレーニングの
状況を確認します。
10. テキストエディタで myparams.json を
編集し、”<classifier_id>” に先ほど
作成した分類器 ID を設定します。
11. カスタム分類器の状況が「ready」になるのを待って、以下の cURL
コマンドでカスタム分類器での分類を行います。
実習手順: Visual Recognition での画像分析
992016/7/16
> curl -k -X GET "https://gateway-a.watsonplatform.net/visual-
recognition/api/v3/classifiers/{classifier_id}?api_key={api-key}&version=2016-
05-20"
> curl -k -X POST -F "images_file=@dogs.jpg" -F
"parameters=@myparams.json" "https://gateway-a.watsonplatform.net/visual-
recognition/api/v3/classify?api_key={api-key}&version=2016-05-20"
{
"classifier_ids":
["<classifier_id>", "default"]
}
© Copyright IBM Corporation 2016
 適当なユースケースを想定して、そのユースケースの中で使用する画像
を分類するためのカスタム分類器を作成してください。
– 例:
• 腐った果物を自動分別する流通アプリケーション
• 電車の忘れ物を分別して、問い合わせに照会するシステム
• ビン・缶と燃えるものを分別する装置
• 猫は通すが、狸や猪を通さない家庭用自動ドア
などなど
 トレーニングデータを作成するに当たり、以下の点を考慮してください。
– ユースケースで対応すべき対象物の範囲を決めて、それをカバーする
クラスを定義する。
– ユースケースで対象が意図する対象物を決めて、ネガティブの画像を
収集する。
課題 3: Visual Recognition でカスタム分類器の作成
1002016/7/16

More Related Content

What's hot

SoftLayerが CAMSSとゲーム配信 に適する技術的理由
SoftLayerが CAMSSとゲーム配信 に適する技術的理由SoftLayerが CAMSSとゲーム配信 に適する技術的理由
SoftLayerが CAMSSとゲーム配信 に適する技術的理由softlayerjp
 
Watsonで地図ナビアプリつくってみた
Watsonで地図ナビアプリつくってみたWatsonで地図ナビアプリつくってみた
Watsonで地図ナビアプリつくってみたKota Suizu
 
エンタープライズでもクラウドファースト! Amazon Web Servicesをフル活用する Developer Summit 2016
エンタープライズでもクラウドファースト! Amazon Web Servicesをフル活用する Developer Summit 2016エンタープライズでもクラウドファースト! Amazon Web Servicesをフル活用する Developer Summit 2016
エンタープライズでもクラウドファースト! Amazon Web Servicesをフル活用する Developer Summit 2016一成 田部井
 
2016年冬 IBMクラウド最新動向
2016年冬 IBMクラウド最新動向2016年冬 IBMクラウド最新動向
2016年冬 IBMクラウド最新動向Kimihiko Kitase
 
Cedec2015 ゲームサーバー基盤の新しい選択肢
Cedec2015 ゲームサーバー基盤の新しい選択肢Cedec2015 ゲームサーバー基盤の新しい選択肢
Cedec2015 ゲームサーバー基盤の新しい選択肢Maho Takara
 
ベンチャーCTO、AWSエバンジェリストを経て考える、クラウド時代に向き合うエンジニア像のこれから
ベンチャーCTO、AWSエバンジェリストを経て考える、クラウド時代に向き合うエンジニア像のこれからベンチャーCTO、AWSエバンジェリストを経て考える、クラウド時代に向き合うエンジニア像のこれから
ベンチャーCTO、AWSエバンジェリストを経て考える、クラウド時代に向き合うエンジニア像のこれからYasuhiro Horiuchi
 
サーバーサイド技術者不足に効くChef
サーバーサイド技術者不足に効くChefサーバーサイド技術者不足に効くChef
サーバーサイド技術者不足に効くChefMaho Takara
 
Softlayer と Bluemix (IaaS と PaaS) 適材適所でアプリケーション開発
Softlayer と Bluemix (IaaS と PaaS) 適材適所でアプリケーション開発Softlayer と Bluemix (IaaS と PaaS) 適材適所でアプリケーション開発
Softlayer と Bluemix (IaaS と PaaS) 適材適所でアプリケーション開発K Kimura
 
MySQL Clusterに適したベアメタルクラウド SoftLayer
MySQL Clusterに適したベアメタルクラウド SoftLayerMySQL Clusterに適したベアメタルクラウド SoftLayer
MySQL Clusterに適したベアメタルクラウド SoftLayerMaho Takara
 
スタートアップだからこそ使うAWS(第5回JAWS-UG Nagoya)
スタートアップだからこそ使うAWS(第5回JAWS-UG Nagoya)スタートアップだからこそ使うAWS(第5回JAWS-UG Nagoya)
スタートアップだからこそ使うAWS(第5回JAWS-UG Nagoya)Tomotsune Murata
 
2016年冬 IBMクラウド最新動向と概要
2016年冬 IBMクラウド最新動向と概要2016年冬 IBMクラウド最新動向と概要
2016年冬 IBMクラウド最新動向と概要Kimihiko Kitase
 
Smart Tennis Lesson Serverless Design
Smart Tennis Lesson Serverless DesignSmart Tennis Lesson Serverless Design
Smart Tennis Lesson Serverless DesignRyuji TAKEHARA
 
コンソールゲームを世界展開してみた - JAWS DAYS 2015
コンソールゲームを世界展開してみた - JAWS DAYS 2015コンソールゲームを世界展開してみた - JAWS DAYS 2015
コンソールゲームを世界展開してみた - JAWS DAYS 2015Ryo Nakamaru
 
クラウド+ソフトウェアで起こすイノベーション
クラウド+ソフトウェアで起こすイノベーションクラウド+ソフトウェアで起こすイノベーション
クラウド+ソフトウェアで起こすイノベーションServerworks Co.,Ltd.
 
大容量ファイルを爆速で転送! 世界を飛び回る! AsperaとSoftLayerの最強コラボ!
大容量ファイルを爆速で転送! 世界を飛び回る! AsperaとSoftLayerの最強コラボ!大容量ファイルを爆速で転送! 世界を飛び回る! AsperaとSoftLayerの最強コラボ!
大容量ファイルを爆速で転送! 世界を飛び回る! AsperaとSoftLayerの最強コラボ!softlayerjp
 
業務アプリをクラウド化する5つのステップ ~Amazon Web Services活用の勘所~
業務アプリをクラウド化する5つのステップ ~Amazon Web Services活用の勘所~業務アプリをクラウド化する5つのステップ ~Amazon Web Services活用の勘所~
業務アプリをクラウド化する5つのステップ ~Amazon Web Services活用の勘所~SORACOM, INC
 
AWS Mobile SDK利用時のテスト手法
AWS Mobile SDK利用時のテスト手法AWS Mobile SDK利用時のテスト手法
AWS Mobile SDK利用時のテスト手法yuki0211s
 
Aws lambdaで[ソンナコ]を実装してみた
Aws lambdaで[ソンナコ]を実装してみたAws lambdaで[ソンナコ]を実装してみた
Aws lambdaで[ソンナコ]を実装してみたFumihito Yokoyama
 

What's hot (20)

SoftLayerが CAMSSとゲーム配信 に適する技術的理由
SoftLayerが CAMSSとゲーム配信 に適する技術的理由SoftLayerが CAMSSとゲーム配信 に適する技術的理由
SoftLayerが CAMSSとゲーム配信 に適する技術的理由
 
Watsonで地図ナビアプリつくってみた
Watsonで地図ナビアプリつくってみたWatsonで地図ナビアプリつくってみた
Watsonで地図ナビアプリつくってみた
 
DevLove Kansai AWS
DevLove Kansai AWSDevLove Kansai AWS
DevLove Kansai AWS
 
エンタープライズでもクラウドファースト! Amazon Web Servicesをフル活用する Developer Summit 2016
エンタープライズでもクラウドファースト! Amazon Web Servicesをフル活用する Developer Summit 2016エンタープライズでもクラウドファースト! Amazon Web Servicesをフル活用する Developer Summit 2016
エンタープライズでもクラウドファースト! Amazon Web Servicesをフル活用する Developer Summit 2016
 
2016年冬 IBMクラウド最新動向
2016年冬 IBMクラウド最新動向2016年冬 IBMクラウド最新動向
2016年冬 IBMクラウド最新動向
 
Cedec2015 ゲームサーバー基盤の新しい選択肢
Cedec2015 ゲームサーバー基盤の新しい選択肢Cedec2015 ゲームサーバー基盤の新しい選択肢
Cedec2015 ゲームサーバー基盤の新しい選択肢
 
ベンチャーCTO、AWSエバンジェリストを経て考える、クラウド時代に向き合うエンジニア像のこれから
ベンチャーCTO、AWSエバンジェリストを経て考える、クラウド時代に向き合うエンジニア像のこれからベンチャーCTO、AWSエバンジェリストを経て考える、クラウド時代に向き合うエンジニア像のこれから
ベンチャーCTO、AWSエバンジェリストを経て考える、クラウド時代に向き合うエンジニア像のこれから
 
サーバーサイド技術者不足に効くChef
サーバーサイド技術者不足に効くChefサーバーサイド技術者不足に効くChef
サーバーサイド技術者不足に効くChef
 
Softlayer と Bluemix (IaaS と PaaS) 適材適所でアプリケーション開発
Softlayer と Bluemix (IaaS と PaaS) 適材適所でアプリケーション開発Softlayer と Bluemix (IaaS と PaaS) 適材適所でアプリケーション開発
Softlayer と Bluemix (IaaS と PaaS) 適材適所でアプリケーション開発
 
MySQL Clusterに適したベアメタルクラウド SoftLayer
MySQL Clusterに適したベアメタルクラウド SoftLayerMySQL Clusterに適したベアメタルクラウド SoftLayer
MySQL Clusterに適したベアメタルクラウド SoftLayer
 
インフォバーングループにおけるAWS活用事例5選
インフォバーングループにおけるAWS活用事例5選インフォバーングループにおけるAWS活用事例5選
インフォバーングループにおけるAWS活用事例5選
 
スタートアップだからこそ使うAWS(第5回JAWS-UG Nagoya)
スタートアップだからこそ使うAWS(第5回JAWS-UG Nagoya)スタートアップだからこそ使うAWS(第5回JAWS-UG Nagoya)
スタートアップだからこそ使うAWS(第5回JAWS-UG Nagoya)
 
2016年冬 IBMクラウド最新動向と概要
2016年冬 IBMクラウド最新動向と概要2016年冬 IBMクラウド最新動向と概要
2016年冬 IBMクラウド最新動向と概要
 
Smart Tennis Lesson Serverless Design
Smart Tennis Lesson Serverless DesignSmart Tennis Lesson Serverless Design
Smart Tennis Lesson Serverless Design
 
コンソールゲームを世界展開してみた - JAWS DAYS 2015
コンソールゲームを世界展開してみた - JAWS DAYS 2015コンソールゲームを世界展開してみた - JAWS DAYS 2015
コンソールゲームを世界展開してみた - JAWS DAYS 2015
 
クラウド+ソフトウェアで起こすイノベーション
クラウド+ソフトウェアで起こすイノベーションクラウド+ソフトウェアで起こすイノベーション
クラウド+ソフトウェアで起こすイノベーション
 
大容量ファイルを爆速で転送! 世界を飛び回る! AsperaとSoftLayerの最強コラボ!
大容量ファイルを爆速で転送! 世界を飛び回る! AsperaとSoftLayerの最強コラボ!大容量ファイルを爆速で転送! 世界を飛び回る! AsperaとSoftLayerの最強コラボ!
大容量ファイルを爆速で転送! 世界を飛び回る! AsperaとSoftLayerの最強コラボ!
 
業務アプリをクラウド化する5つのステップ ~Amazon Web Services活用の勘所~
業務アプリをクラウド化する5つのステップ ~Amazon Web Services活用の勘所~業務アプリをクラウド化する5つのステップ ~Amazon Web Services活用の勘所~
業務アプリをクラウド化する5つのステップ ~Amazon Web Services活用の勘所~
 
AWS Mobile SDK利用時のテスト手法
AWS Mobile SDK利用時のテスト手法AWS Mobile SDK利用時のテスト手法
AWS Mobile SDK利用時のテスト手法
 
Aws lambdaで[ソンナコ]を実装してみた
Aws lambdaで[ソンナコ]を実装してみたAws lambdaで[ソンナコ]を実装してみた
Aws lambdaで[ソンナコ]を実装してみた
 

Viewers also liked

20151204 bmxug watson_j_v1.1
20151204 bmxug watson_j_v1.120151204 bmxug watson_j_v1.1
20151204 bmxug watson_j_v1.1inadaf
 
Twilio bluemix hands-on 資料
Twilio bluemix hands-on 資料Twilio bluemix hands-on 資料
Twilio bluemix hands-on 資料Masaya Fujita
 
Watson × IBM Bluemix で簡単アプリ開発
Watson × IBM Bluemix で簡単アプリ開発Watson × IBM Bluemix で簡単アプリ開発
Watson × IBM Bluemix で簡単アプリ開発softlayerjp
 
Introducing IBM Cloud & Cognitive
Introducing IBM Cloud & CognitiveIntroducing IBM Cloud & Cognitive
Introducing IBM Cloud & CognitiveAtsumori Sasaki
 
Watson日本語版ハッカソン Day1 Bluemix 概要紹介
Watson日本語版ハッカソン Day1 Bluemix 概要紹介Watson日本語版ハッカソン Day1 Bluemix 概要紹介
Watson日本語版ハッカソン Day1 Bluemix 概要紹介Kyoko Hattori
 
SoftLayer Bluemix Summit 2015: BluemixでWatsonをつかいたおせ!
SoftLayer Bluemix Summit 2015: BluemixでWatsonをつかいたおせ!SoftLayer Bluemix Summit 2015: BluemixでWatsonをつかいたおせ!
SoftLayer Bluemix Summit 2015: BluemixでWatsonをつかいたおせ!Miki Yutani
 
IBMワトソン 勉強会 20161121a
IBMワトソン 勉強会 20161121aIBMワトソン 勉強会 20161121a
IBMワトソン 勉強会 20161121aMaho Takara
 
Slack Appsでやれる事を確認した。年内日本語化されるんで、急ぎで!
Slack Appsでやれる事を確認した。年内日本語化されるんで、急ぎで!Slack Appsでやれる事を確認した。年内日本語化されるんで、急ぎで!
Slack Appsでやれる事を確認した。年内日本語化されるんで、急ぎで!Yasuyuki Ogawa
 
一年目がWatsonを調べてみた Discovery編
一年目がWatsonを調べてみた Discovery編一年目がWatsonを調べてみた Discovery編
一年目がWatsonを調べてみた Discovery編Jin Hirokawa
 
Watson Build Challengeに参加してみた
Watson Build Challengeに参加してみたWatson Build Challengeに参加してみた
Watson Build Challengeに参加してみたWataru Koyama
 
DSIRNLP#1 ランキング学習ことはじめ
DSIRNLP#1 ランキング学習ことはじめDSIRNLP#1 ランキング学習ことはじめ
DSIRNLP#1 ランキング学習ことはじめsleepy_yoshi
 

Viewers also liked (14)

20151204 bmxug watson_j_v1.1
20151204 bmxug watson_j_v1.120151204 bmxug watson_j_v1.1
20151204 bmxug watson_j_v1.1
 
Twilio bluemix hands-on 資料
Twilio bluemix hands-on 資料Twilio bluemix hands-on 資料
Twilio bluemix hands-on 資料
 
Watson × IBM Bluemix で簡単アプリ開発
Watson × IBM Bluemix で簡単アプリ開発Watson × IBM Bluemix で簡単アプリ開発
Watson × IBM Bluemix で簡単アプリ開発
 
Bluemixの基本を知る -全体像-
Bluemixの基本を知る -全体像-Bluemixの基本を知る -全体像-
Bluemixの基本を知る -全体像-
 
Introducing IBM Cloud & Cognitive
Introducing IBM Cloud & CognitiveIntroducing IBM Cloud & Cognitive
Introducing IBM Cloud & Cognitive
 
sakura.io handson with IBM Bluemix
sakura.io handson with IBM Bluemixsakura.io handson with IBM Bluemix
sakura.io handson with IBM Bluemix
 
IBM Bluemix紹介
IBM Bluemix紹介IBM Bluemix紹介
IBM Bluemix紹介
 
Watson日本語版ハッカソン Day1 Bluemix 概要紹介
Watson日本語版ハッカソン Day1 Bluemix 概要紹介Watson日本語版ハッカソン Day1 Bluemix 概要紹介
Watson日本語版ハッカソン Day1 Bluemix 概要紹介
 
SoftLayer Bluemix Summit 2015: BluemixでWatsonをつかいたおせ!
SoftLayer Bluemix Summit 2015: BluemixでWatsonをつかいたおせ!SoftLayer Bluemix Summit 2015: BluemixでWatsonをつかいたおせ!
SoftLayer Bluemix Summit 2015: BluemixでWatsonをつかいたおせ!
 
IBMワトソン 勉強会 20161121a
IBMワトソン 勉強会 20161121aIBMワトソン 勉強会 20161121a
IBMワトソン 勉強会 20161121a
 
Slack Appsでやれる事を確認した。年内日本語化されるんで、急ぎで!
Slack Appsでやれる事を確認した。年内日本語化されるんで、急ぎで!Slack Appsでやれる事を確認した。年内日本語化されるんで、急ぎで!
Slack Appsでやれる事を確認した。年内日本語化されるんで、急ぎで!
 
一年目がWatsonを調べてみた Discovery編
一年目がWatsonを調べてみた Discovery編一年目がWatsonを調べてみた Discovery編
一年目がWatsonを調べてみた Discovery編
 
Watson Build Challengeに参加してみた
Watson Build Challengeに参加してみたWatson Build Challengeに参加してみた
Watson Build Challengeに参加してみた
 
DSIRNLP#1 ランキング学習ことはじめ
DSIRNLP#1 ランキング学習ことはじめDSIRNLP#1 ランキング学習ことはじめ
DSIRNLP#1 ランキング学習ことはじめ
 

Similar to Watson API トレーニング 20160716 rev02

AWS初心者向けWebinar .NET開発者のためのAWS超入門
AWS初心者向けWebinar .NET開発者のためのAWS超入門AWS初心者向けWebinar .NET開発者のためのAWS超入門
AWS初心者向けWebinar .NET開発者のためのAWS超入門Amazon Web Services Japan
 
AWS Black Belt Online Seminar AWSサービスを利用したアプリケーション開発を始めよう
AWS Black Belt Online Seminar AWSサービスを利用したアプリケーション開発を始めようAWS Black Belt Online Seminar AWSサービスを利用したアプリケーション開発を始めよう
AWS Black Belt Online Seminar AWSサービスを利用したアプリケーション開発を始めようAmazon Web Services Japan
 
OpenWhisk Serverless への期待
OpenWhisk Serverless への期待OpenWhisk Serverless への期待
OpenWhisk Serverless への期待Hideaki Tokida
 
[AWS Developers Meetup 2017] Developerのための ライブAWSウォークスルー 〜 AWS SDKの使い方 〜
[AWS Developers Meetup 2017] DeveloperのためのライブAWSウォークスルー 〜 AWS SDKの使い方 〜[AWS Developers Meetup 2017] DeveloperのためのライブAWSウォークスルー 〜 AWS SDKの使い方 〜
[AWS Developers Meetup 2017] Developerのための ライブAWSウォークスルー 〜 AWS SDKの使い方 〜Atsushi Fukui
 
NET MAUI for .NET 7 for iOS, Android app development
 NET MAUI for .NET 7 for iOS, Android app development  NET MAUI for .NET 7 for iOS, Android app development
NET MAUI for .NET 7 for iOS, Android app development Shotaro Suzuki
 
Azure DevOps 関西 2019 - Overview
Azure DevOps 関西 2019 - OverviewAzure DevOps 関西 2019 - Overview
Azure DevOps 関西 2019 - OverviewKeiji Kamebuchi
 
ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説
ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説
ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説Akira Inoue
 
20170809 AWS code series
20170809 AWS code series20170809 AWS code series
20170809 AWS code seriesAtsushi Fukui
 
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指してAkira Inoue
 
クラウド開発に役立つ OSS あれこれ
クラウド開発に役立つ OSS あれこれクラウド開発に役立つ OSS あれこれ
クラウド開発に役立つ OSS あれこれMasataka MIZUNO
 
CloudFoundryをつかってみよう
CloudFoundryをつかってみようCloudFoundryをつかってみよう
CloudFoundryをつかってみようKazuto Kusama
 
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...Shotaro Suzuki
 
AWS Lambda + Python資料 ver0.94 20160825
AWS Lambda + Python資料 ver0.94 20160825AWS Lambda + Python資料 ver0.94 20160825
AWS Lambda + Python資料 ver0.94 20160825Yasuharu Suzuki
 
JAWS-UG AI支部 #2 re:Invent アップデート
JAWS-UG AI支部 #2 re:Invent アップデートJAWS-UG AI支部 #2 re:Invent アップデート
JAWS-UG AI支部 #2 re:Invent アップデートYasuhiro Matsuo
 
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...Shotaro Suzuki
 
AWS Black Belt Tech シリーズ 2015 - AWS OpsWorks
AWS Black Belt Tech シリーズ 2015 - AWS OpsWorksAWS Black Belt Tech シリーズ 2015 - AWS OpsWorks
AWS Black Belt Tech シリーズ 2015 - AWS OpsWorksAmazon Web Services Japan
 
UnityとAmazon Web Servicesで生み出す新しい価値
UnityとAmazon Web Servicesで生み出す新しい価値UnityとAmazon Web Servicesで生み出す新しい価値
UnityとAmazon Web Servicesで生み出す新しい価値Keisuke Nishitani
 

Similar to Watson API トレーニング 20160716 rev02 (20)

AWS初心者向けWebinar .NET開発者のためのAWS超入門
AWS初心者向けWebinar .NET開発者のためのAWS超入門AWS初心者向けWebinar .NET開発者のためのAWS超入門
AWS初心者向けWebinar .NET開発者のためのAWS超入門
 
AWS Black Belt Online Seminar AWSサービスを利用したアプリケーション開発を始めよう
AWS Black Belt Online Seminar AWSサービスを利用したアプリケーション開発を始めようAWS Black Belt Online Seminar AWSサービスを利用したアプリケーション開発を始めよう
AWS Black Belt Online Seminar AWSサービスを利用したアプリケーション開発を始めよう
 
OpenWhisk Serverless への期待
OpenWhisk Serverless への期待OpenWhisk Serverless への期待
OpenWhisk Serverless への期待
 
[Japan Tech summit 2017] APP 001
[Japan Tech summit 2017] APP 001[Japan Tech summit 2017] APP 001
[Japan Tech summit 2017] APP 001
 
[AWS Developers Meetup 2017] Developerのための ライブAWSウォークスルー 〜 AWS SDKの使い方 〜
[AWS Developers Meetup 2017] DeveloperのためのライブAWSウォークスルー 〜 AWS SDKの使い方 〜[AWS Developers Meetup 2017] DeveloperのためのライブAWSウォークスルー 〜 AWS SDKの使い方 〜
[AWS Developers Meetup 2017] Developerのための ライブAWSウォークスルー 〜 AWS SDKの使い方 〜
 
NET MAUI for .NET 7 for iOS, Android app development
 NET MAUI for .NET 7 for iOS, Android app development  NET MAUI for .NET 7 for iOS, Android app development
NET MAUI for .NET 7 for iOS, Android app development
 
Azure &lt;3 Openness
Azure &lt;3 OpennessAzure &lt;3 Openness
Azure &lt;3 Openness
 
Azure DevOps 関西 2019 - Overview
Azure DevOps 関西 2019 - OverviewAzure DevOps 関西 2019 - Overview
Azure DevOps 関西 2019 - Overview
 
ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説
ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説
ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説
 
20170809 AWS code series
20170809 AWS code series20170809 AWS code series
20170809 AWS code series
 
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して
 
Gaming cicd-pipeline gaming-technight-2
Gaming cicd-pipeline gaming-technight-2Gaming cicd-pipeline gaming-technight-2
Gaming cicd-pipeline gaming-technight-2
 
クラウド開発に役立つ OSS あれこれ
クラウド開発に役立つ OSS あれこれクラウド開発に役立つ OSS あれこれ
クラウド開発に役立つ OSS あれこれ
 
CloudFoundryをつかってみよう
CloudFoundryをつかってみようCloudFoundryをつかってみよう
CloudFoundryをつかってみよう
 
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...
 
AWS Lambda + Python資料 ver0.94 20160825
AWS Lambda + Python資料 ver0.94 20160825AWS Lambda + Python資料 ver0.94 20160825
AWS Lambda + Python資料 ver0.94 20160825
 
JAWS-UG AI支部 #2 re:Invent アップデート
JAWS-UG AI支部 #2 re:Invent アップデートJAWS-UG AI支部 #2 re:Invent アップデート
JAWS-UG AI支部 #2 re:Invent アップデート
 
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...
 
AWS Black Belt Tech シリーズ 2015 - AWS OpsWorks
AWS Black Belt Tech シリーズ 2015 - AWS OpsWorksAWS Black Belt Tech シリーズ 2015 - AWS OpsWorks
AWS Black Belt Tech シリーズ 2015 - AWS OpsWorks
 
UnityとAmazon Web Servicesで生み出す新しい価値
UnityとAmazon Web Servicesで生み出す新しい価値UnityとAmazon Web Servicesで生み出す新しい価値
UnityとAmazon Web Servicesで生み出す新しい価値
 

Watson API トレーニング 20160716 rev02

  • 2. © Copyright IBM Corporation 2016  この資料は、新たに IBM Watson を使用したアプリケーションを作成 しようとしている方に向けての最初の説明資料として作成しました。  本資料で十分説明できない内容や追加の情報については、なるべく参考 文献や資料のリンクを挿入しています。そちらも併せて参照してくださ い。  本資料に含まれる実習を行うための補助資料を LabFiles として提供し ています。実習を行う際に使用してください。 – 本資料に記載されているコードやコマンド例は、プレゼンテーション ソフトの自動変換で不適切な文字に変換されていることがありますの で、補助資料の operations.txt の内容を参照してください。  本資料は作成時点での最新情報を記載していますが、紹介している製品 や技術リソースの内容は予告なく変更されることがありますことをご留 意ください。 この資料について 22016/7/16
  • 3. © Copyright IBM Corporation 2016  Watson サービス – IBM Watson の展開 – Watson サービスを利用したアプリケーション  Q&A ソリューションに利用できる Watson サービスの詳細 – Natural Language Classifier サービス – Retrieve and Rank サービス – Dialog サービス – Document Conversion サービス – Speech to Text サービス – Text to Speech サービス  日本語に対応したその他のWatson サービス – Visual Recognition – Personality Insight アジェンダ 32016/7/16
  • 4. © Copyright IBM Corporation 2016© Copyright IBM Corporation 2016 Watson サービス IBM Watson の展開 IBM Bluemix と Watson サービスの概要 42016/7/16
  • 5. © Copyright IBM Corporation 2016 IBM Watson の展開 52016/7/16 IBM Watson 発祥 • 質問応答システム@Jeopardy! 現在 • コグニティブ・システムを実現する技術・製品・サービス • コグニティブ・システムを実現するためWebサービス群 (IBM Watson Developers Cloud)
  • 6. © Copyright IBM Corporation 2016  集約された Q&A コグニティブサービスとしてはじまった Watson サー ビスは、主要な機能単位でコンポーネント化されると共に、様々な新し いコグニティブサービスが追加されています。  ここのサービスを組み合わせて使用することで、柔軟なコグニティブソ リューション開発を可能にしました。  アプリケーションの中に組みこみ可能な豊富なコグニティブサービスを 順次提供しています。 Bluemix の Watson サービス Watson Services APIs Watson コグニティブ・サービスの 自由な組み合わせによる機能実現 NL Classifier Retrieve & Rank Document Conversion Dialog Watson QA API 集約されたWatson Q&A コグニティブ・サービス 2016/7/16 6
  • 7. © Copyright IBM Corporation 2016 2016年 7月、利用可能なサービス 72016/7/16 Dialog Relationship Extraction Document Conversion Retrieve and Rank Language Translation Natural Language Classifier Concept Insights Personality Insights AlchemyAPI (Language, Vision, News) Tone Analyzer Text To Speech Speech To Text Tradeoff Analytics Visual Insights experimental beta Visual Recognition experimental Conversation to be deprecated deprecated 日本語に対応したサービス
  • 8. © Copyright IBM Corporation 2016 サービスの種類 82016/7/16 Language • テキストから 情報を抽出 • アプリケーシ ョンはテキス トで記述され たコンテキス を理解できる ようになる Speech • 音声からテキ スト、テキス トから音声を 変換 • アプリケーシ ョンが音声を 扱えるように なる Vision • 画像から情報 や知見を抽出 • アプリケーシ ョンは画像か らコンテキス を理解できる ようになる Data Insights • データを効率 的に処理 外部ニュース の取り込み 数値データの 組み合わせを 最適化
  • 9. © Copyright IBM Corporation 2016© Copyright IBM Corporation 2016 IBM Bluemix と Watson サービスの概要 IBM Watson の展開 IBM Bluemix と Watson サービスの概要 92016/7/16
  • 10. © Copyright IBM Corporation 2016 Bluemix と Watson Developer Cloud の関係 102016/7/16 IBM Bluemix 環境 アプリケーション Watson Developer Cloud 環境 Watson サービス (API) REST API サービスへの アクセス情報 (ユーザーIDと パスワード) アプリケーション サービスへの アクセス情報 (ユーザーIDと パスワード) REST API Bluemix上で動いていないアプリケーションに関しては Bluemix上で発行されたアクセス情報をコピーして、利用 バインドで提供
  • 11. © Copyright IBM Corporation 2016  Watson Developer Cloud は Watson コグニティブサービスを提供す る クラウド環境です。 – 様々な Watson サービスは REST API を通じて利用可能です。 – Watson サービスを使用してソリューションを効率よく開発するた めの情報を提供しています。 • サービスのドキュメント • デモンストレーション • サンプルコードやスターターキット • 開発者向けのコミュニテイへのリンク(IBM developerWorks) IBM Watson Developers Cloud 112016/7/16 https://www.ibm.com/smarterplanet/us/en/ibmwatson/developercloud/
  • 12. © Copyright IBM Corporation 2016 Bluemix と Watson Developer Cloud 122016/7/16  アプリケーションの実行環境  Watson を含む各種サービスの作 成と管理、および認証情報の管理  サービス利用に対する課金の確認  システムとサービスの状況確認  IBM によるサポート  Watson サービスの実体  Watson サービスで開発を行うた めの各種リソース – ドキュメント – SDK – サンプルコード – デモアプリケーション IBM Bluemix の提供するもの https://console.ng.bluemix.net/ IBM Watson Developer Cloud が 提供するもの https://www.ibm.com/watson/developercloud/  Watson に関する質問 - Questions in Watson space • https://developer.ibm.com/answers/smart-spaces/25/watson.html  サービスや技術に関する情報 - Watson blog • https://developer.ibm.com/watson/blog/ IBM developerWorks http://www.ibm.com/developerworks/
  • 13. © Copyright IBM Corporation 2016 Watson サービスのドキュメント 132016/7/16 https://www.ibm.com/watson/developercloud/doc/ Watson service documents Watson API Reference • API 呼び出しの方法と、 Curl, Node, Java, Python の 呼び出し例を表示
  • 14. © Copyright IBM Corporation 2016 Natural Language Classifier サービスを新規に作成し、作成したサービ スの資格情報を取得してください。また作成したサービスの API に cURL でアクセスしてください。 1. Bluemix にログインします。 2. 新規に Natural Language Classifier サービスを作成します。 3. 作成したサービスの概要からドキュメントを確認します。 4. 作成したサービスの資格情報を確認し、サービスにアクセスするため のユーザー名とパスワードを取得します。 5. 作成した Natural Language Classifier サービスを cURL で呼び出し ます。 実習 1: Bluemix で Watson サービスを作成する 142016/7/16
  • 15. © Copyright IBM Corporation 2016 Natural Language Classifier (NLC) サービスの作成手順 1. 以下の URL にアクセスして Bluemix へログインします。 – http://Bluemix.net • ユーザー名が表示されず「ログイン」リンクが表示されるときは、 その「ログイン」リンクをクリックしてください。 2. カテゴリ一覧で「Watson」をクリックします。 実習手順:Watson サービスの作成手順 152016/7/16
  • 16. © Copyright IBM Corporation 2016  右上の「今すぐ始めましょう。」の横の「+」アイコンをクリックしま す。 実習手順:Watson サービスの作成手順 162016/7/16
  • 17. © Copyright IBM Corporation 2016 3. 左側のカテゴリで「Watson」が選択された状態で、使用したいサービ ス(今回は Natural Language Classifier)をクリックします。 実習手順:サービスの作成手順 172016/7/16
  • 18. © Copyright IBM Corporation 2016 4. 「サービス名」などを確認して「作成」ボタンをクリックします。 実習手順:サービスの作成手順 182016/7/16 接続は「アンバインドの まま」で構いません。 サービス名と資格情報名は必要に 応じて変更してください。 通常はデフォルトの設定を使って 構いません。 もし Bluemix アカウントの提供者から 指定があれば、指定された価格プラン を使用してください。 クリックしてサービスインスタンスを 作成します。
  • 19. © Copyright IBM Corporation 2016 4. サービスが作成されると「概要」ページが開かれ、この画面より「資 料」や「デモ」のリンクを開くことも可能です。 実習手順:サービスの作成手順 192016/7/16 GUI で分類器を管理できる Toolkit もあります。 ドキュメントや デモページへのリンク
  • 20. © Copyright IBM Corporation 2016 5. 「サービス資格情報」タブを開いて、作成したサービスにアクセスす るための認証情報を取得します。 実習手順:サービスの作成手順 202016/7/16 ここで生成された資格情報(URL、ユーザー名、パスワード)で Watson サービスを使用します。あとの手順で使うので、 これらをテキストファイルに記録してください。 資格情報が表示されないときは、 ここをクリックして追加します。
  • 21. © Copyright IBM Corporation 2016  cURL(カール) – 様々なプロトコルでのネットワークリクエストを発行できるコマンド ラインツールです。cURL を使用することで、HTTP リクエストの呼 出し内容やレスポンスのデータを確認することができます。 – 取得できる生のデータや、HTTP リクエストのヘッダーなども確認で きるので、詳細な調査などでは便利。 1. Windows のコマンドプロンプトを開きます。 2. 必要に応じて cURL の実行ファイルのあるフォルダにパスを設定し、 cURL コマンドから呼び出せるようにします。 3. 「curl –v」とタイプしてバージョン情報を確認します。 実習手順: Watson サービス API を cURL で呼び出す 212016/7/16 > set path=c:¥tools¥curl;%path% > curl -v curl 7.33.0 (x86_64-pc-win32) libcurl/7.33.0 OpenSSL/0.9.8y zlib/1.2.8 libssh2/1.4.3
  • 22. © Copyright IBM Corporation 2016  Natural Language Classifier サービスの、登録済みの分類器一覧を取 得する API を呼び出します。 4. 以下のコマンドを発行し、作成済みの NLC サービスに分類器が登録さ れていないことを確認します。 実習手順: Watson サービス API を cURL で呼び出す 222016/7/16 > curl -k -u {username}:{password} -X GET "https://gateway.watsonplatform.net/natural-language- classifier/api/v1/classifiers" 注意 ※ {username} と {password} は、作成した NLC サービスの資格情報の値を 使用します。 ※ -k オプションはローカルの SSL 認証情報がないためにエラーが出るときに、 SSL 認証のチェックを一時的に止める設定です。 ※ 「-X GET」は省略しても構いません。 ※ コマンドは1行で入力します。 ※ 登録されている分類器の名前など日本語が含まれていると、UTF-8 表示のた めに文字化けします。-o オプションでファイルに出力して、エディタで開い て確認してください。
  • 23. © Copyright IBM Corporation 2016  AlchemyAPI とその関連サービスでは、資格情報が api_Key として提 供されます。 参考情報:Alchemy API での資格情報 232016/7/16 ※ 無料プランでは、api_key の発行後は24時間次の api_key を生成できません。
  • 24. © Copyright IBM Corporation 2016  Watson Developer Cloud ページの下段に記載 • https://www.ibm.com/watson/developercloud/  その他の SDK とサンプルも、開発中も含めて GitHub に公開していま す。 – https://github.com/watson-developer-cloud • android-sdk • node-red-node-watson • speech-javascript-sdk • text-to-speech-java Watson SDKs 242016/7/16
  • 25. © Copyright IBM Corporation 2016  開発する言語とご自分の好みで、好きな統合開発環境を使ってください。  Eclipse であれば、IBM Eclipse Tools for Bluemix が便利です。 • https://marketplace.eclipse.org/content/ibm-eclipse-tools-bluemix – 様々な操作を Eclipse GUI で実施可能 • アプリケーションやサービスの作成と管理 • Cloud Foundry によるアプリケーションのデプロイ • Bluemix で稼動する Java アプリケーションのリモートデバッグ – 参考文献 • Bluemix 上で稼動する Web アプリケーション開発方法 - Java 編 • https://www.ibm.com/developerworks/jp/cloud/library/j_cl-bluemix-java-app/ • IBM Eclipse tools for Bluemix の構成手順 • http://www.slideshare.net/hiroakikomine/ibm-eclipse-tools-for-bluemix 開発環境は? 252016/7/16
  • 26. © Copyright IBM Corporation 2016© Copyright IBM Corporation 2016 Watson サービスの詳細 • Natural Language Classifier サービス • Retrieve and Rank サービス • Dialog サービス • Document Conversion サービス • Speech to Text サービス • Text to Speech サービス 262016/7/16
  • 27. © Copyright IBM Corporation 2016 Watson API でのソフトバンクとの協業 272016/7/16 Dialog Document Conversion Retrieve and Rank Natural Language Classifier Text To Speech Speech To Text
  • 28. © Copyright IBM Corporation 2016 質問応答のシナリオに適用できるサービスの組み合わせ 282016/7/16 意図判別 対話 情報検索 音声 コミュニ ケーション コンテンツ Dialog ルールによる応答と 対話のシステム Document Conversion 既存文書を Watson で利用でき るコンテンツに変換 Retrieve and Rank 検索と機械学習アルゴリズムに よるランキング Natural Language Classifier 機械学習による自然文の意図の分類 Text To Speech テキストから音声での発話 Speech To Text 音声からテキストへの変換 Watson を組み込んだ 対話型のアプリケーション
  • 29. © Copyright IBM Corporation 2016 活用想定例:仮想ショッピング店員 292016/7/16 Speech to Textサービス •ユーザーの音声をテキストに変換し、 他のサービスの入力とする Dialogサービス •対話のフローを制御 •対話の中で引きだした情報を管理 服のサイズ、好みの色など Text to Speechサービス •アプリケーションからの応答から 音声を合成して、ユーザーに出力する Natural Language Classifier サービス •短いテキストから意図を分類 「大きめのサイズはありますか」 「少し、小さいです」 「need_bigger_size」クラスに分類 •会話の分岐を決定 使用しているサービス お客様は音声でリクエストし、 Watson も音声で回答します。
  • 30. © Copyright IBM Corporation 2016 Watson質問応答サービスのアプローチと位置づけ 302016/7/16 意図 同じ意図の質問数 1 10 20 頻繁に聞かれる質問 稀な質問 Watsonが提供する複数の推論アルゴリズム 質問を分類し 事前に用意された回答やアクションへつなげる 膨大な知識から回答を探索し評価する Watson Engagement Advisor (Natural Language Classifier) Knowledge Expansion (Retrieve & Rank)
  • 31. © Copyright IBM Corporation 2016 カスタマーサポートでユースケース 312016/7/16 ? ! 仮想エージェント ? ! ? ! エージェント支援(コールセンター) 仮想エージェントのシナリオは Natural Language Classifier サービスに向いています。  人間のエージェントはより複雑で難しい質問に集中できます。 Retrieve and Rank サービスは、エージェンが未知の回答を探し出す手助けとなります。
  • 32. © Copyright IBM Corporation 2016© Copyright IBM Corporation 2016 Watson サービスの詳細 • Natural Language Classifier サービス • Retrieve and Rank サービス • Dialog サービス • Document Conversion サービス • Speech to Text サービス • Text to Speech サービス 322016/7/16
  • 33. © Copyright IBM Corporation 2016  自然言語の処理に深層学習(Deep learning)を適用し、入力されたテ キストの意図を理解して、あらかじめ定義したクラスに分類するサービ スです。  あらかじめ大量の文章を読み込むことで、自然言語の基礎知識(base knowledge)を持ちます。  適用業務分野で定義されたクラスとサンプルのテキストを集めたトレー ニングデータで学習させた分類器で、新たに与えられる未知の文を分類 してその意図を認識します。  意図とは – 質問や発言から言語に含まれるノイズを取り除いて、それが何を言お うとしているか、あるいは何を聞こうとしているのかということ 例: • 「銀行口座はどうやって開けますか?」と 「銀行で口座を開くために必要なものを教えてください。」 • どちらの質問も「銀行で口座を開く」と言う同じ意図を持ってお り、それ以外の言葉はノイズです。 Natural Language Classifier サービス – 概要 332016/7/16
  • 34. © Copyright IBM Corporation 2016 Natural Language Classifier サービスの – 技術 34 Natural Language Classifier サービスは機械学習のアルゴリズムを使用して、 入力された短いテキストからその意図を判別して返します アプリケーション Deep Learning ? ! 意図(隠れたシグナル) + ノイズ 分類器 意図テキスト 回答 2016/7/16 Natural Language Classifier サービス
  • 35. © Copyright IBM Corporation 2016  自然言語の処理 1. 質問に回答するシナリオ  ユーザーが問い合わせたりタイプした質問の回答を予想する 2. ツィッター/SMS メッセージの分類  ツィッターのメッセージの意図をくみ取り、適切な対応をする 3. 感情分析  メッセージに含まれるその人の感情を特定し、直接の対応をする 4. Dialog と組み合わせて分類を行う  手順を追ったガイダンスを行う中でユーザーの状況や求めるもの を特定する Natural Language Classifier サービス – 利用シナリオ 352016/7/16
  • 36. © Copyright IBM Corporation 2016 アプリケーション NLC サービス – ライフサイクルと呼出し手順 36 分類器の作成 [POST] /v1/Classifiers ステータスの取得 [GET] /v1/Classifiers/ {Classifier_id} 質問の分類 [POST/GET] /v1/Classifiers/{Classifier_id}/classify 分類結果の処理 (アプリケーション側の処理) 分類器の削除 [DELETE] /v1/Classifiers/{Classifier_id} “Training” トレーニングデータを変更したときには、変更したデータを送信して 新しい分類器を作成します。 “Available” トレーニングデータを送信して 新しい分類器を作成します。 作成した分類器が「Available」に なるのを待ちます。 アプリケーションは、ラベルをも とにユーザーへの応答を行います。 質問を投入して分類器による分類 を行い、ラベルを返します。 不要になった分類器を削除 します。 2016/7/16
  • 37. © Copyright IBM Corporation 2016  トレーニングデータ – あらかじめ定義した意図を示すクラスラベルと、その意図に該当する サンプルの文章を集めた CSV ファイル • UTF-8 でエンコード • 最大で 15,000レコードで、1行は1024文字以下 • その他の注意事項 • http://www.ibm.com/watson/developercloud/doc/nl-classifier/data_format.shtml#top  トレーニングメタデータ – 分類器の言語設定と名前を定義 NLC サービス – トレーニングデータ 372016/7/16 "今日はどれくらい暑い?",temperature "外はどれくらい暑い?",temperature "蒸し暑くなるかなあ?",temperature … "風が強いか?",conditions "今日雨が降るか?",conditions "雨の可能性があるかな?",conditions … { "language":"ja", "name":"My Classifier“ } トレーニングデータ メタデータ
  • 38. © Copyright IBM Corporation 2016  NLC API を直接呼び出す – http://www.ibm.com/watson/developercloud/ natural-language-classifier/api/v1/ ?curl#create_classifier  Watson SDK (Java/Node/Python)から 呼び出す – http://www.ibm.com/watson/developercloud/ natural-language-classifier/api/v1/ ?node#create_classifier  NLC Toolkit を利用 – 作成した NLC サービスの「管理」ページから 「Access the beta toolkit」ボタンをクリック NLC 分類器の作成方法 382016/7/16
  • 39. © Copyright IBM Corporation 2016  気温と天候についての会話を分類したトレーニングデータ weather_data_train_ja.csv を使用します。 – LabFiles¥Exercise_01 にファイルがあります。  NLC Toolkit を用いて自然言語を分類する分類器を作成し、分類器でト レーニングが完了するのを待ちます。 – トレーニングに数分から数十分の時間がかかります。  分類器に適当な文を入力して正しく分類できるかどうかを確認します。 実習 2-1:NLC 分類器の作成 392016/7/16
  • 40. © Copyright IBM Corporation 2016 1. Bluemix のダッシュボードで先ほど作成した NLC サービスを開き、 「管理」ページを開きます。 2. 「Access the beta toolkit」ボタンをクリックします。 実習手順: NLC 分類器の作成 402016/7/16
  • 41. © Copyright IBM Corporation 2016 3. 「確認許可」画面で「確認」ボタンをクリックします。 4. Toolkit 画面の「Classifiers」ページが開かれるので、「Add training data」の「+」をクリックします。 実習手順: NLC 分類器の作成 412016/7/16
  • 42. © Copyright IBM Corporation 2016 5. 「Upload training data」ボタンをクリックして、 weather_data_train_ja.csv をアップロードします。 6. トレーニングデータが適切にアップロードされたことを確認します。 実習手順: NLC 分類器の作成 422016/7/16
  • 43. © Copyright IBM Corporation 2016 7. 「Create classifier」ボタンをクリックして分類器を作成します。 8. 「Create Classifier」画面で言語で日本語を選択し、分類器の名前を 適当に設定して「Create」ボタンをクリックします。 9. 分類器が作成され、トレーニングが開始されます。トレーニングには 数分から数時間かかります。 実習手順: NLC 分類器の作成 432016/7/16
  • 44. © Copyright IBM Corporation 2016  ニューラルネットワークを用いた人工知能の構築技術の総称 – 脳(神経細胞)の働きを模した学習アルゴリズム  特に、深く大規模な構造を備えていることが特徴 Deep Learning(深層学習) 44 http://www.slideshare.net/nlab_utokyo/deep-learning-49182466 2016/7/16 Linear Transformation Linear Transformation Linear Transformation Linear Transformation 1階層目 「線」 入力「画 素」 2階層目「部 品」 3階層目「物 体」
  • 45. © Copyright IBM Corporation 2016 テキストを理解するために単語からはじめる 単語の意味を、それに頻繁に付随しているものから学びます  この学習をたくさんの自然言語テキストから行います 45 rough the night with the stars shining so brightly, it made in the light of the stars. It all boils down, wr surely under the bright stars, thrilled by ice-white m is dazzling snow, the stars have risen full and cold un and the temple of the stars, driving out of the hug in the dark and now the stars rise, full and amber a bird on the shape of the stars over the trees in front But I couldn’t see the stars or the moon, only the they love the sun, the stars and the moon. None of r the light of the shiny stars. The plash of flowing w 2016/7/16
  • 46. © Copyright IBM Corporation 2016  莫大な数のテキストで、さまざまなコンテキストを調べて、単語のベク トル表記を学習します。  その結果、単語はもはやばらばらなシンボルではなくなります。 – “brightly”(明るく) は他の適当に選んだ単語によりも “shining”(輝 く) と関連性がある – 学習された表現空間で、線形の意味関連が現れてくる • “king” と “queen” の関係は、 “man” と “woman” の関係と同じ • Paris – France + Italy ≈ Rome 単語や文字をベクトル表記で表現する 46 man woman uncle aunt king queen 2016/7/16
  • 47. © Copyright IBM Corporation 2016 トレーニングデータと Classifier の仕組み トレーニングデータにより たくさんのサンプルの質問を投入 Classifier が意図を探す際に類似のテキストを 見つける可能性が高まり、結果の信頼度もあがる Classifier Natural Language Classifier 意図  Classifier の能力はトレーニングデータの内容で決まります。 トレーニングデータ サンプル 質問 サンプル 質問 サンプル 質問 サンプル 質問 47 新しい 質問 トレーニングモデル 2016/7/16
  • 48. © Copyright IBM Corporation 2016 ユースケース: 病院の代表電話にかかってくる電話の対応 (病院の仮想エージェント) 意図の階層: – 施設情報 • 面会時間 • 駐車場 • 食堂 • 交通手段 • 携帯電話の使用 – 入院案内 • 衣類のレンタル • 食事情報 • 個室案内 • 入院手続き… 意図の階層化の例 – ひとつの分類器 それぞれのリーフ要素 が意図を表しています。 それぞれの意図に対し て必要な回答とそれを 表示するための仕組み を用意します。 48 意図の階層化を行うことで、意図の粒度を合わせるとともに、 対応すべき必要な意図が抜けることを防ぐことができます。 2016/7/16
  • 49. © Copyright IBM Corporation 2016  複数の分類器を用意し、同時にあるいは順番に呼ぶこともできます。  同じテキストから異なる種類の意図を判別するために、複数の分類器を 使用します。 「要望の種類」の分類器 複数の分類器を使用する例 49 「水漏れがして 服が汚れたよ」 メンテナンス 要員の派遣 支配人よる フォローアップ対応 ホテルのゲストからの メッセージの例: 設備 サービス時間 ルームサービス ランドリー 「感情」の分類器 怒り 喜び 感謝 苦情 2016/7/16
  • 50. © Copyright IBM Corporation 2016  作成した分類器のステータスを確認し、トレーニングが完了した分類器 で適当な文を入力してその分類結果をテストします。 実習手順 1. NLC Toolkit で分類器のステータスが「Available」になっているのを 確認し、「Test and improve performance」ボタン(右矢印)をク リックします。 2. 「Improve performance」ページで適当な文を入力して分類器のテス トをします。 実習 2-2: NLC 分類器でのテキストの分類 502016/7/16
  • 51. © Copyright IBM Corporation 2016  適当なユースケースで簡単な会話を行うアプリケーションを開発すると 想定して、トレーニングデータを作成し分類器をトレーニングください。 – 例: • 研究室の紹介アプリケーション • よろず相談エージェント • 暇つぶしの話し相手 • バーチャル恋人 などなど  トレーニングデータを作成するに当たり、以下の点を考慮してください。 – アプリケーションで回答する質問の範囲を決めて、それをカバーする 意図(クラス)を定義する。 – アプリケーションで回答しない質問の例を考える。必要に応じて回答 しない質問としてひとつのクラスに分類する。 → 「申し訳ありませんが、その質問にはお答えできません。」 – トレーニングデータには、それぞれの意図に該当するなるべくリアル なサンプルの質問文を用意する。 課題 1:NLC で仮想エージェントの作成 512016/7/16
  • 52. © Copyright IBM Corporation 2016 522016/7/16 ジョージア工科大学のアショク・ゴール教授らの研究チームは、IBMの人工知能システムWatsonを使って、オンライン 学習プログラムのTAをコンピューターに担当させるという実験を行いました。なお、実験ではオンライン学習する学生 に、コンピューターのTAがいるという事実は伏せられています。 学生の質問に答えたり相談にのったりするコンピューターTAには「Jill Watson」という女性の名前が与えられました。 実際に学生への対応を始めるまでに、ゴール教授らは、Jillに約4万件分の学生からのメールやチャットを読み込ませて、 質問や相談に対する応答方法を学習させました。そして、Jill自身が「97%以上の精度で正しく答えられる」と判断した 質問にのみ応答することにして、実際にオンライン学習をする300人強の学生のための9人いるTAの一人として、2016 年1月からJillを運用し始めました。 ゴール教授によると、実際の教室での講義に比べるとはるかに多くの学生に学習の機会を与えられるオンライン学習での 最大の悩みは、学生から寄せられる大量の質問への対応であるとのこと。学生の質問の大半は、これまでにも、そしてこ れからも何度も寄せられるであろう典型的な質問で、このありふれていて回答が決まっている質問への対応に、TAが忙 殺されているという現状があるそうです。そのため、Jillのように典型的な質問や相談に対応できるロボットTAが実用化 されれば、人間のTAにしかできない「より深い内容のやりとり」に「人間の」TAは集中することが期待でき、オンライ ン学習はより大きな成果を上げられると考えられています。 人工知能Watsonが学生の教育アシスタント(TA)に ~学生たちはTAがコンピューターだとは気づかず GIGAZINEニュースサイト翻訳のWSJの記事より Imagine Discovering That Your Teaching Assistant Really Is a Robot http://www.wsj.com/articles/if-your- teacher-sounds-like-a-robot-you-might-be-on-to-something-1462546621
  • 53. © Copyright IBM Corporation 2016  NLC の API Reference には、cURL の他に Node.js や Python での API アクセス方法が記載されています。-d オプションをつけることで API からのレスポンスを表示できるので、API の動きを理解できます。  LabFiles の Exercise_3 フォルダに、サンプルの Node.js と Python のコードがあります。以下の手順で実行してください。 1. 必要なライブラリのインストール • [Node.js] npm install watson-developer-cloud • [Python] pip install --upgrade watson-developer-cloud 2. 以下のファイルを編集して、サービスにアクセスする資格情報を設 定 • [Node.js] nlcConstants.js • [Python] nlcConstants.py 3. 以下のコマンドで NLC 分類器の一覧を取得 • [Node.js] node nlcListClassifiers.js • [Python] python nlcListClassifier.py  注意 – Node.js では必要なライブラリを追加でインストールしてください。 – Python は 2.7 で動作確認しています。 実習 3: プログラムでの NLC サービスへのアクセス 532016/7/16 興味ある方は持ち帰って試してください
  • 54. © Copyright IBM Corporation 2016© Copyright IBM Corporation 2016 Watson サービスの詳細 • Natural Language Classifier サービス • Retrieve and Rank サービス • Document Conversion サービス • Dialog サービス • Speech to Text サービス • Text to Speech サービス 542016/7/16
  • 55. © Copyright IBM Corporation 2016  Retrieve and Rank サービスは、2つの情報検索のコンポーネントをひ とつにまとめたサービスです: – Apache Solr による検索 (Retrieve) • http://lucene.apache.org/solr/ – 検索結果を改良する機械学習による再ランク (Rank)  この組み合わせにより、検索結果にランカーによる再ランクが適用され、 より関連性のある結果を得ることができます。 Retrieve and Rank – 概要 552016/7/16 Retrieve Rank ランカー (トレーニングモデル) 質問 Retrieve によって Solrで検索 された結果 Ranker で 再ランクされた 結果 回答ユニットの ドキュメント トレーニング データ Solr インデックス (回答ユニットの ドキュメント)
  • 56. © Copyright IBM Corporation 2016  Retrieve は、IBM プラグインを組み込んだ Solr 検索によって、入力さ れた質問に関連する回答文書の候補と特徴ベクトルを取得します。  Ranker は、トレーニングデータ(グランドトゥルースから生成された特 徴ベクトル)でトレーニングされた機械学習モデルによって、回答候補 を再ランクします。 Retrieve and Rank で解答を取得するメカニズム 562016/7/16 Solr インデックス Retrieve の結果 Ranker の結果 Retrieve Retrieve の結果を再ランク することで最終結果が得られる Ranker Retrieve によって 回答候補が検索される
  • 57. © Copyright IBM Corporation 2016 特徴量 (Feature) と特徴ベクトル (Feature Vector) 572016/7/16 輪郭の特徴量 目の特徴量 耳の特徴量 鼻の特徴量 口の特徴量 特徴ベクトル 機械学習により、 この特徴ベクトルが 「イケメン」を示して いるかを判別できる
  • 58. © Copyright IBM Corporation 2016 1. 学習データとして、質問とそれに 対する回答例を投入 2. 学習データの内容を特徴ベクトル (Feature Vector) として表現 – (検索スコア、検索数, …) 3. それぞれの特徴ベクトルを グランドトゥルースの 関連度でラベル付けをして トレーニングデータとする – (例えば 0, 1, 2 …) 4. トレーニングデータから 学習してモデルを作り、 新たな質問の回答候補を 再ランクする ランカーの学習と再ランク 582016/7/16 Ranker 学習モデル Ranker グランドトゥルース {Q1, Q2, … Qx} ランキング Retrieve の 検索結果 出力 トレーニング
  • 59. © Copyright IBM Corporation 2016  Learn to Rank として知られている情報検索システムでの研究をベース にしています。  Learning to rank – https://en.Wikipedia.org/wiki/Learning_to_rank • Learning to rank or machine-learned ranking (MLR) is the application of machine learning, typically supervised, semi-supervised or reinforcement learning, in the construction of ranking models for information retrieval systems. Training data consists of lists of items with some partial order specified between items in each list. This order is typically induced by giving a numerical or ordinal score or a binary judgment (e.g. "relevant" or "not relevant") for each item. The ranking model's purpose is to rank, i.e. produce a permutation of items in new, unseen lists in a way which is "similar" to rankings in the training data in some sense. – Based on Yahoo competition in 2010 • From RankNet to LambdaRank to LambdaMART: An Overview • http://research.microsoft.com/en-us/um/people/cburges/tech_reports/MSR-TR- 2010-82.pdf • Yahoo! Learning to Rank Challenge (Archive) • http://archive.is/sr8r ランカーの内部メカニズム 592016/7/16 Learning to Rank あるいは「機械学習によるランク (machine-learned ranking: MLR)」 は、情報 検索システムでのランキングモデルの作成にあたり、多くの場合には専門家の管理下で、ときに は部分的な管理や強化アルゴリズムによって学習が行われる、機械学習のアプリケーションです。 リスト内で順位付けされたアイテムで構成されたリストがトレーニングデータになります。この 順位付けは大抵は、それぞれのアイテムに対して(関連があるか無いかどうかを示す)数値や序 列のスコアや相対値によって定義されます。ランキングモデルの目的はランクをすることで、新 たに与えられた「はじめて見る」一連のアイテムを、トレーニングデータのランキングと意味的 にで「同じように」なるように並べ替えすることです。
  • 60. © Copyright IBM Corporation 2016  Retrieve and Rank サービスの典型的な利用例の一つは、顧客対応を行 うプロフェッショナルです。彼らは莫大な量の資料から関係ありそうな 情報を即座に発見し顧客対応を行う必要があります。 – 顧客サポート • 日々増えてくる回答候補の文書資料の中で、顧客への回答を瞬時 に探す必要があります。 – フィールドの技術者 • オンラインで技術情報の収集に利用します。 – プロフェッショナルサービス • 重要なプロジェクトの推進で適切なスキルを持った優秀な人材を 探します。  検索対象の文書に、評価に利用できる情報があると、ランキングの学習 データとして使用できる。 – 例: 文書の参照数、「いいね」数、作成者の評判 などなど ⇒ 単純な検索以上の結果をもたらす可能性があります。 Retrieve and Rank サービスの典型的な利用例 602016/7/16
  • 61. © Copyright IBM Corporation 2016 Retrieve and Rank サービスの基本的な利用手順 612016/7/16 1. Solr クラスタを作成する 2. Solr 構成ファイルを作成してアップロード 3. Solr コレクションの作成 5. ランカーを作成してトレーニング トレーニングデータを再作成したときは、その修正したデータで新しいランカーを作成します。 6. グランドトゥルースの作成と更新 6. 結果を評価しグランドトゥルースの更新 4. 文書を投入してインデックス作成 クラスタ名とサイズを指定してクラスタを作成。 作成後、クラスタが利用可能になるまで待つ。 テンプレートをもとにスキーマを定義し、パッ ケージした構成ファイルをアップロードする。 アップロードした構成ファイルと関連つけて Solr コレクションを作成する。 回答となる文書を集めて整形し、 Solr コレク ションに投入して検索できるようにインデックス する。 サンプルとなる質問と関連する回答を集め、関連 度スコアとともに関連度ファイル(CSV)にまと める。 関連度ファイル(CSV)からトレーニングデータ を生成し、アップロードしてランカーを作成する。 トレーニングが完了するのを待ち、ランカーを試 して再ランクされた結果を評価する。
  • 62. © Copyright IBM Corporation 2016  LabFiles の 「Exercise_04」フォルダに、ソフトバンク社向けに提供 した Retrieve and Rank サービスのハンズオン実習資料を置きました。 このハンズオン実習をすることで、Retrieve and Rank サービス(と Document Conversion サービス)の構成と利用の方法を学ぶことがで きます。 – 実習の手順を書いた PDF ファイル – 実習に必要なファイルをまとめた ZIP ファイル  実習の手順を終えるには、おおよそ4~6時間を想定しています。 実習 4: Retrieve and Rank の構成と利用 622016/7/16 興味ある方は持ち帰って試してください
  • 63. © Copyright IBM Corporation 2016© Copyright IBM Corporation 2016 Watson サービスの詳細 • Natural Language Classifier サービス • Retrieve and Rank サービス • Document Conversion サービス • Dialog サービス • Speech to Text サービス • Text to Speech サービス 632016/7/16
  • 64. © Copyright IBM Corporation 2016  既存の様々な文書を、Watson サービスで利用可能な形式に変換します。  投入して変換できるファイル: – PDF 文書 – Microsoft Word 文書 – HTML 文書  サービスから取り出せる形式: – 規格化された HTML 文書 – 規格化されたプレーンテキスト文書 – 回答ユニットを含む JSON 文書 → 他の Watson サービスで利用可能  利用方法 – 他の Watson サービスとの連携 • Retrieve and Rank サービス • Personality Insights サービス • AlchemyAPI の各種サービス Document Conversion サービス – 概要 642016/7/16
  • 65. © Copyright IBM Corporation 2016  Document Conversion サービスの変換プロセス – このパスを通じて変換されるので、変換オプションはこのパスを考慮 して設定します。 Document Conversion サービスの変換プロセス 652016/7/16
  • 66. © Copyright IBM Corporation 2016© Copyright IBM Corporation 2016 Watson サービスの詳細 • Natural Language Classifier サービス • Retrieve and Rank サービス • Document Conversion サービス • Dialog サービス • Speech to Text サービス • Text to Speech サービス 662016/7/16
  • 67. © Copyright IBM Corporation 2016  「ダイアログ」= 仮想エージェントとユーザーとの対話の窓口  Watson Dialog サービスは仮想エージェントとの会話を管理するため の包括的なプラットフォーム提供するサービスです。  ルールベースでのユーザーの入力を認識して、対応する返答を返します。 Dialog サービス – 概要 672016/7/16 <output> <prompt selectionType="RANDOM"> <item>Which fruit do you like?</item> </prompt> <getUserInput> <input> <grammar> <item>I like orange.</item> <item>I love orange.</item> <item>*orange</item> </grammar> <output> <prompt selectionType="RANDOM"> <item>You like orange.</item> <item>Orange is great</item> </prompt> </output> </input> Dialog システムの 最初のメッセージ ユーザーから入力されたメッセージの マッチングルール マッチしたときの、Dialog システムからの 返答メッセージ
  • 68. © Copyright IBM Corporation 2016  仮想エージェントアプリケーションのダイアログの作成。 ダイアログがあることで、人間と仮想エージェントが自然で自由な流れ で、人間のように会話をできます。  Dialog サービスを使って作成された仮想エージェントアプリケーショ ンは、以下のようなかたちでユーザーを支援します。 Dialog サービスの一般的な使用例  ユーザーに応じた、コンテキ ストを認識したやり取り  質問への回答  製品提案や意思決定支援を提 供  必要な手順に従って、一連の 操作の実施  段階的なプロセスを介しての ユーザーガイド  曖昧な問い合わせの明確化  外部システムとの取次ぎ  個性を見せることで人間らし いやり取りの実現  画面操作などのガイド  対話的な問題解決の提供 2016/7/16 68
  • 69. © Copyright IBM Corporation 2016© Copyright IBM Corporation 2016 Watson サービスの詳細 • Natural Language Classifier サービス • Retrieve and Rank サービス • Dialog サービス • Document Conversion サービス • Speech to Text サービス • Text to Speech サービス 692016/7/16
  • 70. © Copyright IBM Corporation 2016  音声信号の構成と文法や言語の構造を用いて、音声データを テキストデータに変換  音声の中に、特定のキーワードを含むか(開始と終了時間)の 検知が可能(ベータ)  活用シーン – コールセンターにおける、やりとりの書き起こし – 音声によるシステムのコントロール  入出力 – 入力:ファイルまたはストリーム形式の音声データ – 出力:音声から認識されたテキスト Speech to Text サービス – 概要 702016/7/16
  • 71. © Copyright IBM Corporation 2016 IBM Watsonが会話音声認識におけるブレイクスルーを発表 712016/7/16  昨年、英語電話音声会話の NIST Switchboard という公開されたベンチマークテストで8%の WERを達成しました。これはそれまでに発表した最善の結果よりも36%のエラー率削減でした。  今年、Deep Learningの技術を利用している音響モデルと言語モデルの両方をさらに改良すること によって、WERを6.9%までさらに削減することができました。 George Saon / 2016年4月28日 https://developer.ibm.com/watson/blog/2016/04/28/recent-advances-in-conversational-speech-recognition-2/ (2015) https://developer.ibm.com/watson/blog/2015/05/26/ibm-watson-announces-breakthrough-in-conversational-speech-transcription/ “Recent Advances in Conversational Speech Recognition”
  • 72. © Copyright IBM Corporation 2016 Speech to Text サービス – 詳細 722016/7/16 項目 内容 言語 アメリカ英語、イギリス英語、アラビア語、ポルトガル語、スペイン語、標準中国語、 日本語、フランス語 種類 一般用途広帯域モデル、電話音声用狭帯域モデル 提供形態 Bluemix上でREST APIを公開 iOS、Android OS向けにSDKも公開 API特徴 1. ストリーミング認識(発話中からリアルタイムで結果出力) 2. 各単語の音声認識信頼度を出力可能 3. 2位以下の音声認識結果(対立仮説)も入手可能 認識精度 Deep Learning技術を利用しており高精度 プラン 様々な追加機能と追加言語が計画中 WORD START TIME(SEC) END TIME(SEC) CONFIDENCE 寿司 0.29 0.6 0.7 食べたい 0.6 1.14 0.8 (単語) (開始時間位置) (終了時間位置) (音声認識信頼度) 例:対立仮説例:音声認識信頼度 デモページ:https://speech-to-text-demo.mybluemix.net/
  • 73. © Copyright IBM Corporation 2016  ルノワールを検出するよう構成した例 音声でのキーワード出現の検出(Keyword Spotting) 732016/7/16 { "results": [ { "keywords_result": { "ルノワール": [ { "normalized_text": "ルノワール", "start_time": 0.44, "confidence": 0.885, "end_time": 1.02 } ] }, "alternatives": [ { "confidence": 0.835, "transcript": "ルノワール 展 見て きた " } <後略> } 検出された 開始時間 終了時間
  • 74. © Copyright IBM Corporation 2016© Copyright IBM Corporation 2016 Watson サービスの詳細 • Natural Language Classifier サービス • Retrieve and Rank サービス • Dialog サービス • Document Conversion サービス • Speech to Text サービス • Text to Speech サービス 742016/7/16
  • 75. © Copyright IBM Corporation 2016  テキストから自然なリズムやイントネーションを再現した音声ストリー ムを生成 Text to Speech サービス – 概要 752016/7/16 項目 内容 言語 英語(米)、英語(英)、スペイン語、スペイン語(北米)、フランス語、ドイ ツ語、イタリア語、日本語、ブラジルポルトガル語 種類 9言語男女合計13音声 提供形態 Bluemix上でREST APIを公開 API特徴 1. 英(米)・英・独・仏語についてはSSMLタグを部分的にサポート 1. 読みの指定 2. 数字の読み方の指定(桁読み、棒読み) 3. ポーズ位置の指定、など 2. 英(米)1音声ではSSMLタグによる感情音声合成を実現 (GoodNews, Apology, Uncertainty) 3. ユーザー辞書の利用 4. WAV、Ogg opus、FLACフォーマットを出力 合成品質 統計的な韻律モデルを用いて、波形を接続・編集 プラン より詳細な制御機能と追加言語が計画中 デモページ:http://text-to-speech-demo.mybluemix.net/
  • 76. © Copyright IBM Corporation 2016  Watson Developer Cloud にある speech-javascript-sdk を使用して、 STT/TTS を使用したサンプルコードを実行します。 – GitHub:https://github.com/watson-developer-cloud/speech- javascript-sdk – リリースモジュール:https://github.com/watson-developer- cloud/speech-javascript-sdk/releases • 現時点では、STT のサンプルに日本語音声モデルを使用するコー ドが実装されていないので、LabFiles の Exercise_05 に含まれる 修正したモジュールを使用します。 • speech-javascript-sdk-0.19.1-modified-20160712.zip • watson-speech.js  このサンプルは Node.js でサーバーを 構成していますが、クライアント側の 実装で使用さている Javascript コード は他の実装方法でも参考になります。 実習 5:音声アプリケーションの実装 762016/7/16 独自アプリ ケーション ブラウザ Watson Developer Cloud トークン管理 トークンの 取得 音声の操作
  • 77. © Copyright IBM Corporation 2016 1. Bluemix のダッシュボードで Speech to Text と Text to Speech サービスを作成します。 – アプリへのバインドは必要ありません。サービス名はデフォルトで 生成された値で構いません。 – 作成された STT/TTS のサービスをそれぞれ開き、アクセスするた めのサービス資格情報をテキストファイルに記録します。 2. speech-javascript-sdk-0.19.1-modified-20160712.zip を適当な フォルダに展開します。 3. 展開したフォルダに含まれる speech-javascript-sdk- 0.19.1¥examples¥static¥watson-speech.js はダミーのファイルな ので、LabFiles にある watson-speech.js で置き換えます。 実習手順:音声アプリケーションの実装 772016/7/16
  • 78. © Copyright IBM Corporation 2016  展開したフォルダの speech-javascript-sdk-0.19.1¥examples フォル ダにある、stt-token.js と tts-token.js を編集し、先ほど記録したサー ビス資格情報の username と password を設定します。また必要に応 じて url も修正します。 実習手順:音声アプリケーションの実装 782016/7/16 // For local development, replace username and password or set env properties var sttConfig = extend({ version: 'v1', url: 'https://stream.watsonplatform.net/speech-to-text/api', username: process.env.STT_USERNAME || '<username>', password: process.env.STT_PASSWORD || '<password>' }, vcapServices.getCredentials('speech_to_text')); // For local development, replace username and password or set env properties var ttsConfig = extend({ version: 'v1', url: 'https://stream.watsonplatform.net/text-to-speech/api', username: process.env.TTS_USERNAME || '<username>', password: process.env.TTS_PASSWORD || '<password>' }, vcapServices.getCredentials('text_to_speech')); stt-token.js tts-token.js アプリケーションを Bluemix で 実行するときには、これらの値は アプリの環境変数から取得される ので、ここで設定する必要はあり ません
  • 79. © Copyright IBM Corporation 2016  コマンドプロンプトを開き、展開したフォルダに含まれる speech- javascript-sdk-0.19.1¥examples フォルダに移動し、以下のコマンド で Node.js の追加パッケージをインストールします。  以下のコマンドでサンプルのサーバーアプリケーションを起動します。  サーバーが起動したら Firefox ブラウザから http://localhost:3000/ にアクセスして、サンプルアプリケーションを試します。 実習手順:音声アプリケーションの実装 792016/7/16 > npm install dotenv > npm install express > npm install vcap_services > npm install watson-developer-cloud > npm start Example IBM Watson Speech JS SDK client app & token server live at http://localhost:3000/ Secure server live at https://localhost:3001/
  • 80. © Copyright IBM Corporation 2016 実習手順:音声アプリケーションの実装 802016/7/16 日本語が使用できる 音声認識のサンプル 日本語が使用できる 音声合成のサンプル
  • 81. © Copyright IBM Corporation 2016 実習手順:音声アプリケーションの実装 812016/7/16 モデルに「ja-JP_BroadbandMddel」を選択します。 「Start …」ボタンでストリ-ミング開始 マイクの使用確認ダイアログが表示されたら、 適切なマイクを選択して「Share …」を クリックします。 microphone-streaming-model.html デモでの音声の認識 認識されたテキストを表示します。
  • 82. © Copyright IBM Corporation 2016 実習手順:音声アプリケーションの実装 822016/7/16 text-to-speech-custom-voice.html での音声合成 音声に「ja-JP_EmiVoice」を選択します。 「Synthesize test」ボタンで音声合成の開始 合成するテキストを入力します。
  • 83. © Copyright IBM Corporation 2016  既存の Web ページやアプリケーションに、TTS/STT を使用して音声 機能を追加してください。 – 例: • 研究室の紹介ページで、ボタンを押すと音声で説明すようにする。 • 既存アプリケーションを、音声で操作できるように拡張する。 • 先の課題で作成した NLC での仮想エージェントのフロントエンド を音声対応にする。 などなど 課題 2:音声アプリケーションの実装 832016/7/16
  • 84. © Copyright IBM Corporation 2016© Copyright IBM Corporation 2016 その他の日本語に対応した Watson サービス Personality Insights Visual Recognition 842016/7/16
  • 85. © Copyright IBM Corporation 2016  電子メール、テキスト・メッセージ、ツイートやフォーラムの書き込み を分析し、作成者のパーソナリティーを判定します。  入力データ – 分析対象者が一人で書いた、最少で1000語の自然文。 – 統計学的に有意な結果を得るためには、 少なくとも3500語以上、理想的には 6000語以上の長さのテキストが必要です。 – Twitter のつぶやきでも構いません。  出力データ Personality Insights 852016/7/16 – 5因子モデルによる性格分析 • Openness (知的好奇心) • Extraversion(外向性) • Agreeableness(調和性) • Emotional range(情緒不安定性) • Conscientiousness (誠実性) – 欲求 • 実用主義、社会性、調和 • 自由主義、親密 – 価値 • 自己超越、変化許容性、自己増進 • 快楽主義、現状維持
  • 86. © Copyright IBM Corporation 2016 Personal Insight デモページ 862016/7/16 https://personality-insights-livedemo.mybluemix.net/
  • 87. © Copyright IBM Corporation 2016 Personal Insight デモページ 872016/7/16 結果(性格のサマリー)の例 道草 - 夏目漱石 (日本語) • 熱くなりやすいタイプであり、ひどく陽 気なタイプであり、また慣例にとらわれ ないタイプです. • 大胆なタイプです: 時間をかけて慎重に検 討するよりもむしろ即座に行動を起こし ます. 圧力を受けても冷静なタイプです: 冷静で、予期しない出来事にも効果的に 対処します. また、自主性の高いタイプで す: 自分の時間を大切にしたいという強い 願望があります. • 組織への帰属を意識して意思決定するタ イプです. • 自主性があなたの行動に大きな影響を与 えています: 最高の成果が得られるよう、 自分自身で目標を設定する傾向がありま す. 成功することにはあまりこだわりませ ん: 自分の才能を誇示することにあまり拘 らず意思決定します.
  • 88. © Copyright IBM Corporation 2016 活用想定例:カスタマーケア・アシスタント 882016/7/16 パーソナリティー 検索 問合せ履歴 ジャック フロスト 顧客NO: 0011 電話番号: 080-xxx-xxx メール: jack@example.com Twitter: @jackfrost 類似するお客様の問合せTop5 タイトル カテゴリー 日付 支払い方法について 支払 2015-01-23 充電が出来ない 故障 2015-03-15 家族プランの問合せ プラン 2015-04-04 現在、B社と契約中のお子様の電話代が安くならないかの相談を受けまし た。家族プランをご紹介 1. 家族割について 2. プランの変更 3. 割引適用条件について 4. 電源の入れ方 5. 充電の仕方 類似するお客様
  • 89. © Copyright IBM Corporation 2016© Copyright IBM Corporation 2016 その他の日本語に対応した Watson サービス Personality Insights Visual Recognition 892016/7/16
  • 90. © Copyright IBM Corporation 2016  深層学習のアルゴリズムを使用して画像を分析し、画像に含まれるオブ ジェクト、顔、テキストを分析します。 – 画像に含まれるオブジェクトを分析し、あらかじめサービスで持って いるカテゴリの該当するものに確信度付きで分類します。 • 利用目的に合わせたて独自に分類した画像を学習データとして、 カスタマイズされた分類器の作成も可能です。 – 顔認識(Detect faces) API を使用することで、画像に含まれる顔 を検知し、性別と年連を判別します。 • 有名人については人物の特定もします。 – 文字認識(Recognize text)API を使用することで、画像に含まれ るテキスト(現時点で英語のみ)を認識します。  活用シーン – 画像データをカテゴリーごとに整理 – ソーシャルメディアの写真からユーザーの興味をセグメント化 – 特定のコンテンツに関連した画像を、探し出す Visual Recognition – 概要 902016/7/16
  • 91. © Copyright IBM Corporation 2016 Visual Recognition – デモページ 912016/7/16 http://visual-recognition-demo.mybluemix.net/
  • 92. © Copyright IBM Corporation 2016  目的 – Visual Recognition による事前分類やフィルタリングをすることで、 業務における様々な確認や分析作業を行う人間の負荷低減をする。 • 不適切な画像のフィルタリング • 画像選択での事前分類 • 商品や製作物の品質確認  トレーニングデータ – 分類すべきクラスごとに集められた最低10枚の画像 (適切な分類品質を得るには50枚以上) – どのクラスにも該当しないネガティブな最低10枚の画像 Visual Recognition – カスタマイズされた分類器の作成 922016/7/16 分類器 Apple クラス (ポジティブ) Banana クラス (ポジティブ) Orange クラス (ポジティブ) Vegetable (ネガティブ) Apple
  • 93. © Copyright IBM Corporation 2016 Visual Recognition -カスタマイズされた分類器の使用例 932016/7/16 これらの画像と、 同じ特徴を持つ 画像を検出 但し、これらの 画像と、同じ 特徴を持つ画像 は不正解 学習データ 実行結果1 77%の確信度で、この分類器にマッチ この分類器にマッチする 確信度は50%以下 実行結果 2
  • 94. © Copyright IBM Corporation 2016  Visual Recognition サービスを作成し、cURL で API を呼び出してサ ンプルの画像を分類します。  Visual Recognition サービスの Tutorial からダウンロードしたトレー ニング用の画像データを使用してカスタム分類器を作成し、カスタム分 類器での画像の分類を試します。 – この実習内容は、以下のページにある「Visual Recognition - Tutorial」から抜粋したものです。 • http://www.ibm.com/watson/developercloud/doc/visual- recognition/tutorials.shtml 実習 6: Visual Recognition での画像分析 942016/7/16
  • 95. © Copyright IBM Corporation 2016 1. Bluemix のダッシュボードで Visual Recognition サービスを作成し ます。 – アプリへのバインドは必要ありません。サービス名はデフォルトで 生成された値で構いません。 2. 作成された Visual Recognition サービスを開き、アクセスする ためのサービス資格情報 (api_key)をテキスト ファイルに記録します。 3. コマンドプロンプトで以下の cURL コマンドを発行し、fruitbowl.jpg の画像の分類し、その結果を確認します。 実習手順: Visual Recognition での画像分析 952016/7/16 > curl -k -X POST -F "images_file=@fruitbowl.jpg" "https://gateway- a.watsonplatform.net/visual-recognition/api/v3/classify?api_key={api- key}&version=2016-05-20"
  • 96. © Copyright IBM Corporation 2016 4. cURL による呼び出し結果を 確認します。 – 「fruit」に高い確信度で 分類されていることがわか ります。 実習手順: Visual Recognition での画像分析 962016/7/16 { "images": [ { "classifiers": [ { "classes": [ { "class": "fruit", "score": 0.937027 }, { "class": "apple", "score": 0.668188 }, { "class": "banana", "score": 0.549834 }, { "class": "food", "score": 0.524979 }, { "class": "orange", "score": 0.5 } ], "classifier_id": "default", "name": "default" } ], "image": "fruitbowl.jpg" } ], "images_processed": 1 }
  • 97. © Copyright IBM Corporation 2016 5. 「Visual Recognition – Tutorial」の Stage 2: Classifying an image セクション内の Sample files (あるいは以下のURL)をダウン ロードします。 • https://github.com/watson-developer-cloud/visual-recognition- tutorial/zipball/master?cm_mc_uid=82999389183014561059798&cm_mc_sid_50200000=1468483780 6. ダウンロードしたファイルを展開します。展開されたファイルに含ま れる以下の ZIP ファイルをトレーニングデータとして使用します。 – 犬を分類するためのポジティブデータ • beagle.zip、husky.zip、golden-retriever.zip – ネガティブなデータ • cats.zip 実習手順: Visual Recognition での画像分析 972016/7/16
  • 98. © Copyright IBM Corporation 2016 7. 以下の cURL コマンドを発行して、カスタム分類器を作成します。 – –F パラメータ送信するデータファイルを指定しています。ポジティブな ファイルには、データ名を「{クラス名}_positive_examples」としてクラ ス名を設定し、ネガティブデータにはデータ名に「negative_examples」を 指定しています。 8. cURL コマンドのレスポンスに classifier_id が含まれているので、 テキストファイルなどに記録して おきます。 実習手順: Visual Recognition での画像分析 982016/7/16 > curl -k -X POST -F beagle_positive_examples=@beagle.zip -F husky_positive_examples=@husky.zip -F goldenretriever_positive_examples=@golden-retriever.zip -F negative_examples=@cats.zip -F "name=dogs“ "https://gateway-a.watsonplatform.net/visual- recognition/api/v3/classifiers?api_key={api-key}&version=2016-05-20" { "classifier_id": "dogs_1941945966", "name": "dogs", "owner": "xxxx-xxxxx-xxx-xxxx", "status": "retraining", "created": "2016-05-18T21:32:27.752Z", "classes": [ {“class”: “dalmatian”}, {"class": "husky"}, {"class": "goldenretriever"}, {"class": "beagle"} ] }
  • 99. © Copyright IBM Corporation 2016 9. 以下の cURL コマンドを発行して、カスタム分類器をトレーニングの 状況を確認します。 10. テキストエディタで myparams.json を 編集し、”<classifier_id>” に先ほど 作成した分類器 ID を設定します。 11. カスタム分類器の状況が「ready」になるのを待って、以下の cURL コマンドでカスタム分類器での分類を行います。 実習手順: Visual Recognition での画像分析 992016/7/16 > curl -k -X GET "https://gateway-a.watsonplatform.net/visual- recognition/api/v3/classifiers/{classifier_id}?api_key={api-key}&version=2016- 05-20" > curl -k -X POST -F "images_file=@dogs.jpg" -F "parameters=@myparams.json" "https://gateway-a.watsonplatform.net/visual- recognition/api/v3/classify?api_key={api-key}&version=2016-05-20" { "classifier_ids": ["<classifier_id>", "default"] }
  • 100. © Copyright IBM Corporation 2016  適当なユースケースを想定して、そのユースケースの中で使用する画像 を分類するためのカスタム分類器を作成してください。 – 例: • 腐った果物を自動分別する流通アプリケーション • 電車の忘れ物を分別して、問い合わせに照会するシステム • ビン・缶と燃えるものを分別する装置 • 猫は通すが、狸や猪を通さない家庭用自動ドア などなど  トレーニングデータを作成するに当たり、以下の点を考慮してください。 – ユースケースで対応すべき対象物の範囲を決めて、それをカバーする クラスを定義する。 – ユースケースで対象が意図する対象物を決めて、ネガティブの画像を 収集する。 課題 3: Visual Recognition でカスタム分類器の作成 1002016/7/16