ラベル ソーシャルリスニング の投稿を表示しています。 すべての投稿を表示
ラベル ソーシャルリスニング の投稿を表示しています。 すべての投稿を表示

2013年10月9日水曜日

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

Rでソーシャルリスニングをやってみた 1では解析前の設計とデータ取得、整形についての話でした。いよいよ分析に入ります。
と、その前に。ちょっとおさらいです。

<今回のトライの目的>
世の中には無料で使える、基本のレポート機能がついたツールやサービスがリリースされているのになんでわざわざRで、アナログ作業までして分析をやっているの? と思われるかもしれません。
①Rのトレーニング
②Rでテキストマイニング(ツィート内容に極力踏み込まず、できるだけ機械的に判断と処理をするトレーニング)
③アカウントとは無関係のソーシャルリスニングだから。
ツィート数とか日別動向とかインフルエンサーなんてお飾りですよ! アカウントに紐付かない純粋なクチコミを、テキスト内容に踏み込んで分析する!(ような感じだけどそこまで深くやってないよ!)これが今回のメインテーマであります。
実際に、Twitterアカウントを開設していないクライアントがリアルでキャンペーンを実施し、ツィッター上でどの程度話題になっているか知りたい、というオーダーを受けたことがあります。ソーシャルの公開記事は様々な情報、ウソもホントも詰め込まれた生の情報源なのです。

(1) 分析作業1 Rでデータを分類、ソート

整形したデータは下記の通りです。
・データ形式 CSV
・データは、主体を 1=個人 2=関係者 3=セミナー・講座情報、ニュースサイト 4=bot に分類した「主体分類」、「ツィート内容」で構成

エクセルでも出来る作業ですが、練習のためRでデータを主体ごとに切り分けました。
<作業の流れ>
①Rを起動し、プラグインRcmdrを開く
RcmdrはRをGUI的に操作するプラグインです。でもほぼコマンド入力であることに変わりはありません。
②csvデータを読み込み、表示
③データを主体区分の数値別に切り分けて、新たにCSVで保存。今回使用したのは1のグループのデータと、2+3のグループのデータです。botはウザいから除外しました。

(2) RMecabでテキストマイニング

RMecabはRのテキストマイニングのパッケージです。日本語の形態素解析エンジンの「MeCab」をRで操作するためのものです。ギャル語にはぁたいぉうしてるのかしらぁ? あとこのエンジンやパッケージはなんて読むのでしょうか。このエンジンの制作者さんのサイトには「めかぶ」の写真があるんですが…やっぱり「めかぶ」なんですかね。

<作業の流れ>
①RMecabを起動して、(1)で作成したすべての発言データ・ グループ1のデータ・グループ2+3のデータを順次分析する。
②すべての発言の分類データを眺めて気になった点をメモる。
③メモを元にさらに比較用データの絞り込みや気になる単語を調べる。今回はクラスター分析はやりませんでした。今度時間があるときにやってみようと思います。

下のイメージは すべての発言データのRMecabでの分析結果の一部です。
Mecabは「形態素解析」で、意味の最小の単位で切り分け、分類してくれます。すごい!これは基本の解析関数の“RMeCabFreq()”を使っていますが、他にも様々な関数があるので用途に応じて使い分けをします。
切れてしまってますが、「ウェブ解析士」キーワードの絞り込みだから「ウェブ」「解析」「士」が当然頻出回数が多いです。これらのワードはどのグループでも必ず共通で登場するので検討対象からは除外してます。



 吐き出されるデータは、行番号、形態素(最小の日本語)、品詞(大分類)、品詞(小分類)、出現回数(Freq)です。この関数のメリットは重複がなくカウントされ、テキスト内に登場している形態素が頻度という数値で把握、という点ですね。
まずは全部の分類をぼやーっと眺めて、なんとなく全体を把握。こんなことを考えてデータをいじってます。↓
・『個人グループとセミナー・関係者グループのツィートに差があるか>あると仮定>個人とセミ ナー・関係者の形態素の並び比較』
・『個人とセミナー・関係者の形態素の名詞・動詞・形容詞のみの並び比較』
・『個人グループの感情を拾ってみよう>個人グループデータの形容詞絞り込み』や『助動詞と形容詞の「ない」の否定のテキストのピックアップ』

(3) 分析とレポートはエクセルで

最も難関のテキストマイニングの処理はRで行い、詳細の分析はエクセル上でやりました。オートフィルタでちゃちゃと切り替えながら見ていきます。今回はデータをいろんなフィルタでソートしてぱらぱらと見て、気づきをメモって、後で再検討します。いつも大体そんな感じです。
いろんなことを多角的に見て、実施し、それからレポートにまとめていきます。これがクライアント向けの場合は、すべてを載せるのではなく、クライアントの知りたいことに即した形で、不要なデータを削っていきます。

 (4) 結果要旨


がっつりグラフなんかも作ってレポート形式にしたのですが、余所様に関わることを一方的に調べただけなので、公開はしません。オチがなくてすいません。

以下、簡単に今回の分析結果の要旨です。
●計測期間内に運営主体のツィートが少ない。
●インフルエンサーは関係者グループの数名とボット。

●個人のツィート数は全ツィート数の約49%、半分近くあるけれどツィート内容を見ると解析士資格取得者やニュースサイトが含まれているので、純粋ないち個人のツィートの実数はもっと少ない。(分類方法をもっと精密にする必要がある)
●個人のツィートにつき助動詞及び形容詞の「ない」で否定語を調べたところ、強いネガティブ発言は見受けられなかった。
●関係者・セミナーグループでの頻出度が高い名詞は「講座」「認定」、個人では「データ」「講座」「資格」。部分的に被っているものの、個人グループでは「資格」が多いことから、取得対象としての資格や講座に興味があると推測する。

◎まとめ

個人のツィートにフォーカスしたところ、強いネガティブ・否定発言はないようです。形容詞分類でも、形容詞の否定「ない」を除いてネガティブイメージのある形容詞は「難しい」「高い」でした。(いずれも頻度が少ないため、それがすべてのユーザーの状態を示す形容詞であるとはいえません)。
今回はネガティブな発言はなかったものの、継続的にツィートを見て、ユーザーの疑問や資格に対する見方を把握していくことも重要かな、と思いました。
 個人グループのツィートは、認定資格を取得していると思われるユーザー(資格既取得層)と資格に興味がある・これから受験する・勉強中といったユーザー(未取得層)の二つに分類できます。ツィッターで資格既取得層か、未取得層(潜在的ユーザーも含めて)のどこに・どのように情報を発信していくか運用設計を考えることも重要だと思います。

<反省> 
当たり障りのない要旨になってしまいました。通常、レポートはクライアントの要求に応じて定義し、それに役立つように作成するものですから、相手がいないとどうしてもボヤけたレポートになってしまう、という点も収穫でした。今回の分析で分かったその他の課題は、
・ユーザー分類をどのように・いかに効率よくやって精度をあげるか
・ データの取得方法
・今回のテキストマイニングは形態素の数の把握だが、ユーザーと、重要形容詞や名詞との発言の相関のグラフ化や、 ツィート内容についてもっと突っ込んだ分析をしたい。
です。
言語の用法や言語の相関関係や傾向については実に素人的な所感です。当方、テキストマイニングの専門家でもなく、この分析は社会学のような学問の探究を目的としていません。でも、「ユーザーの本音の仮説を立てる」ということであればこの程度でもそれなりに役立つ情報になると思います。

分析に王道はあっても正道はない!(最近気に入ってる言葉らしい)
いろんな方法があっていいと思います。仮説が正しいかどうかはその後のアクションと検証が証明してくれます。

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に続きます