Rでツイッターのビッグデータを分析する
Rでツイッターのビッグデータを利用し、テキストマイニングしてみました。とはいっても、本当に基礎の基礎で、あるユーザーのツイートを3000個ほど取得し、どのような言葉をよく使っているかを調べるという企画です。
最終的な目標としては
・好きなアカウントの独特な話口を分析し
・そのアカウントっぽい言葉を特定すること
となります。
今回選ぶアカウントは、①東京ちんこ倶楽部さんと②暇な女子大生
さて、今回僕が選んだアカウントは、僕が個人的に好きなアカウントです。
まず、①東京ちんこ倶楽部さんです。日本のブラック企業皮肉力が高いアカウントで、2年ほど前からファンです。
土曜日だけど会社に呼び出され pic.twitter.com/BzWvR7Z5Xk— 東京ちんも倶楽部 (@tokyoxxxclub) August 19, 2017
ちなみにnavarがたっているので見るとこんな感じ。
東京ちんこ倶楽部さんについてはこちらのnaverまとめを参照。— DAI (@never_be_a_pm) August 21, 2017
「以下のワードが頻発するのが特徴
・圧倒的
・成長
・エリート」
人気も「圧倒的」成長中?「意識高い」系社畜を皮肉るツイートが話題に - NAVER まとめ https://t.co/Q4dOLiEKnx pic.twitter.com/6r1ried1C3
さて、次は②暇な女子大生です。
下のツイートのように、
・高学歴の大学生、社会人を相手に
・Tinderという出会い系サイトを利用し
・喰いまくって性生活を暴露する
というアカウントです。
暇な女子大生— DAI (@never_be_a_pm) August 21, 2017
「出会い系アプリTinderを使い、
高学歴のエリート男性を食べまくる、
自分の本能に従った性生活を
ツイッターで暴露し続ける姫のことです。」https://t.co/QoWxyWK5Hg pic.twitter.com/KR1EgCmCiS
処理の流れ
処理の流れとしては、
1. Twitter APIに登録
2. Twitterのアクセストークンなどを取得
3. TwitteRをインストール
4. MeCab(日本語の形態素分析ツール)のインストール
5. ツイートの取得
6. Wordcloudで出力
という感じです。それでは早速。
まず初めに、https://apps.twitter.com/からTwitter ID、アクセストークンを取得します。なお事前に電話番号を取得しないとアプリを作成できないので登録しておくこと。
そして上記サイトから、以下4点を確認し、メモっておいてください。
1. consumerKey
2. consumerSecret
3. accsssToken
4. accessSecret
RでTwitter APIを利用
次にTwitterでログインするためのパッケージをインストールします。
install.packages("twitteR")
library(twitteR)
install.packages("ROuth")
library(ROAuth)
そして各種キーをセットし認証します。
consumerKey <- "Consumer Key (API Key)を入力"
consumerSecret <- "Consumer Secret (API Secret)を入力"
accessToken <- "Access Tokenを入力"
accessSecret <- "Access Token Secretを入力"
setup_twitter_oauth(consumerKey, consumerSecret, accessToken, accessSecret)
これでログインできます。さて、早速東京ちんこ倶楽部氏のツイートを取得します。
TwitteRの利用
#過去2000件のツイートを分析
tweets <- userTimeline("tokyoxxxclub", n = 2000)
#データフレームに変換し、テキスト部分だけを指定しツイートを取得
tweets <- twListToDF(tweets) #これでデータフレームにできます
tweets <- tweets$text #テキストデータだけ取得します
#テキスト変換
write.table(tweets,"tweets.txt") #一時的にテキストデータに保存します
RMeCab, dplyr, wordcloud, RColorBrewer, tm をまとめてインストール
install.packages("RMeCab", repos = "http://rmecab.jp/R")
library(RMeCab)
install.packages("dplyr")
library(dplyr)
install.packages("workcloud")
library(wordcloud)
install.packages("RColorBrewer")
library( RColorBrewer )
install.packages("tm", dependencies=TRUE)
library(tm)
日本語テキストの解析用に、パッケージ「RMeCab」を呼び出し、名刺、形容詞、動詞のみ抽出
tweetsFrq <- RMeCabFreq("tweets.txt")
tweetsFrq2 <- tweetsFrq %>% filter(Freq>10&Freq<400, Info1 %in% c("名詞"), Info2 != "数")
#URLや@などを削除
tweetsFrq2 <- gsub("^RT\\s@[0-9a-zA-Z\\._]*:\\s+","",tweetsFrq2 )
tweetsFrq2 <- gsub("https?://t.co/[0-9a-zA-Z\\._]*","",tweetsFrq2 )
wordcloud上に表示
wordcloud(tweetsFrq$Term,tweetsFrq$Freq,random.order=FALSE,
color=rainbow(5),random.color=FALSE,scale=c(3,1),min.freq=10)
さて、ここまでの流れで、東京ちんこ倶楽部氏のツイートで頻繁につぶやかれている言葉を確認できました。
東京ちんこ倶楽部さんについてはこちらのnaverまとめを参照。— DAI (@never_be_a_pm) August 21, 2017
「以下のワードが頻発するのが特徴
・圧倒的
・成長
・エリート」
人気も「圧倒的」成長中?「意識高い」系社畜を皮肉るツイートが話題に - NAVER まとめ https://t.co/Q4dOLiEKnx pic.twitter.com/6r1ried1C3
@tokyoxxxclub 氏の過去3200ツイートの中から、何度かつぶやかれたツイートを分析。その結果— DAI (@never_be_a_pm) August 21, 2017
・ロックンロール
・残業
・圧倒的成長
・出勤
・グローバル
等のちんぽ語が検出されました。これからも応援しています。 pic.twitter.com/FftFxUbAxV
といった感じに、単語を見ると「そういえばこのアカウントこの言葉めっちゃつぶやいているなぁ」なんて言葉が出てきます。
同じ処理で暇な女子大生を分析してみたところ.....
@bored_jd 暇な女子大生氏の過去3200ツイートのテキスト分析の結果— DAI (@never_be_a_pm) August 21, 2017
・ちんぽ
・ドカタ
・エリート
・キュン
・東大 / 早稲田 /慶応 / 医者 / 高学歴 / 金融
・Tinder
・ナンパ
・早漏 / 射精 / 挿入
とても彼女をよく表している言葉が出てきた。 pic.twitter.com/CiObT98n7T
といった言葉が出現しました。おおよそアカウントに関係する言葉が出てきたと思われます。
東京ちんこ倶楽部語、暇な女子大生語で話したい人は、下の画像をみて勉強してみてください。(1枚目が東京ちんこ倶楽部、2枚目が暇な女子大生。ちんぽの利用度が非常に多いことがわかります。)
>スポンサーリンク