【演習】PythonでWatsonアプリを作る！#3【自然言語分類】

ご縁あって[developer Works](https://www.ibm.com/developerworks/)の中の[courses](https://developer.ibm.com/courses/)の1つ、[Create Python apps with IBM Watson and IBM Bluemix](https://developer.ibm.com/courses/all/create-python-apps-ibm-watson-ibm-bluemix/)をやってみました。

前回はテキストのepisode-2に取り組み、アプリに入力された言語が何語か判別し英語に翻訳するという機能を加えました。
今度はepisode-3に入り、自然言語分類機能を加え、ここでのトレーニングを通すことで回答の精度を上げていきます。

src/episode-3/django/src/projwatsonに移動します。
テキストエディターで#1で書き換えた諸々のファイルをもう一度書き換えます。
- requirements.txt
- manifest.yml
- runtime.txt
- wl.py
- languagetranslation.py (翻訳系の資格情報入力欄はここに移動になってる)
など

#アプリにnatural language classifierをバインドする
カタログからNatura Language Classifierを選択します。
![スクリーンショット 2017-07-16 12.51.10.png](https://qiita-image-store.s3.amazonaws.com/0/141025/3e0679a7-ca91-a2f2-13d4-31824c141111.png)

接続先をバインドしたいアプリに設定し「作成」をクリックします。
再ステージを求められるのでOKします。
![スクリーンショット 2017-07-16 12.52.32.png](https://qiita-image-store.s3.amazonaws.com/0/141025/b38c224d-148a-768e-d96b-7a32f4e1c3ef.png)

#資格情報の入力
アプリの接続欄から資格情報を取得できるので、
![スクリーンショット 2017-07-16 12.58.44.png](https://qiita-image-store.s3.amazonaws.com/0/141025/b8306c3e-0cad-c5d8-fbf1-17bc5992eeb3.png)

watsonutilsフォルダ内のnaturallanguageclassification.pyの中に埋め込みましょう。
![スクリーンショット 2017-07-16 13.32.07.png](https://qiita-image-store.s3.amazonaws.com/0/141025/d4e168a8-3e88-786b-65a4-d1ed62dd82ca.png)

wl.pyのこの辺で翻訳した文章（英文の場合原文）分類をしています。
![スクリーンショット 2017-07-16 13.37.07.png](https://qiita-image-store.s3.amazonaws.com/0/141025/e0bace22-84e3-99b4-67da-79a2256c9619.png)

naturallanguageclassify.pyのこの辺が実際に分類するときのとこ
![スクリーンショット 2017-07-16 13.39.04.png](https://qiita-image-store.s3.amazonaws.com/0/141025/726dc76c-53ad-6c7e-34a6-41ff4ad751d4.png)

#Classifierのトレーニング
分類の基礎となるクラスを作ります。
Bluemix上のアプリ詳細画面の「接続」欄から「Natural Language Classifier」を選択します。（できるだけ白いところを押す）
「管理」欄から「Access the beta toolkit」（青緑の部分）をクリックしてツールに飛びます。
![スクリーンショット 2017-07-16 13.53.10.png](https://qiita-image-store.s3.amazonaws.com/0/141025/445a5d69-dd4c-8cfc-8e2e-293acc000d56.png)

Bluemixのログイン情報を使ってログインします。
![スクリーンショット 2017-07-16 13.54.53.png](https://qiita-image-store.s3.amazonaws.com/0/141025/3bce7556-b454-8b75-29b6-5a702ce7719d.png)

Add training dataをクリックしてトレーニングデータを加えます。
自分は[ここ](http://www.alc.co.jp/speaking/article/travel/)を参考に観光に関する英文をセット。
それぞれのクラスに10ずつの例文はあったほうがいいとのこと。
私は「道案内」「食事」「観光」「買い物」を作成。
上の方のCreate Classifierを押して終了します。
![スクリーンショット 2017-07-16 13.56.40.png](https://qiita-image-store.s3.amazonaws.com/0/141025/00fd9174-17f7-b60f-1bd2-fcd62d9f7542.png)

Classifier名と言語を選んで確定。
![スクリーンショット 2017-07-16 14.55.19.png](https://qiita-image-store.s3.amazonaws.com/0/141025/6c6cb374-b00f-cf43-1e60-48e0e9346a91.png)

やり方あってるか不安だけど、動いてる模様。
![スクリーンショット 2017-07-16 14.57.30.png](https://qiita-image-store.s3.amazonaws.com/0/141025/d055de9a-f668-9301-8a0d-803eb442404b.png)

##ローカルホストに出力
ターミナルではsrc/episode-3/django/src/projwatsonに移動します。
```python manage.py runserver```でローカルホストに出力します。

うまくいきました！
![スクリーンショット 2017-07-16 15.01.04.png](https://qiita-image-store.s3.amazonaws.com/0/141025/076bd573-372f-e191-ecb6-f4e2eb709348.png)

トレーニングが浅いのでまだまだですが。
![スクリーンショット 2017-07-16 15.02.09.png](https://qiita-image-store.s3.amazonaws.com/0/141025/0e679b8b-541d-d9b0-55d1-bd8a79545263.png)

今回はここまで！
お疲れ様でした！！