Translate

2016年12月27日火曜日

一切コーディングしないでWatson NLCを使った質疑応答デモを作る

TesnorFlow で自前の分類器をつくろうと考えていたが
それと比較するものも必要かな..と思い
Watson の Natural Language Classifier を使ったデモを作った。

前提として
・有効なBluemixアカウントがあること
・Bluemixへアクセス可能なPC
・ブラウザ、Excel、ShiftJIS→UTF-8変換できるツール(以下では秀丸を使用)
があることとする。

ここでは、某DBスペシャリストテキストを参考に
イチから学習データを作り、
DBに関する質問を投げると、テキストの該当ページヘ
誘導できるように分類(XXXセクションのYYY章)を出す
という分類器をつくることとする。

学習対象は
それこそ、歴史の教科書だって、数学の教科書だってかまわないけど
対象の文章を読んで理解し、その文章が答えになるような質問文を作成できれば
なんだってかまわない。

これができるのなら、
コーディングを一切知らなくても、
デモレベルなら誰でも作れてしまう

しかも、
BluemixではよくあるNode-REDすら使っていないゼロコーディング

以下、その手順。

----
・クライアントPC上でブラウザを起動、Bluemixコンソールへアクセス
・ユーザ名を入力し、Login押下
・パスワードを入力し、Login押下

・「サービス」を選択し、「ダッシュボード」を選択

・サービスの作成押下


・Watsonを選択




・「Natural Language Classifier」を選択



・作成押下


・Access the beta toolkit 押下





 ・Login with Bluemix を選択



・確認押下


・Add training data リンク選択


・以下の画面が出たら閉じずにこのままにする


・クライアントPC上でExcelを開く
・1列目に質問、2列目に分類名を記述する

 ・分類の種類はMAX150くらいとする(それ以上だとサチる)
 ・分類名は以下のルールで作成
  「<セクション番号をゼロ詰め3桁化><少番号をゼロ詰め2桁化><該当章を表す単語を適当につける>」
 ・1つの分類に最低10個の質問をつくること








・CSV形式でファイル保存する
  ShiftJIS形式で保存される



・秀丸エディタでCSVファイルを開く

・UTF-8形式で保存


・ブラウザのWatson Toolkit画面に戻り、アップロードアイコン(Create classifier右横)を押下


・UTF-8形式のCSVファイルを選択



・Create classification押下



・分類器に名前を適当につけてCreate押下


・しばらくたら、Traning dataリンクを選択し、Classifiersリンクを選択する


・CSVファイルデータが多いと以下の画面の状態になる




・以下の画面になったら「→」押下


・質問を記入し、Classify押下


・正解の分類を選択肢、次の質問を入力、Classify押下




・次の分類結果が表示される


・正解を選択し、次の質問を入力、CLassify押下


・正解を選択し、画面右のAdd to training data押下


・しばらく右ペインが処理中になり


・完了すると、トレーニングデータに3件追加される





-----

と、Watson Toolkit を使えばこんなに簡単に一括学習、1件学習、学習済み分類器の保存が可能だ。
あとはこの学習済み分類器を、適当なWebアプリからREST APIで呼び出せばいい。

ここからあとはコーディングが必要だが、デモならここまでのレベルで十分だ。

IBMのWatson NLCは現時点で日本語も使える。

が、
Watson APIの日本語版はソフトバンクで一括利用させるため
ソフトバンクの営業曰く来年の何処かのタイミングでIBMには日本語機能は
止めてもらうことになるらしい。
いつになるかは言っていなかった。

このへんキチンとIBMと話ししてるのかよくわからないが..

まあ、なんにせよToolkitを使えば
コーパス作成に集中することになり
とっても機械学習の実装がつまらなく^H^H シンプルになっている。

..良いのか悪いのかわからないけど..










0 件のコメント:

NVIDIA K20C で Tensor2Tensor を動かしてみた

ふとしたことで一時的にNVIDIA K20Cが使える機会ができた。 ので、ココぞとばかりに前に動かしたTransformerモデルの 実装サンプル Tensor2Tensor を オプションなし で動かしてみた。 [GitHub]T2T: Tensor2Tensor Tra...