Watson APIのNLCを簡単に作成して使う方法

はじめに

こんにちは。

AI coordinatorの清水秀樹です。

前回の記事でBluemixの登録方法を説明しました。

今日は早速Watson APIを使ってみましょう。

今回使うWatson APIは、機械学習ができるNatural Language Classifier(NLC)を使ってみます。

 

Bluemix登録時の組織の作成で「米国南部」を選択していれば、難しいプログラミングの知識がなくてもNLCを簡単に作成することが出来ます。

機械学習の雰囲気を掴むためにも、これからNatural Language Classifier(NLC)を実際に作成しながら説明していきますので、是非一緒にチャレンジしてみてください。

 

Natural Language Classifier(NLC)とは

早速作成したいところですが、そもそもNatural Language Classifier(NLC)って何?って方に向けて簡単に説明します。

 

どんなことが出来るのかというと、

機械学習で作成した分類器を用いて、入力してきた文章がどの分類器に該当するのかを確信度という数値でリターンを返す。

 

簡単に説明するとこんな感じです。

このままではイメージし辛いと思いますので、実際に作成しながら説明してきます。

 

Natural Language Classifier(NLC)を作成しよう

それでは早速Natural Language Classifier(NLC)を作成するところから始めます。

早速、Bluemixにログインしてください。

初期状態では以下の画面になっています。(なにもアプリを作成していない状態の画面)

右上に「カタログ」がありますので、クリックしてください。

すると以下の画面が表示されるはずです。

この画面は、Bluemixで利用できるサービスの一覧になります。

結構な数があり、たくさんの部品が準備されています。

さすがはIBMといったところでしょうか。

 

Watson APIはずっと下にありますので、スクロールして探してみてください。

上記画面のようにWatsonカテゴリを見つけたら、Natural Language Classifier(NLC)をクリックしてください。

 

クリックするとNatural Language Classifier(NLC)の説明やサービス名、価格プランが表示されます。

価格の説明がありますが、Bluemixは30日間は無料ですので遠慮せず作成ボタンをクリックしてください。

 

クリックすると以下の画面が表示されます。(アプリが作成されました。ダッシュボードから下記画面にもアクセスできます)

組織を「米国南部」で作成している場合、赤枠で囲ってある「Access the beta toolkit」が利用できます。

組織が「シドニー」の場合、残念ながらこのtoolkitが使えません。(2017年2月時点)

 

プログラミングが苦手の方はこの「Access the beta toolkit」でNatural Language Classifier(NLC)を作成しましょう。

 

「Access the beta toolkit」をクリックするとNatural Language Classifier(NLC)にログインする画面が表示されます。

何も考えず「Sign in with Bluemix」をクリックしてください。

 

クリックすると確認許可画面が表示されます。

こちらも特に気にする点はないので、「確認」ボタンをクリックしてください。

 

クリックすると以下の画面が表示されます。

赤線部分の「Add training date」が表示できていたら、機械学習できる準備が整いました。

次は学習データを実際に作成してみましょう。

 

学習データを作成しよう

学習データの作成と言っても、とても簡単です。

ファイル形式はCSVファイルで良いのでプログラミング知識は必要ありません。

今回は以下の内容でCSVファイルを作成して機械学習してみます。

お腹が空いた,restaurant
ラーメンが食べたい,restaurant
腹が減った,restaurant
何が食べたい,restaurant
食事ができるところを教えて,restaurant
お金が減った,other
ガソリンが減った,other
支払いができない,other
駐車場はどこ,other
ラーメンがまずい,other

 

この学習データは、分類器を2つ準備しています。

  1. 食事にかかわる内容であれば「restaurant」
  2. それ以外の内容であれば「other」

ですね。

 

学習データが準備できたら、いよいよNatural Language Classifier(NLC)に機械学習をしてもらいましょう。

 

Natural Language Classifier(NLC)で機械学習をさせてみよう

この記事通りの順で進めて貰えていれば、以下の画面が表示されているはずです。

それでは「+」ボタンをクリックして学習を開始しましょう。

 

以下の「Add text」画面が表示されます。

画面右上(上記画像の赤線部分)のアップロードボタンをクリックしましょう。

ファイルをアップロードする画面になりますので、先ほど作成した学習データ(CSVファイル)をアップロードします。

 

アップロード中は以下の画面が表示されます。

下記画面が出たらアップロード完了です。

ここまできたらいよいよ機械学習の開始です。

上記画面の「Create classifier」(赤線部分)をクリックしてください。

次に以下の画面が表示されますので、適当にアプリ名を決めて「Create」をクリックしましょう。

機械学習が始まります。

ここで注意点があります。

なぜか、上記画面が表示されないことも多いため、画面に反応がなかったらブラウザを更新させてみてください。

日によって処理速度が遅い場合もありますので、変化がでるまでブラウザの更新を繰り返してください。

上記のような画面が表示されれば、無事に機械学習を実行していることになります。

ちなみ、このゲージは増えたりしません。

そのため進んでいるのかフリーズしているのか不安になりますが、根気よく待ちましょう。

この程度の文章でも、機械学習には数分程度時間がかかります。

 

何度がブラウザを更新しているうちに、以下の画面が表示されたら機械学習は終了です。

 

Natural Language Classifier(NLC)を使ってみよう

ここまでで機械学習が終了しました。

それでは早速Natural Language Classifier(NLC)を起動して文章を読み込ませてみましょう

上記画面の左下の「→」をクリックしてみてください。

以下のようなテキストを入力できる画面が表示されるはずです。

上記画面が表示されたら、ためしに好きな文章を入力してみましょう。

この例では「そろそろ腹が減ったなぁ」と入力してみます。

 

テキスト分を入力後に「Classify」をクリックします。

すると・・・

上記のようなリターンが帰ってきます。

この例ですと、99%「restaurant」についての文章だとNatural Language Classifier(NLC)は判断したようです。

 

では、少し意地悪な文章を投入してみます。

「中華が好きだ」と入力しても92%は「restaurant」だとNatural Language Classifier(NLC)は判断していますね。

中華という文字列は学習させていませんが、Watsonは基本的は日本語は学習済みなようなので、このような結果になるのでしょう。

 

色々入力して試してみてください。

精度が低いと感じる場合は、たくさんの学習データを投入しましょう。

そうすることで、徐々に精度が高くなっていくはずです。

 

考察

さて、最後にNatural Language Classifier(NLC)の活用方法について考察します。

質問の意図の分類訳が機械学習からできるのであれば、たとえばFAQなんかに使えそうですね。

 

どんな質問なのか判断し、それを分類し、その分類に該当した回答を出力する。

 

そんな使い方ができそうです。

 

ぜひお試しあれ。

 

それではまた!!

あなたにオススメの記事

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

PAGE TOP