2013年10月7日月曜日

【解析いろは25】Rでソーシャルリスニングをやってみた 1

トレーニングがてら、Rでツィッターのデータを元にソーシャルリスニング(ぽい何か)をやってみました。超適当ですが、解析ってこういうことをするんだな、という段取りや必要なことの確認ができました。



ビッグデータやデータサイエンティストがバズワードとなっていますが、ウェブ解析担当もアクセスログだけを分析するだけでは足りなくなってきています。それはすなわち、ウェブ解析=ユーザーの行動履歴の分析がより効果を求められるようになったからで、解析の意義と目的が浸透してきた証としてよろこぶべきことだと思います。

ビッグデータなんてウチの会社には無縁だよと思っているアナタ。今日、急に上司や社長から「今はユーザーの声に耳を傾けるソーシャルリスニングの時代。だから弊社の企業名がどんだけソーシャルでささやかれているか調べてくれ!」なんて無茶振りがあるかもしれません。昨日どこかのセミナーに行ってなんか聞いてきたんだな……なんて、死んだ魚のような目にならないでください。
時間と人力はある程度必要ですが、すごい分析ツールや他社サービスを導入する前に、やってみてはどうでしょうか。やってみれば意外と簡単です。ヘタレな私が言うのだから間違いない!

今回重要視したのは生のデータをいかに取得し分析するか、という段取りです。下記は一例であり、この方法がベターでもベストでもありません。ただ分析に必要な段取りは積んでいるつもりですので、参考になれば幸いです。

なお、今回収集したサンプルデータと分析は具体的な改善とかなんとかそういった事を一切念頭においてませんし、分析結果が「正解」ではありません。仮説とはいえないほどの想像あるいは妄想というご理解でお願いします。

◎準備するもの
・Rをインストールし使える状態にしておくこと。(必須)
・テキストマイニング用のプラグイン「MeCab」をインストールしておくこと(必須)
・参考書として「Rによるテキストマイニング入門」石田基広 著 (ほぼ必須)
・親しみやすいようにRcmdrというGUIプラグインを入れておくと(若干)効率アップするかもしれない。(気が向けば)


◎Rってなに?という方へ
 無料のくせにすごく優秀なデータ解析ソフト。解析用途別のプラグインもたくさんある。
http://www.r-project.org/

人文科学系や医学系、理工学系の学部にいたら触ったことがあるかもしれないですね。当方、法学部出身ですが、法学って一番データ解析に遠い学問のような気がする……論理思考と解釈の学問なんですよね。言語とデータ処理における論理思考ってちょっと違うんですよね。今ものっそい苦労してます。言葉を解釈でねじ曲げることに慣れているもんだから、言葉でデータをねじ曲げたくなるとか。アカン…

(1) 分析対象となるデータとその範囲を決める

調査内容:Twitter上でキーワード「ウェブ解析士」が期間内にどのくらいツィートされているかを計測し、ユーザーを分類してグループ毎にツィート内容にどのようなワードが頻出しているかを調べる。
調査目的:計測期間内のツィートの頻度とグループ:個人ユーザーのツィートの傾向について仮説を立てる
ソーシャル:Twitter
調査対象キーワード: ウェブ解析士
調査期間:13/9/2~13/10/2




キーワード決めは重要です。決めないと無限に対象が広がるからです。また、調査内容も決めておかないとひどい目に遭います。無限分析のループ。分析をするにあたっては「何を知りたい」「どのように調べるか」「範囲」を決めることがとっても重要です。

もし、初めてソーシャルの調査を行うのであれば、ソーシャルグラフやインタレストグラフを作成してユーザーとの関係を可視化するのもいいと思います。ソーシャルグラフ等の可視化はAPIを利用した無料のツールが結構あります。いいぞ、もっとやれ!
Twitter関係の概要調査なら「Topsy」(http://topsy.com/)をよく利用します。インフルエンサーや期間指定したキーワードの発言やレポートまでしてくれる便利なツールです。かつては日本語が弱いという話でしたが、今はかなり使えると思います。(Analyticsなどの機能をフルに使うにはメールアドレスなどの登録が必要です)。
ちなみに、今回のメインテーマ(であるはず)の『R』でTwitterのソーシャルグラフの作成が可能であるようです。(対象アカウントのパスワードが必要)
参考記事:ITmedia @IT 第5回 インターリュード: TwitterとR

(2) データの取得方法を考える

アクセスログなら大体何らかの分析ツールを介しているので取得については基本的に悩まなくていいです。 ですが今回は自前で収集するのでちょっと考えなくちゃいけません。
Rで直接Twitterにアプローチしてデータをひっぱってくることも可能なようですが、アイパスなどの制約があるのでこれも今回はスルー。(おいぃ!)

公開されているデータを効率よく目的に合致した内容で取得するために、Topsyを使いました。

(3) データの取得とクリーニング



Topsyで検索キーワードで絞り込んで期間を指定して表示します。残念ながらCSVのダウンロード機能はないので、ユーザー、Tw日、Tw内容を手作業でピックアップしました。APIをカスタマイズすればらくらくなんでしょうけど、今回そんな余裕はない! (件数も少なかったし…) 
クリーニングとは、例えば空欄や値が不正な場合(欠損値)★の処理をどうするかとか、不要なデータを削除するとか、分析しやすい形にデータを整える作業です。今回、欠損値はないのと、URLはRで絞り込みをするので放っておきました。
で、最終的にデータをCSV形式に収めます。

★この「欠損値」をどう扱うかが分析データでは重要なファクタなので、本当は真剣に考えないといけないのです。

(4) 解析設計をする

慣れていたり以前やったことのある分析データならば最初に検討しておくべきことですが、今回はお初のデータなので、ここで解析設計をしました。
まず適当に幾つかデータを拾って読んでみて、どんなツィートがあるのかばっくりと感じます。感じる、というのが、目的で、ここで深く読んでいくと分析の意味がありません。

どうやら、関係者や告知のツィートと個人の感想みたいな「感じ」に大きく分かれるようです。
じゃあ、ユーザーをグルーピングして発言の傾向を見よう。そして個人ユーザーに着目して、どのようなワードがよく使われているか、そこにグループ別の差はないかを調べよう、と決めました。

【設計】
1.ユーザーをセグメント分類する > (3) に戻って作業( bot、関係者、セミナー、個人を適当に分類。ルールは、ユーザー名やツィートに特定のワードが含まれているか否か。関係者はサイトをあらかじめ調べてピックアップしておき、分類 など)★
2.エクセルでの作業★
 グラフなどのビジュアル化
 概要のグラフ化と把握(日別動向、ユーザーセグメント別割合)
 3.データの詳細な比較検討

3.Rでの作業
 グループ毎に発言を分類
 グループ毎に発言をテキストマイニングし、傾向を把握

長くなったので、Rで分析編はまた後日~。


★今回は発言数が多くないのと、明らかに関係者やセミナー告知が多かったので強引にユーザー分類をしました。普通はやってらんないので、インフルエンサーという分類が多いのだと思います。分類による比較軸があると分かりやすいのでいいですが、ケースによりますねこの方法。
★今回の作業のほとんどはエクセルで出来ますし、そのほうが早いです。一部、無理矢理Rでやったところもありますが、単純集計やグラフ化はエクセルでやっつけました。ツールに拘りを持つのではなく、目的達成のためにどの方法がいいのか、で決めるべきだと思います。

 <MEMO>
 これら過程の時間と工数をきちんと記録ておくことをおすすめします。できたら、他社サービスの価格も調べておきましょう。レポートと共に調査にかかるコスト概算も提出すれば、レポート作業と効果の費用の把握が容易になります。

Rでソーシャルリスニングをやってみた 2に続きます

0 件のコメント:

コメントを投稿