Watson Knowledge Studioの機械学習アノテーションをWatson Explorer にデプロイする

# はじめに
Watson Explorerには、大量の文書からエンティティーや概念を抽出し、分析をする機能があります。辞書やルールに従って、エンティティーやその関係性を抜き出してアノテーション(注釈付け)を行い、分析を行うことが出来ます。
一方で、Watson Knowledge Studioは、エンティティーや関係性を学習させて、機械学習アノテーションモデルを作成できます。
Watson Knowledge Studioで作成したEntity, Relationの機械学習アノテーションモデルは、Watson Explorerや、Alchemy APIにデプロイして、アノテーションに利用することが出来ます。
2つが連携することによって、辞書･ルールだけでなく、機械学習のアノテーションを組み合わせた分析を行うことが可能になります。
この記事では、Watson Explorerへのデプロイ方法についてご案内します。


英語のガイドとして、以下を参考にしています。
<a href="http://www.ibm.com/watson/developercloud/doc/wks/wks_mapublish.shtml#wks_maexport" target="_blank">Leveraging a machine-learning annotator in IBM Watson Explorer</a>
<a href="http://www-01.ibm.com/support/docview.wss?uid=swg27048147" target="_blank">Using machine-learning annotators from Watson Knowledge Studio in Watson Explorer</a>

Watson Knowledge Studio については、以下の「Watson Knowledge StudioのTutorialをやってみた」が、参考になります。
<a href="http://qiita.com/sukusuku_watson_editorial_room/items/d8407c938af47bc5ac44" target="_blank">Watson Knowledge StudioのTutorialをやってみた （前編）</a>
<a href="http://qiita.com/sukusuku_watson_editorial_room/items/981a4383f9defc5db6f5" target="_blank">Watson Knowledge StudioのTutorialをやってみた （後編）</a>

### 主な前提条件
WEXサーバーはRHEL7のみサポート (2017年1月現在)
WEXへの機械学習モデル・デプロイは、有償版のWKSのみサポート、無償版ではサポートされない

# Watson Explorerサーバーの準備
WEXサーバーはRHEL7のみサポート
WEXサーバーは、Watson Explorer Version 11.0.1 以降をサポートします。

### RHEL7新規導入後、Watson Explorer Version 11.0 の前提として、以下を導入

- libstdc++33 (compat-libstdc++-33.i686 / libstdc++33-32bit)
- libstdc++ (libstdc++.i686 / libstdc++6-32bit)
- zlib (zlib.i686 / libz1-32bit / zlib-32bit)
- libXext (libXext.i686 / libXext6-32bit / xorg-x11-libXext-32bit)
- libXft (libXft.i686 / libXft2-32bit / xorg-x11-libs-32bit)
- libXi (libXi.i686 / libXi6-32bit / xorg-x11-libs-32bit)
- libXp (libXp.i686 / libXp6-32bit / xorg-x11-libXp-32bit)
- libXtst (libXtst.i686 / libXtst6-32bit / xorg-x11-libs-32bit)

もし、回答結果の型として、サムネイル表示を利用したい場合は、以下のライブラリーを追加で導入します。

- libXm
- libXt 

yumでの導入コマンド例：yum install libstdc++.i686

### Watson Explorer Analytical Componentの導入

以下リンクを参照してください。

<a href="http://www.ibm.com/support/knowledgecenter/ja/SS8NLW_11.0.0/com.ibm.discovery.es.in.doc/iiysioverenh.htm" target="_blank">参考：Watson Explorer Content Analytics のフレッシュ・インストールの実行</a>

CUIで導入する場合の例

- 導入イメージの解凍

tar xvf WATSON_EXPLR_AE_AC_V11.0.1_LNX_ML.tar

- インストーラの起動

cd Main
./install.bin –i console
CUIのテキストの指示に従って、導入を進める

- 導入完了後、WEXサーバーを始動

esadminユーザーにスイッチ　(または、esadminユーザーでログオン)
su - esadmin
esadmin system startall   : WEX Serverの開始
esadmin system stopall   : WEX Serverの停止

- 以下のURLにアクセスし、サーバーへのアクセスを確認

http://{WEXサーバーのIPaddress}:8390/ESAdmin/


### WEXサーバーにSIREの導入

RHEL7に、以下のライブラリを導入する

- apr
- apr-util
- boost-filesystem
- boost-iostreams
- boost-program-options
- boost-regex
- boost-serialization

導入コマンド例：
yum -y install apr apr-util boost-filesystem boost-iostreams boost-program-options boost-regex boost-serialization

- SIRE

rpm -ivh /opt/IBM/es/bin/sire/sire-20160429-2.x86_64.rpm
※Watson Explorer が、/opt/IBM/es　に導入されている場合

### SIRE 導入後の確認事項
esadminユーザーにて、以下を確認する

- $LD_LIBRARY_PATH　が定義されていること

echo $LD_LIBRARY_PATH                                                 
/opt/IBM/es/lib::/opt/ibm/sire/lib/x86_64/opt

- $PATH に、sireのパスが含まれていること

echo $PATH
/opt/IBM/es/bin:/opt/IBM/es/bin/secure:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/esadmin/.local/bin:/home/esadmin/bin:/opt/ibm/sire/bin/x86_64/opt

- RHEL7 も含めて再起動を行う

esadmin system stopall (esadminユーザーにて)
reboot (rootユーザーにて)
esadmin system startall (esadminユーザーにて)

# Watson Knowledge Studioの機械学習アノテーションをWatson Explorer にデプロイ

### WKSにて機械学習モデルをExport

Annotater Component 内のMachine LearningのExportを実行し、機械学習モデルのzipファイルをダウンロードします。

![01.WKSにて機械学習モデルをExport.jpg](https://qiita-image-store.s3.amazonaws.com/0/103793/00647edb-ef4d-1d11-cfc5-443d17a894ab.jpeg)

※機械学習モデルをExportするために、WKSのTutorial Lesson 12: Creating a machine-learning annotator　まで実施されている必要があります
	http://www.ibm.com/watson/developercloud/doc/wks/wks_tutorials.shtml
<a href="http://qiita.com/sukusuku_watson_editorial_room/items/d8407c938af47bc5ac44" target="_blank">Watson Knowledge StudioのTutorialをやってみた （前編）</a>
<a href="http://qiita.com/sukusuku_watson_editorial_room/items/981a4383f9defc5db6f5" target="_blank">Watson Knowledge StudioのTutorialをやってみた （後編）</a>


### 機械学習モデルをWEXサーバーにアップロード

WEX管理画面上にて、システム⇒解析　より、機械学習モデルの構成を行う。
http://{WEXのIPaddress}:8390/esadmin より

![02.機械学習モデルをWEXサーバーにアップロード.jpg](https://qiita-image-store.s3.amazonaws.com/0/103793/73f6d635-7faf-5bb6-9ca6-66b51efc013e.jpeg)

### コレクションに機械学習モデルを関連付け

コレクションを開き、機械学習モデルを関連付ける

![03.コレクションに機械学習モデルを関連付け.png](https://qiita-image-store.s3.amazonaws.com/0/103793/5f5b7a58-d164-131c-7dc9-5bc425dbc0bf.png)

### 分析リソースの再起動

分析リソースを開始し、機械学習アノテーションが動作するようにします

![04.分析リソースの再起動.png](https://qiita-image-store.s3.amazonaws.com/0/103793/9f703345-d518-c80e-93cb-dc14e5a9284e.png)

# 機械学習によるファセット検索

以下、URLをブラウザーで開き、WEXの分析画面を開きます。
http://{WEXのIPaddress}:8393/ui/analytics/advanced
WKSで定義したMention(Entity)、Relationを使って、WEXでのファセット検索が可能となっています。

![05-2.機械学習によるファセット検索.png](https://qiita-image-store.s3.amazonaws.com/0/103793/0bbecb2f-99d0-f3ab-eab1-78febd5014bc.png)



### WKSのEntity,Relationの見え方

![06.WKSのEntity,Relationの見え方.png](https://qiita-image-store.s3.amazonaws.com/0/103793/493aba3d-1a24-410d-957e-52a60e474d77.png)

### おわりに
WKSの機械学習アノテーションによって、Mention(Entity)、RelationがWEX上で見れることが確認できました。　機械学習であるため、結果は100%正確とは限りませんが、人間には見落としてしまう、またはルールベースでは発見できないアノテーションが可能となるかもしれません。　文書の分析を柔軟に行う手段として活用できたらと思います。


# 参考情報

- 日本語版、WKSの紹介
    - https://www.ibm.com/marketplace/cloud/supervised-machine-learning/jp/ja-jp
- WKS Document
    - http://www.ibm.com/watson/developercloud/doc/wks/wks_overview.shtml
- IBM Knowledge Center Watson Explorer
    - http://www.ibm.com/support/knowledgecenter/SS8NLW_11.0.0/watsonexplorer_11.0.0.html
- Using machine-learning annotators from Watson Knowledge Studio in Watson Explorer
    - http://www-01.ibm.com/support/docview.wss?uid=swg27048147
- Watson Explorer Content Analytics Overview - YouTube
    - https://www.youtube.com/watch?v=dKKbYzDLXHo
- Watson Explorer Overview - YouTube
    - https://www.youtube.com/watch?v=72goR_p4NwI
- 実際に使われている用語を IBM Watson Content Analytics で見つけて使用する
    - https://www.ibm.com/developerworks/jp/analytics/library/ba-watson-dictionary/

# お問い合わせ

ご質問がございましたら、こちらにもお問い合わせいただけます。
すくすくワトソン編集室: eb17685@jp.ibm.com