LoginSignup
5
2

More than 3 years have passed since last update.

twinetverseでツイッターのネットワーク分析

Last updated at Posted at 2020-12-16

(2021/05/31追記)
M1macだとうまいこと入れられないかもしれない。
rtweetは普通に入る。

はじめに

ツイッターのデータを使ったネットワーク分析って最近論文とかも出てきてるけどグラフデータ準備するのめんどくさいなあって思ってたらパッケージが開発されてた(当然と言えば当然)

github:https://twinetverse.john-coene.com/
チュートリアル:https://twinetbook.john-coene.com/index.html

twinetverse

インストール

CRAN経由では落とせないぽいのでgithub経由で

devtools::install_github("JohnCoene/twinetverse") # github
devtools::install_bitbucket("JohnCoene/twinetverse") # bitbucket

これどうもrtweet / graphTweets / sigmajsも入ってるぽいのでこれ一本で分析ができます!みたいなことらしい。

ツイートの取得

この辺はrtweetなので細かいところは適当にやってしまってくだせえ。
twinetverseのチュートリアルだと自分のトークンを設定することになってるけどrtweetはもうアプリ認証経由でツイッターAPIにアクセスできるようになってるので必要ないと思う。

差し当たり大統領選の不正についてのツイートでも取得してみましょう。クエリはツイッターAPI準拠。

tweets <- search_tweets(q = "大統領 AND 不正 filter:retweets", 
                        n=500, include_rts = TRUE)

グラフの作成

取得したツイートデータからグラフデータを作成。試しに取得したデータからリツイートネットワークを作ってみます。

net <- tweets %>% #グラフデータの作成
  gt_edges(screen_name, mentions_screen_name) %>% #エッジデータを取得
  gt_nodes() %>% #ノードデータの取得
  gt_collect() # collect
lapply(net, class)

#エッジとノードを取得
c(edges, nodes) %<-% net 
##edges <- net$edges  
##nodes <- net$nodes と同じ意味を持つ

#sigmajsデータに変換
nodes <- nodes2sg(nodes)
edges <- edges2sg(edges)
sigmajs() %>% 
  sg_nodes(nodes, id, size) %>% #ノードの付加
  sg_edges(edges, id, source, target) #エッジを追加

sigmajsはどうもggplotと似たような書き方ぽい?
ノードとエッジを書き加えていくイメージ

Rplot.png

これだとこんな感じになるけど見た目がよくないので諸々を調整していく。

sigmajs() %>% 
  sg_nodes(nodes, id, label, size) %>% 
  sg_edges(edges, id, source, target) %>% 
  sg_layout(layout = igraph::layout_components) %>% 
  sg_cluster(
    colors = c(
      "#0084b4",
      "#00aced",
      "#1dcaff",
      "#c0deed"
    )
  ) %>% 
  sg_settings(
    minNodeSize = 1,
    maxNodeSize = 2.5,
    edgeColor = "default",
    defaultEdgeColor = "#d3d3d3"
  )

いろいろ調整するとこんな感じ。めっちゃみやすくなった。
他にもいろいろあるらしいのでチュートリアル読んで頑張っていきたい。

Rplot01.png

5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2