Watson Discoveryを触ってみた。

この記事はIBM Cloud Advent Calendar 2017 - Qiitaの15日目の記事です。
#**「初めてのWatson」の書籍を勉強していたら**
[「初めてのWatson APIの用例と実践プログラミング」](https://www.amazon.co.jp/%E5%88%9D%E3%82%81%E3%81%A6%E3%81%AEWatson-API%E3%81%AE%E7%94%A8%E4%BE%8B%E3%81%A8%E5%AE%9F%E8%B7%B5%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0-%E4%BA%95%E4%B8%8A%E7%A0%94%E4%B8%80/dp/4865940529)の書籍、Watson APIのNLC(Natural Language Classifier)とR&Rを勉強しようとしたが、R&Rのサービスが2018年10月3日でサポート廃止とのこと。
そこで後継のサービスWatson Discoveryを触ってみることにしました。

#**最初は、チュートリアルをやってみました。**
[Getting started with the tooling]( https://console.bluemix.net/docs/services/discovery/getting-started-tool.html#getting-started-with-the-tooling)の内容の沿って始めました。

※ IBM Cloud ライト・アカウント作成の手順は、[ここ](https://qiita.com/KenichiSekine/items/249d2ff691b6565fb127)を参考にしてみてください。

###**１．はじめにサンプルをダウンロードします。**
上記のチュートリアルからサンプルのHTMLファイルを４つ（ test-doc1.html, test-doc2.html, test-doc3.html, test-doc4.html）ダウンロードします。

###**２．Discoveryのインスタンスを作成します**
IBM CloudのカタログからDiscoveryを選択します。
サービス名は任意に入力、Liteプランで作成します。
こんな画面が表示されます。
<img width="1238" alt="スクリーンショット 2017-12-15 18.01.59.png" src="https://qiita-image-store.s3.amazonaws.com/0/171737/7e554a0b-6e93-fbde-302b-ed8b7f162397.png">

###**３．Discovery toolingを起動します。**
作成したサービスをクリックし、Launch Toolボタンをクリックします。

<img width="1238" alt="スクリーンショット 2017-12-15 18.08.20.png" src="https://qiita-image-store.s3.amazonaws.com/0/171737/91caa7bf-a0c2-8f51-47eb-2787a8018394.png">

Discovery toolingが開いたら、右上のマーク<img width="40" alt="スクリーンショット 2017-12-15 18.31.21.png" src="https://qiita-image-store.s3.amazonaws.com/0/171737/7a82c9be-0ba1-717a-05bb-80eb98c25114.png">「CREATE ENVIRONMENT」をクリックし、ストレージがセットアップされます。
<img width="1247" alt="スクリーンショット 2017-12-15 18.38.19.png" src="https://qiita-image-store.s3.amazonaws.com/0/171737/b64b0edb-b8a5-ad7b-fd65-98fdc03b0114.png">

Collectionに好きな名前を入力して作成します。
<img width="290" alt="スクリーンショット 2017-12-15 18.30.08.png" src="https://qiita-image-store.s3.amazonaws.com/0/171737/a1e48c6a-8e07-c220-05fd-0011dd081cd7.png">

一つめのCollectionが作成されます。

###**４．文書のアップロードを行います**

最初の初期画面に戻ったら作成したCollectionを開きます。
<img width="1247" alt="スクリーンショット 2017-12-15 18.38.19.png" src="https://qiita-image-store.s3.amazonaws.com/0/171737/b64b0edb-b8a5-ad7b-fd65-98fdc03b0114.png">

準備した４つのHTMLファイルをアップロードします。
<img width="1244" alt="スクリーンショット 2017-12-15 13.28.42.png" src="https://qiita-image-store.s3.amazonaws.com/0/171737/6aa01a80-c17f-0ac5-834d-30d6fd93bceb.png">

アップロードが完了すると下記の画面になります。
Documents countsが4なら大丈夫です。もう検索できますよ。


###**５．文書の照会（Query）をやってみる**
左のバーの一番したのアイコンをクリックし、照会対象であるご自身のCollectionを選択のうえ「Get Started」をクリックします。

<img width="1249" alt="スクリーンショット 2017-12-15 18.43.27.png" src="https://qiita-image-store.s3.amazonaws.com/0/171737/00c2c69c-e24d-2725-a071-68325219b4b4.png">


Visual Query Builder(VQB)が使えるようになります
<img width="1243" alt="スクリーンショット 2017-12-15 18.45.19.png" src="https://qiita-image-store.s3.amazonaws.com/0/171737/502705fb-2eca-5766-d5bf-473a39aa7ddf.png">

チュートリアルでは、エンティティに「IBM」という単語を含む文章を抽出するのですが、
ここでは、下記のHTMLファイルでどのようになるか試してみました。

    - 機動戦士ガンダム- Wikipedia の英語サイト
    - 機動戦士ガンダム 逆襲のシャア- Wikipediaの英語サイト
    - 機動戦士ガンダムUC - Wikipediaの英語サイト

エンティティに「Amuro」とうい単語で文章を抽出することにした。

 - ① Search for documentsを展開し「Use the Discovery Query Language」のタブを選択します
 - ② enriched_text.entities.text / contains / Amuroと入力します。結果、enriched_text.entities.text:AmuroというDQLが生成されます
 - ③「Run Query」
 - ④ 右側のペイン「Results」に結果が表示されます。
 
<img width="1245" alt="スクリーンショット 2017-12-15 18.56.01.png" src="https://qiita-image-store.s3.amazonaws.com/0/171737/a8a53d0e-4e11-5058-5953-956b4571d818.png">

いい感じに　機動戦士ガンダム、機動戦士ガンダム 逆襲のシャアの２件分が検出されていることが確認できます。

###**６．自然言語照会**
VQEで「Edit query language」をクリック
<img width="730" alt="スクリーンショット 2017-12-15 19.17.42.png" src="https://qiita-image-store.s3.amazonaws.com/0/171737/9553716f-a47c-c017-1c07-f5015590653a.png">

パネルが切り替わるので「Use Natural Language」タブをクリックすると自然言語で質問が入力できます。

「Amuroは何を操縦したか？」(Amuroは何を操縦したか？?)との質問をしてみました。(Gundamとの回答を期待) 結果は3件全部ヒットしてしまいました。ユニコーンの記事は検出されないと思ったのですが、pilot、Whatで検出されたみたいです。（笑）

チュートリアルでもそうですが、JSONのスコアで見ると機動戦士ガンダムの記事が最も高く、Passageも機動戦士ガンダムのAmuroのスニペットが先頭に来ていました。（笑）

#まとめ
まだ、この時点で、Discoveryの日本語対応で全機能は対応していませんでした。
それで全機能がある英語で試してみました。
早く日本語対応も全機能になることを切に願います。（笑）
トレーニングする基の文書データもキチンと精査してアップロードするべきだと思いました。
今度こそは上手く行くように考えます。（笑）

はじめて書きましたが、これをきっかけにどんどん書きたいと思います。:relaxed:

![25440939_1623389844423485_1836371911_o.jpg](https://qiita-image-store.s3.amazonaws.com/0/171737/1fd3e2a2-f282-b161-74b3-2122353725c9.jpeg)




#参考
- [Watson Discovery Serviceが日本語対応したので、触ってみた【やってみた】編](https://qiita.com/ishida330/items/bb1bd4cf61da9b9c6da2)
- [Watson Discovery Serviceが日本語対応したので、触ってみた【何、それ？】編](https://qiita.com/ishida330/items/b823d7c5b55806f04242K)