RMeCabで検索ワード解析2

引き続き、RMeCabで形態素解析を行います。
今回は、私が持っているほかのツイッターアカウントの解析をおこないます。
このアカウントは2000ツイート以上つぶやいているので解析しがいがありそうです。

以下の手順でおこなっていきます。

1.ツイート情報のダウンロード/ダウンロードしたデータの整形

2.RMeCabで読み込み

3.データのソート

4.詳細解析

1.ツイート情報のダウンロード/ダウンロードしたデータの整形

まずTwitterサイトにいき、ダウンロードしたいTwitterアカウントでログインします。
右上にある「設定 > ユーザ情報」の下の方にある「全ツイート履歴」を押すだけ。
しばらくすると登録しているメールアドレス宛にダウンロードするためのURLが送られるのでそれをダウンロードします。
ZIPファイルを解凍すると「tweets」フォルダができます。
この中の「tweets.csv」がツイート情報です。

このCSVファイルを整形していきます。
このファイルを普通に開くと、普通に文字化けますので、テキストエディタで開きコピペでエクセルか何かで開くと整形がしやすいです。
整形のポイントは、空白行の削除、リンク系文字列の削除「http://」くらいです。そのほか解析対象から外したい文字列などもここで整形していきます。
ここでは出来た上がった文字列情報を「20130429tweets.txt」として保存します。
※ちなみにタイトル行は削除しておく必要があります。

2.RMeCabで読み込み

データの下準備ができたらようやくRで読み込みを始めます。
変数「txres」に「20130429tweets.txt」ファイルを格納します。

> library(RMeCab)
> txres <- RMeCabFreq("20130429tweets.txt") file = 20130429tweets.txt length = 6947 これをそのまま表示させても良いですが、膨大な行数になるので品詞でソートしていきます。 今回は一般名詞のみを抽出します。 ツイートというメディアの特性から(?)「!」とか「”」「(」など記号系の名詞が頻出します。 一般名詞に絞り単語のみを抽出することにより、より出現する単語の傾向をつかむことができます。 > txres[txres$Freq >= 5 & txres$Info1 == “名詞” & txres$Info2 == “一般”, ]
Term Info1 Info2 Freq
1801 A 名詞 一般 10
1815 Air 名詞 一般 10
1824 Android 名詞 一般 6
1829 App 名詞 一般 7
1830 Apple 名詞 一般 8
<略>

並び順を指定しないとABC順にソートするっぽいですね。
「A」とかあると心配になりますけど、「Air」とか「Android」出てくるときちんとソートされていることがわかります。
後の整形のことを考えて、出力されたこれらデータをエクセルに貼り付けます。
貼り付けてから「Freq」基準で順番を並び替えます。

Term Info1 Info2 Freq
3663 ブログ 名詞 一般 115
3947 人 名詞 一般 73
3882 ー 名詞 一般 62
2622 iPhone 名詞 一般 56
2896 to 名詞 一般 54
2821 s 名詞 一般 39

「ブログ」・・・ブログからの引用が多いということか。
「人」。うーん人に関心が高いということで良いといえば良いか。
「一」。高頻出ですな。なんでだろうか。
「iPhone」。iPhoneネタが多いのだろうなぁ。
と、まあこんなことがわかってきますがが、ネットワーク分析をおこなっていきます。

ネットワーク分析をそのままおこなっても良いですが、CPUをアホみたいに食いますので、単語を絞ってネットワーク分析をおこなっていきます。
先ほど解析した際に出てきた「iPhone」を中心としたネットワーク図を作図していきます。

> txres <- collocate("20130429tweets.txt", node="iPhone", span=1) file = 20130429tweets.txt length = 6551 中心語を「iPhone」として、単語の範囲を「1」とします。 ひとまず出力 > txres
Term Before After Span Total
1 !! 1 0 1 26
2 ” 1 1 2 152
3 # 3 2 5 106
4 ‘ 0 1 1 47
5 , 0 1 1 44
6 . 1 0 1 120

共起頻度の調査をおこないます。
一般的にt値が1.65以上あれば共起頻度が有意に大きかったと判断してよいとのことなので、調べてみます。

> txres2 <- collScores(txres, node="iPhone", span=1) > txres2
Term Before After Span Total T
1 !! 1 0 1 26 0.88681457
2 ” 1 1 2 152 0.94632139
3 # 3 2 5 106 2.02970202
4 ‘ 0 1 1 47 0.79539556
5 , 0 1 1 44 0.80845542

上記から見ると、「#」のみが1.65以上ですので共起頻度が有意であるとできます。

続いてネットワーク図を作っていきます。

> tx.net <- graph.data.frame(txres2) からのプロット。 > plot(tx.net)
スクリーンショット 2013-04-29 18.51.47

美しくない。
作図をカスタム。

> plot(tx.net, vertex.label=V(tx.net)$name, vertex.size=0.1)
スクリーンショット 2013-04-29 18.52.58

かなり見づらいネットワーク図ですが、ひとまず完成。
この図からわかることは、以下。
①iPhoneに関連しているのは大小9個の塊で構成されている
②主に「高級」「素晴らしい」といった感想系ポジティブワードと「操作」「対応」「アップデート」など技術的なワードの二分類が大きなグループを構成している。

もっと解析できるのだろうけど、ひとまずここまで。

Leave a Reply

%d人のブロガーが「いいね」をつけました。