ラベル watson の投稿を表示しています。 すべての投稿を表示
ラベル watson の投稿を表示しています。 すべての投稿を表示

2019年7月29日月曜日

Watson Explorer(WEX)V12のコレクション作成が劇的に簡単に。

前回、「NTHSA(米国の国家道路交通安全局)」に寄せられる「自動車の故障に関するオーナーのテキストデータ」をサンプリングし、30MB程度のコンパクトなデータセットを作成しました。

(R言語)NHTSAから4行でテキストマイニング 用データをサンプリングする
https://sapporomkt.blogspot.com/2019/07/rnhtsa4.html

今回は、このデータセットを使って、IBMが誇るテキストマイニング ソリューションである「Watson Explorer(WEX)」用の分析データ(WEXでは「コレクション」と言います)を作成します。

実施環境については、以下の通りです。
・IBM Watson Explorer Deep Analytics Edition Version 12.0.2

※本エントリーは、私、小田一弥が一個人として勉強を兼ねて記載したものです。私の勤務先である日本アイ・ビー・エム株式会社の見解・見識ではない、個人としての記載内容としてご覧ください。 

WEX Deep Analytics Edition(ver12)の概要



(そもそも「WEXってなに?」の方向けです。ご存知の方は、当パートは読み飛ばしてください)
詳細は、下記のWEX紹介ページをご参照ください。
簡単に言うと「人間が読みきれない大量の文献、文書、レポートを分類・分析して知見を獲得」するための、IBMのテキストマイニングソリューションです。

ウリとしては、下記5点ですが、特に、V12になって機械学習(AI含む)とUI/UXが大幅に強化されました。

1.ビッグデータ対応:
他社ソリューションでも数十万件レコードレベルなら対応可能と思いますが、WEXは数百万件レコードでも難なく分析するスケーラビリティを有しています。
(ただし、それに合ったシステム基盤が必要です)

2.高度な言語理解と深い洞察
同義語辞書だけではなく、様々な言い回しの意図も抽出可能な機能があります。
「IBM Watson Knowledge Studio(WKS)」を用いると、文章に注釈としてメタデータを付与し、WEX上で利用することができます。

3.多言語対応
もともと、日本IBMが開発したソリューションであるため、日本語の解析を得意としていますが、全部で16カ国もの多言語分析が可能です。

4.機械学習を用いた自動文書分類
V12から新たに機械学習を用いた分類機能が実装されました。

5.データに基づく分析ステップのガイド
テキストマイニング未経験者でも直感的に使えるUI/UXとなりました。
(初見だと、V11以前のユーザーは面食らうかもしれませんが、すぐ慣れると思います)

WEX Deep Analytics Edition(ver12)の概要


WEXに限らず、テキストマイニング ソリューションは、「文字コード指定」や「フィールド設定」など、分析着手までの作業負担が重くゲンナリすることが多いのですが、WEXはこの辺りの作業がかなり楽です。

下記に手順を記載しますが、ローデータのフィールドずれなどが無ければ、ほとんどポチポチとボタンを押せば完了するかと思います。

1.WEXにログインする
まずは、管理者から配布されたIDとPASSでログインしてください。



2.「コレクションを作成」を選択する
コレクション(WEXの分析対象となるデータ)一覧画面が表示されるので、「コレクションを作成」を選んでください。



3.「次へ」をそのまま選択する
既に「コンテンツ・マイニング」にチェックされているので、そのまま「次へ」を選択してください。


4.分析対象ファイルをアップロードする
画面下部のアップロードスペースに、前回サンプリングした分析対象ファイルをアップロードします(リンクをクリックしてのファイル選択でも可能です)。


5.コレクション名を記載する
アップロードが完了すると画面が切り替わるので、コレクション名を記載します。
なお、実務上は、ファセットのテスト用コレクションなど複数のコレクションを作ることが多いと思います。
「テスト/本番」や日付など、誰が見てもわかるコレクション名を記載するよう、習慣づけると良いと思います。

「説明」欄は、複数メンバーでの作業であれば記載してください。


6.「フィールド」画面が表示される
取り込みが完了すると、「フィールド」画面が表示されます。
「CSVプレビュー」の部分を見ると、各フィールドが自動的に識別されています。

あと、WEX V11と比べると、画面上段に「テンプレート」から「保存」までの作業ステップが明示されており、どのステップまで進んでいるかがわかりやすいですね。


7.「LDATE」を「日付」形式に変更する
「LDATE」がユーザーからクルマの異変を報告された日のため、このフィールドを「日付」に変更します。


すると、「LDATE」フィールドで取り込んだデータがグラフ化されます。
WEX V11までは、コレクション作成が全て完了しないと見れなかったため、これはとても助かりますね。特に、V11まで日付形式は鬼門で何度も取り込みを繰り返していたのでありがたいです。

また、右下の「フィールド・マッピング」では、分析対象となるテキスト本文が記載されているフィールド(「CDESCR」フィールド)が自動的に指定されています。
V11までは、「Body」フィールドとして都度指定が必要でしたが、随分と楽になりましたね。


8.「CSVパーサーの構成」をチェックする
「CSVプレビュー」パートの右上部分にある「CSVパーサーの構成」をクリックします。
文字コードや区切り文字の指定が可能です。今回のデータは変更は不要なので、このまま閉じて、「次へ」ボタンを押してください。


9.アノテーターを指定する
「コレクションのエンリッチ」画面に遷移します。
ここでは、非構造化データ(ここでは「CDESCR」フィールド)に様々なアノテーション(注釈)をつけることができます。
「アノテーション??」な方は、次回以降のエントリーで記載しますので、今は、「文章や単語に意味をつけて、分析に利用できるようにする」ぐらいのご理解でOKです。


ここでは、「評判分析」と「固有表現抽出」にチェックをつけて、「次へ」ボタンを押してください。


10.ファセットを指定する
分析用ファセットの指定画面に遷移します。WEXではデフォルトで様々な品詞や語句などを抽出可能です。実務的には色々とやることがあるプロセスですが、今回はデフォルトのままでOKです。

















11.コレクションを保存する
ここはデフォルトのままでOKです。
「保存」ボタンを押すと、文章へのインデクシング(索引付け)が走ります。
分析対象となるレコード数やサーバー環境により、インデクシング時間は変動しますが、結構かかるはずですので、別作業を行いながら完了をお待ちください。




12.完了したコレクションをクリックする
しばらく経つと、下記のように「100%索引付き」と表示されるので、当該コレクションをクリックしてください。



ファセットに合わせて単語の頻度数が表示されました!
次回は、このコレクションを使って、分析機能の詳細をご紹介します。

Watson関連エントリー


Watson Explorerでディズニーの人気作品をテキストマイニング

自動でAIモデルが出来ちゃう〜Watson Studio AutoAI Experiment

SPSS Modeler flowのモデルをWebサービスとしてデプロイする

(無料)Watson StudioでSPSS Modeler flowの決定木を動かす

Watson Studioの「Data Refinery」機能で「馬の疝痛(せんつう)」データを眺めてみた。

2019年6月20日木曜日

Watson Studioの「Data Refinery」機能で「馬の疝痛(せんつう)」データを眺めてみた。

IBMの「Watson Studio」に含まれている「 Data Refinery」機能を使ってみました。
データプロファイルの視覚化などが、こんな感じで数クリックで出来ちゃいます。


※本エントリーは、私、小田一弥が一個人として勉強を兼ねて記載したものです。私の勤務先である日本アイ・ビー・エム株式会社の見解・見識ではない、個人としての記載内容としてご覧ください。  

「Data Refinery」とは?


概要:
Watson StudioとWatson Knowledge Catalogから使用可能なData Refineryツールは、膨大な量の生データを、利用可能な品質の高い情報に素早く変換してすぐに分析できる状態にすることにより、データ準備時間を節約します。

機能:
・データの分析と変換
・データのプロファイル作成と視覚化
・あらゆる場所にあるデータへの接続
・ガバナンスされたセルフサービスのデータ準備
・ジョブの実行のスケジューリング
・サーバーレスでの実行

(参考)

サンプルデータについて


今回は、馬の「疝痛(せんつう)」に関するオープンデータを用います。

疝痛(せんつう)とは?
疝痛(せんつう、colic)とは腹部臓器の疼痛およびそれに伴う腹痛を示す症状名。馬ではその解剖学的、生理学的特徴から多発する。以下では主に馬について記述する。馬で多発する原因として、胃が体躯に比べ小さいために嘔吐しにくい構造であること、腸間膜(mesentery)が長く固定されていないこと、巨大な盲腸をもつことなどが挙げられる。
(Wikipediaより)

ちなみに、1997年に皐月賞と日本ダービーを制した名馬「サニーブライアン」なども疝痛で命を落としていまして、お馬さん業界の中では結構メジャーで怖い病らしいです。


<サンプルデータの入手・加工方法>
1.UCIのサイトからデータをダウンロード
下記サイトからローデータをダウンロードしてください。上段にある「Download: Data Folder」をクリックするとローデータが表示されます。また、当ページの下部には各データ列の詳細についての解説もあるので、後ほどデータ形式の指定時に参照します。
ちなみに、欠損値も30%ほど入っているので、置換ノードによるデータ加工のお勉強としても活用そうですね。 


2.CSV形式で保存
早速データを保存しようと思ったのですが・・・。うーん、CSV形式等でもあると楽なんですけどね^^; 

このまま取り込んでも何とかなるのですが、面倒なのでエディタなどで半角スペースを「,(カンマ)」に全置換してCSV形式で保存しました。

「Data Refinery」での視覚化手順


1.「New Project」の作成
画面右上の「New Project」を押して、新規にプロジェクトを作成してください。


2.「Standard」を選択
「Standard」を選択し、プロジェクトを作成してください。


3.プロジェクト名称を入力
「Name」欄に判別しやすいプロジェクト名称を入力してください。
複数名での共同作業を行う場合は、Descriptionに何か説明を書いた方が良いと思います。
ちなみに、当プロジェクトは、画面右側に表示されている「COS(Cloud Object Storage)」に保存されます。


4.プロジェクトに追加する
すぐに下記画面が表示されるので、右上の「Add to project」を選択します。


5.「Data」を選択
プロジェクトに追加可能なAsset一覧が表示されます。この中から「Data」を選択してください。今回は触れませんが、Web上でPythonが実行可能なJupyter notebookなども追加可能です。


6.CSVファイルをアップロード
画面右上のエリアに、当エントリー冒頭でご紹介したCSVファイルをドラッグ&ドロップしてください。「browse」のリンクからファイル指定も可能です。


7.「Refine」を選択する
CSVファイルのアップロードが終わりましたら、「Asset」タブから「Refine」を選択してください。


8.Refinery画面が表示される
Refinery画面が表示されます。こちらは、スプレッドシートライクな「Data」タブ画面です。


「Profile」タブではデータの概要が簡易的に把握可能な頻度グラフなどが表示されます。
「?」は、このサンプルデータに含まれる欠損値です。


そのほか、「Visualizations」にはデータ形式に合わせて豊富なグラフを選択することが出来ます。




このような高度な可視化が、数クリックだけで出来ちゃいます。
全く素性のわからないデータなどを受領した場合、まず、このツールでチェックするのもアリですね。

次回も、Watson Studioの機能をご紹介させて頂きます。




2017年8月4日金曜日

Watson AnalyticsとMeCabで「老人と海」を軽く可視化してみた。

趣味とお仕事のお勉強を兼ねて、形態素解析エンジンの「MeCab」を触っているのですが、「集計結果の可視化にWatsonAnalytics使えば楽かも?」と思って試したらその通りだったので軽くご紹介します。

最終的には、こんな可視化をします。


実施環境については、以下の通りです。
・MacBook Air(CPU:1.6GHz,Memory 8GB)
・macOS Sierra ver10.12.3
・RStudio ver 1.0.136
・分析データ:「青空文庫」よりヘミングウェイの「老人と海」の全文を取得

※本エントリーは、私、小田一弥が一個人として勉強を兼ねて記載したものです。私の勤務先である日本アイ・ビー・エム株式会社の見解・見識ではない、個人としての記載内容としてご覧ください。

まずは、MeCabで形態素解析。


まずは、形態素解析エンジンである「MeCab」を使って、頻度表を出力します。
環境構築がお済みではない方は下記をご参照ください。

RおよびRStudioのインストール方法(Mac/Windows)
http://qiita.com/daifuku_mochi2/items/ad0b398e6affd0688c97

RとLinuxと...
http://rmecab.jp/wiki/index.php?RMeCab



「形態素解析って難しそう・・・」と感じるかもしれませんが、以下のソースコードをRStudioコンソールにコピペするだけで出来ちゃいますのでご安心を。


# 読み込みファイルがあるディレクトリを指定します
# コード入力よりもRStudioメニューの「Session→Set Working Directory」の方が楽です。
setwd("~/blog/170722_roujin_MeCab/roujin")

# RMeCabパッケージを呼び出しておきます
library(RMeCab)

# 形態素解析を行い、タームと品詞別の頻度表を得ます。たったこれだけ!
roujin_count <- RMeCabFreq("roujintoumi.txt")

# RMeCabFreqで集計した結果を確認します。
View(roujin_count)


RStudio上に下記のようなビューワー形式で表示されます。
左から「Term(形態素)」「品詞分類1」「品詞分類2」「頻度数」となります。


一応、データ構造も確認してみますが、RStudio上でこのデータを可視化するには、ggplot2などを使ってゴニョゴニョするわけですが・・・うーん、ちょっと面倒臭いので楽したいですね。

今回は他のツールで可視化するために、一旦、RStudioから「roujin_count」データを出力します。

# str関数でデータ構造を確認します。
str(roujin_count)
'data.frame':    3214 obs. of  4 variables:
 $ Term : chr  "あの" "いかん" "いかんせん" "いくら" ...
 $ Info1: chr  "フィラー" "副詞" "副詞" "副詞" ...
 $ Info2: chr  "*" "一般" "一般" "一般" ...
 $ Freq : int  1 2 1 1 1 1 2 4 6 1 ...

# write.csv関数を使って集計データをCSV形式で出力します。
# 「quote=FALSE」は、データに引用符の「"」を付けないオプションです。
# 「row.names=FALSE」は、行番号を付けないオプションです。
# 「fileEncoding="CP932" 」は、「Shift-JIS」で出力するオプションとなります。

 write.csv(roujin_count,"roujin_count.csv",quote=FALSE,row.names=FALSE,fileEncoding = "CP932")



可視化は「Watson Analytics」にお任せ。


 ここからは、IBMが提供するクラウド上でビックデータ分析が可能な「Watson Analytics」を用います。

 なお、この時点では何となくはあるのですが、具体的に「こんな可視化をしよう」といったイメージ無しで作業を進めています。 事前にしっかりとしたアウトプットイメージを持ちながら作業を進めることは重要ですが、「とりあえずデータの概観を見たい」といった局面もあると思います。「Watson Analytics」には、データの特性を自動的に解析し、「もしかして、こんな風に見たいと思ってない?」といったオプションを先に提示してくれる機能が実装されています。

以下にその機能の一部と操作手順をご紹介します。
「Watson Analytics」の利用登録がお済みではない方は、下記URLからご登録ください(無料です)

IBM Watson Analytics
https://www.ibm.com/watson-analytics


1.まずは集計データのアップロード
「Watson Analytics」にログインしましたら、画面中央の「Add」ボタンから「Or add your data」→「Drop file or browse」を選択してください。


macOSだとFinder、Windowsだとexplorerが立ち上がりますので、読み込ませたい集計ファイル(この場合、「roujin_count」)を選択してください。


たったこれだけで「Watson Analytics」上に集計ファイルがアップロードされます。


2.可視化の実施
アップロードされた「DATA SET CSV」パネルをクリックすると、「Watson Analytics」が下記のようなオプションを自動提示します。

とりあえず、品詞分類1レベルで大まかなボリューム感を見たいので、一番右を選択します。


品詞別のボリューム感がわかるグラフが瞬時に表示されました。
同じ作家の異なる作品をこのグラフで出力して円の大きさを比較しても面白そうですね。


他の形式でも確認して見たいので、画面右側の「>」マークを押してください。
今後は「Watson Analytics」からオススメされた一番左のグラフを選択してみましょう。


先ほどと同じ「品詞分類1」のグラフが表示されました。X軸は「品詞分類1名称」、Y軸は「品詞分類1別の頻度」となります。
降順でソートしたいので、X軸ラベル「info」を右クリック→「Sort→Descending by value」を選択してください。


簡単に降順ソートができました。
せっかくなので、Term(形態素)別の頻度も見たいので、画面左下の「applied filter」 を選択してください。


「Add a filter」から「Freq」を選ぶと下限値と上限値を入力する欄が表示されるので、バーを動かすか値を直接入力してください。



 「Info1」の 部分をクリックし、「Term」を選択すると下記のように頻度数30以上の全Termが表示されます。


これでは分かりづらいので、もう一度「Add filter」を選択し、「Info1」で「名詞」をフィルターの追加条件として設定すると下記のような名詞頻度数のグラフが表示されます。
※Term数が多すぎたので、頻度の下限値を50に修正しています。


原作を読まれた方は「あー、なるほどね」な結果になったのではないでしょうか。
今回のご紹介は以上です。

このように「Watson Analytics」を用いると、通常の集計ファイルで必要な各変数の形式設定などせずに直ぐに可視化作業に移ることが可能です。
データサイズの大きいファイルでなければ、無料で使えますので、ご興味ありましたら是非お試しください。

Watson関連エントリー


Watson Explorerでディズニーの人気作品をテキストマイニング
http://sapporomkt.blogspot.jp/2017/04/watson-explorer.html

 Watson Explorer Content Analytics(WCA)の紹介動画を紹介したいんです。
http://sapporomkt.blogspot.jp/2017/03/watson-explorer-content-analyticswca.html

分析の常識が変わる?「Watson Analytics」すげー!!
http://sapporomkt.blogspot.jp/2016/01/watson-analytics.html 

「データ・ビジュアライゼーション」でも便利な「Watson Analytics」。
http://sapporomkt.blogspot.jp/2016/01/watson-analytics_13.html

 いま話題のIBM「Bluemix(ワトソンくん)」が「老人と海」をサマったら。
http://sapporomkt.blogspot.jp/2015/11/ibmbluemix.html

「Watson」先生に、AdSenseビンボーの理由を聞いてみた・・・
http://sapporomkt.blogspot.jp/2016/01/watsonadsense.html

2017年4月30日日曜日

Watson Explorerでディズニーの人気作品をテキストマイニング

唐突ですが、問題です。
これからご紹介するデータは The Internet Movie Script Database (IMSDb)※1に公開されているとある「ディズニー映画の脚本(Script)」をWatson※2で解析した結果です。
ずばり、その映画タイトルとは何でしょう?
※1:http://www.imsdb.com/
※2:Watson API:Personality Insightsデモサイト

https://www.ibm.com/watson/jp-ja/developercloud/personality-insights.html#try-it-out

  ※本エントリーは、私、小田一弥が一個人として勉強を兼ねて記載したものです。私の勤務先である日本アイ・ビー・エム株式会社の見解・見識ではない、個人としての記載内容としてご覧ください。


Watson Personality Inights(PI)


<「前フリ」に関するおことわり>
 本エントリーは、IBMのテキストマイニングソリューションである「Watson Explorer(WEX)」のご紹介がメインですが、まずは、これから掲載するのは、「Watson Personality Insights」でアウトプットした内容となります。

■Personality Insightsとは:
ツイート分析や他のSNS分析を通じて、人間の性格の特性、要求、価値観をより深く理解し、パーソナライゼーションを強化します。

まずは、「性格特性」です。「作品のらしさ」が表われているのは、このあたりでしょうか。
※画像をクリックして拡大表示してください。

 ・気分が沈みがちなタイプです.
 ・興奮を求めるタイプです: リスクを取ることで高揚し、忙しくないと退屈に感じます.
 ・他人と対立することに尻込みしません. また、安定しているタイプです.
 ・自己表現を意識して意思決定するタイプです.

右側は、「カントリー・ミュージックを好む」傾向は低いという解析結果になっています。
うん、確かに、もっとアップテンポな曲を、比較的、最初から最後まで歌っている感じはあります。
あと、「クレジットカード」は、そもそも使える世界ではありませぬ(笑)


「自己表現」や「自由主義」が高いところがヒントになりそうです。ふふふふ。


いちおう、サンバーストチャートも掲載しておきますね。


さぁ、わかりましたか?

アレですよ、アレ。アレでございますよ。

・・・えっ、わからない? 一切、ヒント無しです。シンプルに考えればわかるかもしれません。

 そう、

ありのまま、「レリゴーでいいんですっ!!


いやー、全くわかりませんね、難問ですのでそろそろ映画タイトルを発表します。

 正解は、

・・・




「FROZEN」(邦題「アナと雪の女王」)でした。


・・・社風に合わないテーストの前フリはこの程度にしまして、WEXでサクっと見た内容をご紹介させて頂きます(汗)。


Watson Explorer(WEX)の解析結果をご紹介


 以下は、今回の解析に用いたデータ概要です。

解析対象データ
・解析対象データ:IMSDbの「Frozen」に関して記載されたレビュー
・データ期間:2013年11月20日~2017年2月2日
・データ件数:931件

 とりあえず、データの全体像を把握するために、全件の時系列グラフを確認してみます。
以下は、WEXの「時系列タブ」で出力した「月別」グラフですが、確かに映画が封切られた2013年11月からレビューが発生していることがわかりますね。

ち なみに、月別も含め、WEXでは「年、月、日、年ごとの各月、月ごとの各日、各曜日」別に集計が可能です。コールセンター等におけるVOC(Voice Of Customers)分析では、月末・月初・中日・週初め・週末などで周期性のある事象が発生するので、結構お世話になる機能のひとつです。


 次に、どのような単語が頻出しているのか確認してみましょう。
WEX には既存でプリセットされている「ファセット(分析の切り口)」があります。試しに「名詞」ファセットで各キーワードの頻度を確認すると、上位から6番目 に「song(570回)」があることがわかります。日本でも「松たか子」さんや先ごろご結婚された「神田沙也加」さんらの挿入歌が話題になりましたもん ね。


  また、プリセットファセットの中でオススメなのが「Voice of Customers」。文字通り、VOC分析でウォッチしたいキーワード群がおさめられています。今回は、「Unfavorable(嫌悪)」で集計して みましたが、上位には「problem」「lose」「accident」など、映画をご覧になった方であれば腹オチするキーワードが頻出していることが わかります。

 なお、この「VOC」、確かに便利ではありますが、これで全てのVOC分析をカバー出来ると考えるのではなく、あくまでも自社用のVOCファセットを作る際のマテリアル(ネタ元)としてご利用ください。
(最終的に、ファセット構築は各分析対象データの内容や品質に依存しますので、 プリセットで全て分析できると考えるのは早計です)


WEXのファセットは、プリセット以外に様々な方法で自分用のファセットを実装することが可能です。
今回は、「ユーザー辞書」という「同義語」をピックアップする機能で「キャラクター名」ファセットを作ってみました。

 結果は、「へぇ~」な感じですが、かわいい雪だるま君の「Olaf」は流石に人気モノですね。
一方、同じ雪ダルマ(?)のMashmallowですが、確かに自分も名前を知らなかったです。

1.Elsa(460回)
2.Anna(431回)
3.Olaf(347回)
4.Hans(245回)
5.Kristoff(209回)
6.Sven(126回)
7.Mashmallow(7回)


 最後に「評判タブ」機能もご紹介します。こちらは、ファセットに含まれる各キーワードが含まれるレコードの「評判」を「好評・拮抗・不評」の割合で表現してくれます。

 今回は上記で実装した主要キャラクターのファセットで集計したのですが、確かに頻度数の多いキャラクターの中で「Elsa」の不評率が高いのは、アレやコレやアレをやって誰かさんに迷惑をかけちゃったことが推察されますね(ネタバレ防止に最大限留意しております!w)


今回のWEX機能紹介は以上となります。
次回はちょっとしたTipsなども触れていければと考えております。


Watson関連エントリー


 Watson Explorer Content Analytics(WCA)の紹介動画を紹介したいんです。
http://sapporomkt.blogspot.jp/2017/03/watson-explorer-content-analyticswca.html

分析の常識が変わる?「Watson Analytics」すげー!!
http://sapporomkt.blogspot.jp/2016/01/watson-analytics.html 

「データ・ビジュアライゼーション」でも便利な「Watson Analytics」。
http://sapporomkt.blogspot.jp/2016/01/watson-analytics_13.html

 いま話題のIBM「Bluemix(ワトソンくん)」が「老人と海」をサマったら。
http://sapporomkt.blogspot.jp/2015/11/ibmbluemix.html

「Watson」先生に、AdSenseビンボーの理由を聞いてみた・・・
http://sapporomkt.blogspot.jp/2016/01/watsonadsense.html