この記事はIBM Cloud Advent Calendar 2017 - Qiitaの15日目の記事です。
#「初めてのWatson」の書籍を勉強していたら
「初めてのWatson APIの用例と実践プログラミング」の書籍、Watson APIのNLC(Natural Language Classifier)とR&Rを勉強しようとしたが、R&Rのサービスが2018年10月3日でサポート廃止とのこと。
そこで後継のサービスWatson Discoveryを触ってみることにしました。
#最初は、チュートリアルをやってみました。
Getting started with the toolingの内容の沿って始めました。
※ IBM Cloud ライト・アカウント作成の手順は、ここを参考にしてみてください。
###1.はじめにサンプルをダウンロードします。
上記のチュートリアルからサンプルのHTMLファイルを4つ( test-doc1.html, test-doc2.html, test-doc3.html, test-doc4.html)ダウンロードします。
###2.Discoveryのインスタンスを作成します
IBM CloudのカタログからDiscoveryを選択します。
サービス名は任意に入力、Liteプランで作成します。
こんな画面が表示されます。
###3.Discovery toolingを起動します。
作成したサービスをクリックし、Launch Toolボタンをクリックします。
Discovery toolingが開いたら、右上のマーク「CREATE ENVIRONMENT」をクリックし、ストレージがセットアップされます。
一つめのCollectionが作成されます。
###4.文書のアップロードを行います
最初の初期画面に戻ったら作成したCollectionを開きます。
アップロードが完了すると下記の画面になります。
Documents countsが4なら大丈夫です。もう検索できますよ。
###5.文書の照会(Query)をやってみる
左のバーの一番したのアイコンをクリックし、照会対象であるご自身のCollectionを選択のうえ「Get Started」をクリックします。
Visual Query Builder(VQB)が使えるようになります
チュートリアルでは、エンティティに「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」に結果が表示されます。
いい感じに 機動戦士ガンダム、機動戦士ガンダム 逆襲のシャアの2件分が検出されていることが確認できます。
###6.自然言語照会
VQEで「Edit query language」をクリック
パネルが切り替わるので「Use Natural Language」タブをクリックすると自然言語で質問が入力できます。
「Amuroは何を操縦したか?」(Amuroは何を操縦したか??)との質問をしてみました。(Gundamとの回答を期待) 結果は3件全部ヒットしてしまいました。ユニコーンの記事は検出されないと思ったのですが、pilot、Whatで検出されたみたいです。(笑)
チュートリアルでもそうですが、JSONのスコアで見ると機動戦士ガンダムの記事が最も高く、Passageも機動戦士ガンダムのAmuroのスニペットが先頭に来ていました。(笑)
#まとめ
まだ、この時点で、Discoveryの日本語対応で全機能は対応していませんでした。
それで全機能がある英語で試してみました。
早く日本語対応も全機能になることを切に願います。(笑)
トレーニングする基の文書データもキチンと精査してアップロードするべきだと思いました。
今度こそは上手く行くように考えます。(笑)
はじめて書きましたが、これをきっかけにどんどん書きたいと思います。
#参考