Twitter analysis�
主辦單位:
台大新聞研究所
教育部UFO人文社會與科技前瞻人才培育計畫
協辦單位:
台大社科院行為與資料科學研究中心
台大人口與性別研究中心
台大多媒體製作中心
資料新聞
工作坊
The workshop
教育部UFO人文社會與科技前瞻人才培育計畫�
網路資通科技變遷下的媒體知能、民主素養與公民意識:
從資訊跨域人才培育到實踐
科技發展對新聞媒體產業的影響
1990
2000
2010
2020
2030
1988�報業解禁
1998 Google
2008 臉書開心農場
2009/12/09 蘋果新聞粉絲專頁
1999 聯合新聞網
1998 奇摩新聞
2010/01/07 聯合新聞網粉絲專頁
2014/12 聯合新聞網LINE
2012/02 LINE台灣
2018 事實查核中心
小報、假訊息
自發、封閉社群
事實查核
大數據視野與能力
因果與模式思考
語言與認知
媒體知能與素養
民主素養與公民意識
總整與�行動
網絡互動探察
社會實踐
語言所�資訊跨域學程
新聞所
資訊跨域學程
經濟系
資訊跨域學程
網路資通科技對媒體知能、�公民意識、民主素養的影響
工作坊相關的計畫執行方針
訓練人社領域的科技前瞻人才
學生能有學 → 做 → 實際解決問題 → 帶人解決問題的能力
教材教法研擬與推廣 → 從校園走向社會(所以你在這邊)
總整課程�Capstones
資料行動�Data activism
計算與傳播研究中心
黑客松
大專生論文
行為與資料研究中心
協助公部門、產業界進行分析
公部門�產業界
提升
學生
動機
微軟業務部
課程�聯展
媒體
資料新聞工作坊
實驗�媒體
線上�教材
專書�出版
研討會
助教�培育
資料�新聞
工作坊
工作坊議程
09:30~10:20 謝吉隆 開場、工作坊說明、R語言速遊�10:40~11:30 許家瑜 探索性分析:使用dplyr套件11:40~12:30 許家瑜 萃取並分析香港反佔中事件相關tweets
Lunch break
13:30~14:20 謝吉隆 社會網絡分析方法簡介 → 咖啡+茶水�14:40~15:30 吳冠賢 網絡分析與視覺化�15:30~16:00 謝吉隆 網絡分析結果的詮釋與結語
預習課程後的實戰
資料基礎操作
認識Twitter資料
需結合領域知識
來看看程式能做什麼
人口與性別研究中心�熱情讚助
經濟系跨域�資料科學與社會研究
新聞所跨域與計算傳播�新聞與數位創作
政治系、國發所、社會系�大數據分析與文字探勘
「計算社會科學」:社科院「跨域資訊科技人才培育」
語言所跨域�語言、資訊與認知
文學院
資料科學與社會研究 (R)
新聞資料分析 (R)
大數據分析專題 (R)
R語言與資料科學導論 (語言)
社會科學程式設計 (Python)
經濟系林明仁
新聞所謝吉隆
新聞所謝吉隆
新聞所劉好迪
政治系張祐宗
國發所鄧志松
語言所謝舒凱
社群媒介輿論分析
社會科學程式設計 (Python)
總整課程
資訊跨域基礎
總整、實作
R語言與文字探勘:公共議題 (政治)
網路時代的政治傳播 (理論/程式)
語言、計算與認知導論 (語言)
媒介社會學、大眾傳播理論 (理論)
Python 程式寫作與文本分析 (國發)
社群媒體與社會網絡分析 (程式)
社會與經濟網絡分析專題 (政治)
政策網絡與社會網絡分析 (政治)
社會網絡專題 (社會)
社會網絡分析專題 (圖資)
文字探勘�計算語言學
社會網絡
經統建模
經濟學原理 (原理與模型)
計量經濟學 (程式)
人文學群的 Python 程式設計 (語言)
計算語意學 (語言)
計算語言學專題研究 (語言)
應用個體經濟學 (程式)
計量經濟理論(數據與模型)
資料行動 Data activism
跨域專題製作 / 業界實習
傳播、媒介與政治
文字與語言
網絡分析
經統建模
資訊基礎
Topics and Skills mapping
語言與資料格式
網頁爬蟲
資料探索與視覺化
文字處理與探勘
統計與機器學習
課程概述與程式環境
R語言與邏輯
讀取CSV
讀取JSON
dplyr套件
dplyr套件
選題:資料庫
產假支薪:長條圖
台北市竊盜統計
AirIndex, Youbike
租屋網, 線上新聞
線上新聞, PTT, ibon
內政部人口統計資料
Trump tweets
早、近期風災新聞
PTT網軍偵測
臉書按讚
鉅亨網、股價
類別資料視覺化
ggplot2、地圖
ggplot2: 計數與類別
英文斷詞
中文斷詞
字詞特徵選取
詞嵌入模型
類別資料統計
Chi-square、回歸
t檢定
t-SNE, PCA, KMean
Logistic Regression
DT, RF, SVM
Final Project
地圖視覺化
讀取JSON
類別計數與交叉分析
HTML檔剖析
網絡視覺化
選題:社會網絡分析
591租屋資料
選題:RShiny互動
厭女文本觀察
基礎
獲取彙整
分析
實作
Linear regression
ggraph: 網絡視覺化
主題分析模型
Using Google sheet
Using Tableau
The topic: Twitter
�We are disclosing a significant state-backed information operation focused on the situation in Hong Kong, specifically the protest movement and their calls for political change.
This disclosure consists of 936 accounts originating from ... China .... Overall, these accounts ... attempting to sow political discord in Hong Kong, ..., we have reliable evidence to support that this is a coordinated state-backed operation. Specifically, we identified large clusters of accounts behaving in a coordinated manner to amplify messages related to the Hong Kong protests.
組織性、協調性的�訊息操作
香港反送中相關
... these accounts accessed Twitter using VPNs. However, some ... from specific unblocked IP addresses originating in mainland China. The accounts we are sharing today represent the most active portions of this campaign; a larger, spammy network of approximately 200,000 accounts — many created following our initial suspensions — were proactively suspended before they were substantially active on the service.
... violations of our platform manipulation policies, ... define as:
看似容易,也是偵測假新聞常用手段,但不是平台方,可能會證據不全
20萬帳號的活躍核心成員,大部分帳號在還沒活動前就被停用了
數據上可偵測
平台方才有辦法偵測
被刪帳戶之資料特性
二十萬帳戶網絡中的936個活躍帳戶,但抽取基準為何不明確。是根據帳戶資訊?VPN?又是根據什麼樣的特徵和行為?(給了936個帳戶及其歷史發文內容)
帳戶被認為涉及香港反送中的相關訊息操作,但發文內容可能包山包海,不侷限在反送中主題。有可能帳號之前是別人用,最近才被買走。
Twitter官方偵測重點為發佈垃圾訊息、有組織、協調性的操作和特殊行為。透過VPN的偵測可能會誤判。
資料分析如何開始?
了解資料的特性:開放資料、統計資料、社群資料
形成假設並逐一驗證 → 構思可能的故事線
社群資料的特性
When and Where, Who do What to Whom�什麼時候、在什麼地方、誰對誰做了什麼事。
E.g., liyiyiyu RT @feituji1994�liyuyuyu將feituji1994的這則推特RT回自己的timeline
行為:RT(Retweet)�相當於臉書的轉發分享
形成假設並逐一驗證
形成假設並逐一驗證
被刪帳戶什麼時候建立的?國籍?所用語言為何?
被刪帳戶在哪些時期的發文特別多?是否與事件相關?
發了多少哪些反送中的推特?時間軸的特徵為何?內文主題為何?數量特徵為何(可參考READr文章)?
資料中發文語言是否有所變化?
被刪帳戶在個人與小群體的社群結構上有何特徵?可否呈現是組織性、協調性的操作?
他們的粉絲和他們Follow的人,和一般群眾有何不同?
網絡的互動結構為何?
READr (2019-09-18)【Twitter 大戰中國網軍】剖析網軍互動!長期低度使用、蹭熱點、小夥伴支援
Retweet
Part I: R basic
Review of R basic
個人註解區塊
程式碼區塊
程式碼內的註解
執行整個區塊的程式碼
Basic
Variable 變項、變數(後面沒跟小括號、不是數字、沒雙引號的)
a <- c(1, 2, 3, 4, 5) # numeric vector
b <- c(3, 4, 5, 6, 7) # numeric vector
d <- a + b
Assignment 將右方的物件指給(Assign)給左方的變項
users_1 <- users_1 %>%
select(user_screen_name, account_creation_date, account_language)
Basic
head() 取出前六列出來觀察
View() 開啟表格出來觀察�tweets_1 %>% � mutate(year = year(tweet_time)) %>%� count(year, account_language, tweet_language) %>% View
Pipeline
View(users_1)
users_1 %>% View()
View(head(users_1))
users_1 %>% head %>% View
glimpse(users_1)
users_1 %>% glimpse()
new_variable <- tweets_1 %>%
mutate(userid = as.character(userid)) %>%
mutate(nword = nchar(tweet_text)) %>%
filter(nword > 20)
�temp1 <- mutate(tweets_1, userid = as.character(userid))
temp2 <- mutate(temp1, nword = nchar(tweet_text)) %>%
new_variable <- filter(temp2, nword > 20)
dplyr 十分善於操作類表格資料
select() 選取直欄、變項
filter() 根據變項的條件篩選資料列
mutate() 根據某些變項的操作產生新變項
count() 根據某些變項計算出現次數:例如各種語言的tweet各有幾個?
dplyr
select() 選取必要的欄col,也就是變數、變項variable
users_1 <- users_1 %>%
select(user_screen_name, account_creation_date, account_language)
�
�filter() 篩出符合條件的列row、資料項、觀察值Observation�
users_1 %>%
filter(account_creation_date > as.Date("2018-12-31"))
tweets_1 %>%
filter(str_detect(tweet_text, "RT @")) %>% dim
dplyr II
mutate() 在該dataframe中,從其他變項產生新的變項
new_variable <- tweets_1 %>%
mutate(userid = as.character(userid)) %>%
mutate(nword = nchar(tweet_text)) %>%
filter(nword > 20)
count() 根據某個變項計算出現次數,會產生一個新變項n��users_1 %>%
count(account_language, sort = T)
users_1 %>%
count(follower_count > 0)
users_1 %>%
count(following_count > mean(following_count)) %>% View
ggplot2
tweets_1 %>%
mutate(month = floor_date(tweet_time, unit = "month")) %>%
count(month) %>%
ggplot() +
aes(as.Date(month), n) +
# geom_line(color = "royalblue") +
geom_area(fill = "royalblue") +
# geom_step(color = "royalblue") +
bbc_style() +
geom_vline(xintercept = as.Date(c("2019-01-01")),
color="red", alpha=0.5)
會產生一個n的變項
從這行開始繪圖
指定x、y軸變項
指定要畫什麼圖
其他的參數們
geom_line()
geom_area()
geom_step()
Preview Part II & III
Part II preview
Part III preview
Part I & II ending
Furthermore
Account creation date
Tweet language count
Tweet language sample
Tweet language count by users
Tweet language by month
中文tweet在2017近年大增�
這些被刪帳號的tweet中,有些語言很久以前就沒再用過
Language
of hk-related account
n = 104, �similar to READr’s n = 105
Network analysis
Final Recaps
Morning 探索性分析
帳號販賣的證據
早期的tweets僅用以了解每個帳號的過去,所以會呈現早期的tweet都是連續是某一個帳號的紀錄。就這些帳號以前可能都是屬於不同的人,各做各的事,所以推文都發生在不同的時間區段。
若這些被刪帳號的人都是這個帳號的原本擁有者,沒道理說,這些人過去沒什麼交集。
Afternoon 網絡分析
關於資料新聞產製
生產線不必人人會寫程式,但需要了解資料處理流程,提出可能的疑點,且資料分析需要有高負責標準
關於程式語言
在不使用機器學習與深度學習的狀況下,R在視覺化與資料操作的想像上十分具有優勢,寫作方法固定,尤其適合初學者
R可以處理大量的資料(3百多萬則的tweets)
Thanks
相關計畫目標
透過跨域知識學習從來了解新聞與線上輿論、政治傳播等以培養媒體素養與民主知能
透過資料分析實作來理解新聞、輿論現象背後的動機、認知、與結構因素
透過跨域進階分析方法來深化觀察問題的視角與洞察問題的成因
傳播理論�多元文化�政治傳播
資訊跨域課程
含R與Python
每年共10門400人次
經濟計量
網絡分析
自然語言處理、文字探勘
機器學習