Twitterデータの構成要素

Rで学ぶソーシャルメディアデータ分析

Sowmya Vivek

Data Science Coach

レッスン概要

  • TwitterのJSON概要
  • JSONからメタデータ要素を抽出
  • 要素を用いてインサイトを得る
Rで学ぶソーシャルメディアデータ分析

Twitter JSON

  • 1件のツイートに150超のメタデータ要素
  • ツイートと要素はJSON(JavaScript Object Notation)で返される
Rで学ぶソーシャルメディアデータ分析

JSONの属性と値

  • ツイートや要素を記述する属性と値
  • 例: screen_name はユーザーのTwitterハンドルを保持

Twitter JSONの属性と値

Rで学ぶソーシャルメディアデータ分析

JSONをデータフレームへ変換

  • rtweet ライブラリでTwitter JSONをデータフレーム化
  • 属性名と値は列名と値に変換

JSON属性をデータフレーム列へ変換

Rで学ぶソーシャルメディアデータ分析

ツイート構成の表示

# search_tweets() で「#brexit」のツイートを取得
tweets_df <- search_tweets("#brexit")
# 列名を確認
names(tweets_df)
Rで学ぶソーシャルメディアデータ分析

ツイート構成の表示

ツイートの構成要素

Rで学ぶソーシャルメディアデータ分析

構成要素の探索

  • screen_name: ユーザー関心の把握
  • followers_count: 影響力の比較
  • retweet_counttext: 人気ツイートの特定
Rで学ぶソーシャルメディアデータ分析

ユーザー関心と投稿数

  • screen_name はTwitterハンドル
  • 投稿数はトピック関心を示す指標
  • 関心ユーザーに商品の訴求が可能
Rで学ぶソーシャルメディアデータ分析

ユーザー関心と投稿数

# search_tweets() で「#Arsenal」のツイートを取得
twts_arsnl <- search_tweets("#Arsenal", n = 18000)
# ユーザーごとの投稿数テーブルを作成
sc_name <- table(twts_arsnl$screen_name)
head(sc_name)
_____today_____   ___JJ23    ___SAbI__   __ambell   __Amzo__     __bobbysingh 
       1               2          3           1         1               1
Rで学ぶソーシャルメディアデータ分析

ユーザー関心と投稿数

# 投稿数の降順でソート
sc_name_sort <- sort(sc_name, decreasing = TRUE)
# 上位6ユーザーと頻度を表示
head(sc_name_sort)
 _whatthesport  footy90com  Official_ATG1   TheShortFuse   RubellM   ArsenalZone_Ind 
      176           90            88             53           48            43
Rで学ぶソーシャルメディアデータ分析

フォロワー数

  • アカウントのフォロワー数
  • 人気度を示す指標
  • SNSでの影響力の尺度
  • 人気アカウントで広告露出を最大化
Rで学ぶソーシャルメディアデータ分析

フォロワー数の比較

# lookup_users() でユーザーデータを取得
tvseries <- lookup_users("GameOfThrones", "fleabag", "BreakingBad")
# screen_name と followers_count 列のデータフレームを作成
user_df <- tvseries[,c("screen_name","followers_count")]
Rで学ぶソーシャルメディアデータ分析

フォロワー数の比較

# フォロワー数を表示して比較
user_df
screen_name        followers_count
<chr>                   <int>
GameOfThrones          8597188            
fleabag                  58727            
BreakingBad            1240349
Rで学ぶソーシャルメディアデータ分析

リツイート数と人気ツイート

  • リツイートは他者が再共有したツイート
  • retweet_count はリツイート数を保持
  • リツイート数でトレンドを把握
  • 人気リツイートでブランドを訴求
Rで学ぶソーシャルメディアデータ分析

リツイート数と人気ツイート

# ツイート本文とリツイート数のデータフレームを作成
rtwt <- tweets_arsenal[,c("text", "retweet_count")]
# リツイート数の降順でソート
library(dplyr)
rtwt_sort <- arrange(rtwt, desc(retweet_count))
Rで学ぶソーシャルメディアデータ分析

リツイート数と人気ツイート

# 重複する本文を除外
rtwt_unique <- unique(rtwt_sort, by = "text")
Rで学ぶソーシャルメディアデータ分析

リツイート数と人気ツイート

# 最多リツイートのユニーク投稿 上位6件を表示
head(rtwt_unique)
retweet_count                text
<int>                        <chr>
5606            Once a Gunner, Always a Gunner. We are proud of you @alexanderiwob
3764            Emirates on Fire 🔥🔥🔥🔥 Never give up Gunners💪🏽💪🏽💪🏽 #Arsenal #CO
2798            That mood tonight ⚡️⚡️⚡️ 3️⃣ POINTS 🔴⚪️ #Arsenal #Gunners #COYG h
2741            #Arsenal fan: "I reckon we'll win the League this season." @Robbie
1687            Auba 😭😭😍😍 This is what I call happiness #aubameyang #arsenal
1166            When sky sports introduced the new Monday night football! The Sha
Rで学ぶソーシャルメディアデータ分析

Let's practice!

Rで学ぶソーシャルメディアデータ分析

Preparing Video For Download...