T
THINK Watson

Watson を使ってみよう! 13歳のエンジニアによる映画評価予測プログラム

post_thumb

13歳の若きソフトウェアエンジニア、Tanmay Bakshi(タンマイ・バクシ)は、 IBM の開発者向けクラウド・プラットフォーム 「IBM Bluemix」 から利用できる「Watson API」を使って映画の評価レートを予測するプログラムの作り方を動画(Part 1 | Part 2)で説明している。その様子を紹介しよう。

 

Bluemix 上のWatson API 「NLC(自然言語分類)」 で男女の名前を分類

今回は Watson API の1つである「NLC」を使用する。NLC は Natural Language Classifier (自然言語分類)の略称で、人間の言葉を解釈し、信頼度を付けて分類するというもの。

人間には John(ジョン)やKathy(キャシー)など数千種類の名前が存在する。人間は経験則から名前によって男性か女性かを判別するが、機械にはそれが難しい。それを可能にするのが NLC だ。

まず Bluemix 上に人間の名前のトレーニングデータをアップロードする(トレーニングデータとは「テキスト(Text)」と「分類(Class)」が対になったデータのことで、例えば「Kathy」は女性の名前なので、分類には「Girl」がセットとなる。

参考リンク:Natural Language Classifier service documentation | Watson Developer Cloud

アップロードしたトレーニングデータを基に、NLC は独自のアルゴリズムを用いて機械学習を行い、条件定義をパターン化して理解する。

人間でも海外の名前から性別を判別するのは非常に難しい。実際に職場でも「この名前って男性かな? 女性かな?」という会話をよく耳にする。しかし Watson は、トレーニングデータを基に名前のパターンを解析、名前から性別を予測できるのだ。

このように NLC を用いることで、確信度別にランク付けできるようになるというもの。この機能を用いて Tanmay 氏は映画の評価レートを予測するプログラムを構築した。

 

NLC を用いてインプットしていない映画のレビュー予測をする

Tanmay氏は、映画レビューサイト『IMDb』の評価レートを基に15000もの映画の名称と評価レートが記載してあるトレーニングファイルから、このデータにはない映画の評価を予測する。

上記のように CSV ファイルをアップロードし、数時間待つと機械学習が完了する。ここから Watson は取り込んだトレーニングデータにはない映画の評価レートの予想をする。

例えば ‘The Towering Inferno’ と入力すれば、15000ある映画のタイトルと評価レートから予測を開始。IMDb では 6.9 の評価だが、Watson の予測は96%の確信度で「7」。実際の評価レートと開く誤差がない。

実際に筆者も Tanmay 氏が公開しているトレーニングデータを基に Watson で映画の評価予想をしてみた。Bluemix 上で NLC を選択し、トレーニングデータをアップロード、実際に適当な映画の名前を入力してみた。

例えば「Spider-Man」と入力してみると、Watson が導き出した回答は 96% の確信度で「8」。実際のレートは 7.3 なので、予想は大方当たっていると言えるだろう。

この NLC は、Watson でチャットボットを構築する際にも用いる。機械学習というと難しい印象を抱きがちだが、BluemixであればコーディングをほとんどせずにWatsonを使ったプログラムが完成する。「アイデアはあるけどコーディングができない」という人でもプログラムを作れるので挑戦してみてはいかがだろう。

Natural Language Classifierについての詳細はこちら
 

2017年11月1日、BluemixはIBM Cloudにブランドを変更しました。詳細はこちら

IBM Alert Notification
スタッフがすべての重大な IT アラートの通知を受け取ることができます
無料評価版はこちら