

【やりたいこと】TwitterSearchを使用して、ツイートデータを取得したい!
TwitterSearchで指定のキーワードが含まれているツイートを取得します。
指定するキーワードは、「冬」にします。さて、「冬」といっしょによく使われる単語は、何になるのでしょうか。
【15分でできる】Twitterの冬は以外な結果に、
※ダウンロード時間は15分の中に含まれていません。
0.概要
TwitterSearchで「冬」を含むツイートを取得します。次に、重要でないツイートを消去します。最後に「冬」とよくいっしょに使われる単語のランキングを作成します。
1.使用したもの
・Exploratory

・Mecab
・Rmecab
2.手順
※下記の記事の内容を完了しているものとして、進めていきます。


①ツイートの取得
Exploratoryを起動し、プロジェクトを作成します。
データフレームの+マークをクリックし、クラウドアプリケーションデータをクリックします。
Twitter Searchをクリックします。
コネクションの右にある作成をクリックします。
追加をクリックします。
Twitter Searchをクリックします。
OKをクリックします。
アクセス許可の完了後、リフレッシュをクリックします。
上記の画像のように設定します。
include RetweetsをNoにすることで、リツイートを省くことができます。
設定後、データの取得をクリックし、ツイートデータが表示されたら、インポートをクリックします。
データフレームの名前を決めます。
上記の画像のように、表示されていれば成功です。
②スクリプトを作成する
Rmecabを使いやすくするために、スクリプトを作成します。
スクリプトの+マークをクリックし、スクリプトをクリックします。
mecab_tokenize <- function(tbl, text_col, .drop=TRUE){ loadNamespace("RMeCab") loadNamespace("tidyr") text_cname <- as.character(substitute(text_col)) text <- tbl[[text_cname]] tokenize <- function(text){ # WindowsでMecabをインストール時に文字コードをShift JISで使う場合 # 文字コードをUTF8からcp932に変換しておく textSjis <- iconv(text, from="UTF8", to="cp932") if(is.na(textSjis)) { # 変換に失敗したものは空文字だとRMeCabCが動かないので空白にしておく。 textSjis = " " } tokens <- unlist(RMeCab::RMeCabC(textSjis)) #UTF8に戻す tokensUTF8 <- iconv(tokens, from="cp932", to="UTF8") data.frame(.token = tokensUTF8, .pos = names(tokensUTF8)) } if(.drop){ tbl[[text_cname]] <- lapply(text, tokenize) token_col <- text_cname } else { tbl$.token <- lapply(text, tokenize) token_col <- ".token" } tidyr::unnest_(tbl, token_col) } Twitterデータをテキストマイニングして可視化 - RMeCab使う版安倍首相に関するTwitterのデータから、テキストマイニングしてワードクラウド を作成するまでを説明したブログです。※引用元のコードを使用してください。上記のコードは、引用元のコードを正しく表示することができませんでした。申し訳ございません。
コード記入後、保存をクリックします。
③重要でないツイートの非表示
ステップの左にある+マークをクリックします。
カスタム・コマンドをクリックします。
mecab_tokenize(text)を記入し、実行をクリックします。
品詞ごとに分類されていれば成功です。
次は、名詞と動詞だけに絞ります。
.posのメニューから、
フィルタ > どれかに等しい
をクリックします。
値の欄に名詞と動詞を記入します。
記入後、実行をクリックします。
この操作で、名詞と動詞だけが残るようになります。
次に、重要でない単語を非表示にします。
.tokenのメニューから
フィルタ > どれにも等しくない
をクリックします。
値の欄に記入されたものは、表示されなくなります。
どれにも等しくないの値に記入されたもの=非表示
次に、1文字の単語を非表示にします。
フィルタのカスタムタブを選択します。
条件の欄に
str_length(.token)>1
を記入し、実行をクリックします。
そうすることで、1文字のテキストを非表示にします。
チャートをクリックします。
上記の画像のように、設定します。
そうすることで、「冬」といっしょに使われる単語のランキングが表示されます。
しかし、上記のランキング内に、重要でない単語が含まれています。
フィルタで非表示しましょう。
上記の画像のように、どれにも等しくないの欄に重要でない単語を記入します。
以上の結果となりました。
「コミ」が断トツで1位になりました。これは、Twitterで冬コミが盛り上がったことが推測できます。
意外な点としては、「アイス」が4位にランクインしているところです。「冬 アイス」でTwitter検索した結果、「冬にこたつで食べるアイスがおいしい」のようなツイートが多く見受けられました。面白い点は、「冬 コミ」は明らかに、「冬コミ」というイベントの結果、ツイートが伸びたのに対して、「冬 アイス」は、特に、目立ったイベントを発見することができませんでした。このことから、「冬 アイス」は、継続してツイート数が多いのではないかと疑問を持つことができました。また、「冬」と「アイス」のような意外性のあるものが、Twitterでは、頻繁にツイートされやすいのではないかとも考えました。「冬はこたつで暖まろう」などは当たり前すぎて、ツイートしないように感じ、逆に「冬」に「アイス」という意外性のあることは、ツイートしやすいと思いました。
以上のように、ツイートの1つのキーワードに着目して集めたデータだけでも、面白い発見がたくさんあります。
3.追記
アイス食べたくなった。
【最後に】参考サイトの紹介
参考記事は、Exploratoryのサイトにあるブログを見ています。以下のリンクが、日本語に対応しており、とっつきやすいのでおすすめです。

コメント