【Exploratory】TwitterSearchを使用してみる

Exploratory準備記事


【やりたいこと】TwitterSearchを使用して、ツイートデータを取得したい!


TwitterSearchで指定のキーワードが含まれているツイートを取得します。

指定するキーワードは、「冬」にします。さて、「冬」といっしょによく使われる単語は、何になるのでしょうか。

【15分でできる】Twitterの冬は以外な結果に、


※ダウンロード時間は15分の中に含まれていません。

0.概要


TwitterSearchで「冬」を含むツイートを取得します。次に、重要でないツイートを消去します。最後に「冬」とよくいっしょに使われる単語のランキングを作成します。

1.使用したもの


・Exploratory

https://exploratory.io/

・Mecab

・Rmecab

2.手順


※下記の記事の内容を完了しているものとして、進めていきます。

①ツイートの取得


Exploratoryを起動し、プロジェクトを作成します。



データフレームの+マークをクリックし、クラウドアプリケーションデータをクリックします。



Twitter Searchをクリックします。



コネクションの右にある作成をクリックします。

追加をクリックします。



Twitter Searchをクリックします。



OKをクリックします。
Twitterアカウントが必要なので、これを機にTwitterアカウントを作成しましょう!



アクセス許可の完了後、リフレッシュをクリックします。



上記の画像のように設定します。

include RetweetsNoにすることで、リツイートを省くことができます。

設定後、データの取得をクリックし、ツイートデータが表示されたら、インポートをクリックします。



データフレームの名前を決めます。



上記の画像のように、表示されていれば成功です。

②スクリプトを作成する


Rmecabを使いやすくするために、スクリプトを作成します。



スクリプトの+マークをクリックし、スクリプトをクリックします。

mecabtokenize <- 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) }

https://exploratory.io/note/2ac8ae888097/9462315684068270

※引用元のコードを使用してください。上記のコードは、引用元のコードを正しく表示することができませんでした。申し訳ございません。

コード記入後、保存をクリックします。

③重要でないツイートの非表示




ステップの左にある+マークをクリックします。



カスタム・コマンドをクリックします。



mecab_tokenize(text)を記入し、実行をクリックします。



品詞ごとに分類されていれば成功です。




次は、名詞と動詞だけに絞ります。



.posのメニューから、

フィルタ > どれかに等しい 

をクリックします。



値の欄に名詞動詞を記入します。

記入後、実行をクリックします。

この操作で、名詞と動詞だけが残るようになります。




次に、重要でない単語を非表示にします。



.tokenのメニューから

フィルタ > どれにも等しくない

をクリックします。



値の欄に記入されたものは、表示されなくなります。
どれかに等しいの値に記入されたもの=表示
どれにも等しくないの値に記入されたもの=非表示

次に、1文字の単語を非表示にします。

フィルタのカスタムタブを選択します。

条件の欄に

str_length(.token)>1

を記入し、実行をクリックします。

そうすることで、1文字のテキストを非表示にします。

チャートをクリックします。

上記の画像のように、設定します。

そうすることで、「冬」といっしょに使われる単語のランキングが表示されます。

しかし、上記のランキング内に、重要でない単語が含まれています。

フィルタで非表示しましょう。

上記の画像のように、どれにも等しくないの欄に重要でない単語を記入します。

以上の結果となりました。

なぜか、除外できない単語がいくつかありました。(「いる」とか)

「コミ」が断トツで1位になりました。これは、Twitterで冬コミが盛り上がったことが推測できます。

意外な点としては、「アイス」が4位にランクインしているところです。「冬 アイス」でTwitter検索した結果、「冬にこたつで食べるアイスがおいしい」のようなツイートが多く見受けられました。面白い点は、「冬 コミ」は明らかに、「冬コミ」というイベントの結果、ツイートが伸びたのに対して、「冬 アイス」は、特に、目立ったイベントを発見することができませんでした。このことから、「冬 アイス」は、継続してツイート数が多いのではないかと疑問を持つことができました。また、「冬」と「アイス」のような意外性のあるものが、Twitterでは、頻繁にツイートされやすいのではないかとも考えました。「冬はこたつで暖まろう」などは当たり前すぎて、ツイートしないように感じ、逆に「冬」に「アイス」という意外性のあることは、ツイートしやすいと思いました。

 

以上のように、ツイートの1つのキーワードに着目して集めたデータだけでも、面白い発見がたくさんあります。

詳細

画像が見づらい場合は、以下のリンク先に移動することをおすすめします。

https://hk-ryukyu.club/hideto/archives/908

【最後に】参考サイトの紹介


参考記事は、Exploratoryのサイトにあるブログを見ています。以下のリンクが、日本語に対応しており、とっつきやすいのでおすすめです。

https://exploratory.io/tag/japanese