見出し画像

Twitter上の「人工地震」に関する情報拡散について

●初めに

3/16夜11時、東北地方で大きな地震がありました。
このたびの災害により被災された皆様、ならびにそのご家族の皆様に心よりお見舞い申し上げます。
以前の震災を思い出してストレスになってしまったり、余震の心配があったり、不安な日々が続いているかと存じます。
一刻も早く落ち着き、安心できるよう、心よりお祈り申し上げます。

先日、Twitter情報検証ツールに関するnoteを作成いたしました。

今回、地震直後より「人工地震」であるというツイート・リツイートが多く見られました。その内容は下記ニュース記事等で専門家によって否定されておりますが、残念ながら被災者の方の情報収集を妨げ、不安を煽るものとなっています。

この件について、先日のnoteの手法を用いて「人工地震」を含むツイートを取得し、どのようなアカウントが情報を拡散しているか、リツイートしているかを検証するための実践例を示します。

●データについて

3/17朝6時に「人工地震 OR #人工地震 」のワードを含むツイート取得しました。

# load package
if(!require("tidyverse")){
  install.packages("tidyverse", dependencies = TRUE)
  library("tidyverse")
}
if(!require("rtweet")){
  install.packages("rtweet", dependencies = TRUE)
  library("rtweet")
}
if(!require("remotes")){
  install.packages("remotes", dependencies = TRUE)
  library("remotes")
}
if(!require("twinetverse")){
  remotes::install_github("JohnCoene/twinetverse")
  library("twinetverse")
}
if(!require("lubridate")){
  install.packages("lubridate", dependencies = TRUE)
  library("lubridate")
}
if(!require("scales")){
  install.packages("scales", dependencies = TRUE)
  library("scales")
}
# set token if you need
twitter_token <- create_token(app = "", # app_name
                              consumer_key = "", #Consumer Key
                              consumer_secret = "", #Consumer Secret
                              access_token = "", 
                              access_secret = "")
# Get today's date and time
today <- Sys.Date()
now <- Sys.time()
ti <- format(now, "%H%M%S")

# set search_word
x <- "人工地震 OR #人工地震" 
# Number of tweets acquired
n <- 18000

# Retrieving Tweets
tweet_data <- search_tweets(x, 
                            n = n, 
                            retryonratelimit = TRUE, # If you get less than 18000 tweets, set it to FALSE.
                            include_rts =TRUE # Set TRUE if you want to include retweets.
)

# save data as csv
write_as_csv(tweet_data,
             paste(today, "_", x, "_tweettxt.csv",sep = ""), 
             fileEncoding = "UTF-8")

23時から7時間でツイートとリツイートは約1万ありました。
ツイートおよびリツイートの頻度は以下の通りでした。

午後23時の地震後にたくさんのツイートとリツイートがあったことが分かります。

●どんな風に拡散している?

早期の拡散について検証するため、地震発生時の23時37分から40分間のリツイート1000件を取り出してネットワーク分析を行いました。

# network
tweet_jst <- tweet_data %>% 
  mutate(created_at = ymd_hms(created_at) + 32400) %>% 
  filter(created_at > ymd_hms("2022-3-16 23:36:00")) %>% 
  filter(is_retweet == TRUE) %>% 
  arrange(created_at) %>% 
  slice(1:1000)

net <- tweet_jst %>% 
  gt_edges(screen_name, mentions_screen_name, created_at) %>% 
  gt_nodes() %>% 
  gt_dyn() %>% 
  gt_collect()

c(edges, nodes) %<-% net # unpack
nodes <- nodes2sg(nodes)
edges <- edges %>% 
  mutate(
    id = 1:n(),
    created_at = as.numeric(created_at),
    created_at = (created_at - min(created_at)) / (max(created_at) - min(created_at)),
    created_at = created_at * 10000
  ) %>% 
  select(id, source, target, created_at)

nodes <- sg_get_layout(nodes, edges, layout = igraph::layout_components)

sigmajs(height = "1200px") %>% 
  sg_nodes(nodes, id, size, label, x, y) %>%
  sg_add_edges(edges, created_at, id, source, target, cumsum = FALSE, refresh = TRUE) %>% 
  sg_settings(
    defaultNodeColor = "#127ba3",
    edgeColor = "default",
    defaultEdgeColor = "#d3d3d3",
    minNodeSize = 2,
    maxNodeSize = 8,
    minEdgeSize = 0.3,
    maxEdgeSize = 1.5
  )

このようなネットワークとなりました。
一部説明を追加していますが、説明のない部分はほぼ人工地震である旨を肯定し、広めるアカウントです。
全体のうち反論している人は少ない印象です。
本ネットワークは地震後40分の短期的なツイートの分析であるため、科学的検証を要する反論よりも、不安を煽るセンセーショナルな言説の方が広がりやすいことが影響していると考えられます。
大きな点はリツイート数が多いアカウントであり、地震直後にどのアカウントが拡散に寄与したかを可視化・リスト化することができます。
(アカウント名の明示は避けます)

また、上記コードをRで使用すると、時間経過でリツイートがどのように拡散しているかを動画で表示することができます。より詳細に拡散の時系列で誰がどのように寄与しているかを可視化することができます。

●リツイートしているのはどんな人か

リツイートしている人はどんな人なのか、どんな言葉をプロフィール欄に使っているのかを調べます。
リツイートしている6901アカウントのプロフィール欄を抽出し、KH-coderで共起ネットワーク分析します。

tweet_desc <- tweet_data %>% 
  mutate(created_at = ymd_hms(created_at) + 32400) %>% 
  filter(created_at > ymd_hms("2022-3-16 23:36:00")) %>% 
  distinct(user_id, .keep_all = TRUE) %>% 
  select(description)
write.csv(tweet_desc, "desc.csv", fileEncoding = "CP932")

円の大きさが単語の出現頻度、線で繋がれているのは同時に出現しやすい単語を示します。
マスクやワクチンに反対する方、真実を知ってしまった方、日本人を目覚めさせたい方、RAPT…等々、いわゆる陰謀論系、また新興宗教系の言葉をプロフィールに使っている方が「人工地震」についてのツイートをリツイートしており、拡散していることが分かります。

●終わりに

大きな災害が起こった際の、Twitterにおけるデマ情報拡散の分析例を書かせていただきました。
被災された方、今も不安な気持ちでいる方がいらっしゃる中で、本件は分析の題材としては不適切かもしれません。

しかし、私自身、東日本大震災の被災者であり、当時多くの不安と喪失を感じました。
そして今、数多くの知人が大変な思いをしており、不安な気持ちを抱えています。
意図的であるかどうかに関わらず不安を煽る情報の拡散が、被災者の方々の役に立ち、癒しとなることは決してありません。

本記事で示したように、情報の拡散に携わった人々のデータは残り、後から検証され、妥当性の評価が可能です。
NHKの記事の中にもありましたが、リツイートはどうか慎重に、不安の拡散に寄与することのないよう、誰かを傷つけることのないようにしていただければと存じます。
必ず、誰かが見ています。

不安の中にいる方が、一刻も早く安心できる日常に戻れますように。

万が一サポート、感想、コメント、分析等のご相談などございましたらお気軽に。