閱讀757 返回首頁    go 阿裏雲 go 技術社區[雲棲]


使用 Rodeo 分析總統候選人的推特內容

介紹

選舉季已經到來,對於每個一直在關注這些事情的人來說,這絕對是一場最瘋狂、涉及最多社交媒體、充滿戲劇性的選舉。距離最後的選舉已經不到3個月,各個州的投票結果也逐漸公示出來,我們認為是時候,通過分析候選人的演講內容,以及他們與大眾的互動情況,來了解這些候選人的競選方式了。

想要分析社交媒體上的大眾對這場選舉的看法,那麼我們從分析候選人自己的推特內容著手,這似乎是比較合理的。在查看、總結這些推特的特點後,我們的目標變為搞清楚候選人用來吸引民眾注意力的詞語是哪些。

準備工作

首先需要說明的最重要的一點是,我們使用 Rodeo 作為我們的 IDE,隨後調用推特的 API 來獲取所有推文,最後將使用 Tableau 來完成可視化部分。也就是說,我們的第一件事情是去https://www.yhat.com/products/rodeo 下載 Rodeo。接下來下一步是獲取調用推特 API 的權限,我們隻需要在 https://dev.twitter.com/ 上注冊一個 app,隨後我們就獲得了調用 API 的令牌秘鑰(token keys)。最後,我們需要去 https://www.tableau.com/Tableau-Download 下載 Tableau(對學生賬號免費)。

導入工具

使用 Rodeo 分析總統候選人的推特內容

注:你也可以使用Rodeo中的菜單操作選擇 improved package,來查找、安裝需要的包。

成為推特開發者

使用 Rodeo 分析總統候選人的推特內容

數據挖掘

經過以上步驟後,我們的第一步是對給定用戶的推特內容進行挖掘,並以一種數據友好的方式展現出來。上麵調用API的語句是會返回 JSON 格式的推特數據,為了將數據變換為我們能夠使用的數據格式,我們使用一個 for 循環來獲取讚、轉發、日期、推文內容,並用不同的列表來分別存儲它們。

使用 Rodeo 分析總統候選人的推特內容

在得到所有列表後,我們就可以將每個列表合並成一個幹淨、簡潔的數據框了。

使用 Rodeo 分析總統候選人的推特內容

使用 Rodeo 分析總統候選人的推特內容

使用這些列,我們能搞清楚,在選舉的進程中,候選人措辭方麵所發生的變化,然而考慮到我們的目標是分析推文中的關鍵詞,因此我們對候選人推文中出現的詞語總詞頻更感興趣,我們接下來將主要關注“text”列表。

數據清洗

因為“text”列表中不僅包括了大小寫字母,還包括了一些特殊的的字符,比如“@”、“:”等。毫無疑問地,這些字符會在進一步的分析引發錯誤,所以我們需要對數據進行清洗。

我們的清洗目標分為 2 步。首先,先將列表轉化為一個字符串。然後,去掉一些不是特殊字符但卻屬於格式化的單詞,比如 “WWW” 和 “http.”。

使用 Rodeo 分析總統候選人的推特內容

數據整理

到目前為止,所有推文中的句子都被分裂成了單詞,我們現在可以開始計算詞頻了。我們的首要任務是初始化一個空字典,並且往字典裏添加新單詞及其詞頻。

使用 Rodeo 分析總統候選人的推特內容

該詞典包含了所有單詞及其對應的詞頻,但裏麵仍然存在一些單詞,它們對我們的分析沒有什麼太大意義。為了解決這個問題,我們首先考慮詞頻超過給定數量(在本例中是50)的單詞,然後在這些單詞中,刪除我們認為是停止詞的單詞。

使用 Rodeo 分析總統候選人的推特內容

現在,讓我們看看 filtertrump 詞典長什麼樣子:

使用 Rodeo 分析總統候選人的推特內容

數據可視化

完成了挖掘和清洗的工作後,我們就可以進行可視化了。我們的第一張圖是一張條形圖,它畫出了川普推文中前20個最常使用單詞的分布。通過查看前20個最常用單詞的分布,這進一步阻止了任何特殊字符及無意義的單詞顯示在圖表上。

使用 Rodeo 分析總統候選人的推特內容

利用相同的方法,隻需要將前麵 for 循環裏的 screen_name 賦值為 “HillaryClinton”,我們就能找到希拉裏·克林頓推文中前 20 個最常用單詞。

使用 Rodeo 分析總統候選人的推特內容

使用 Rodeo 分析總統候選人的推特內容


結論

現在,第一張圖已經繪製完成。我們可以開始分析數據,並找出候選人之間的語言傾向和模式了。

川普的最常用詞語包括 “Hillary Clinton”,“Trump”。克林頓的最常用詞語是 “Trump”,其次則是如 “Americans”,“American”,“women”,“people” 等群體性詞語。

另外,我們能看到希拉裏的最常用詞語和川普有關,並且其詞頻幾乎三倍於其他單詞。與此同時,川普的最常用單詞都指向了克林頓,但其詞頻並沒有出現特別過分的傾斜。同樣地,我們可以看到這些候選人間的不同之處:川普更多地喜歡使用 “me” 和 “ImWithYou” 這樣的詞來談論自己;而克林頓顯得更包容一些,經常使用 “us” 和 “people” 這樣的詞。

使用 Tableau 畫出推特標簽詞雲

此外,我們可以將上文中的字典存儲起來,便於下一步使用 Tableau 來實現可視化。使用下麵的代碼,我們能將字典存儲起來:

使用 Rodeo 分析總統候選人的推特內容

一旦你運行了上麵的代碼,那麼你就可以在 Tableau 上打開這個 csv 文件,然後按下 F1 來調整顏色,按下 F2 來調整詞雲大小,從而創建出下麵的詞雲:

使用 Rodeo 分析總統候選人的推特內容

使用 Rodeo 分析總統候選人的推特內容

祝賀你!到了這一步,你已經完成了:

  1. 調用 API 來挖掘推文數據;

  2. 清洗文本成可用的格式;

  3. 對兩種不同格式的數據進行可視化;

  4. 分析候選人的語言特征。

更多課程和文章盡在微信號:「datartisan數據工匠」





====================================分割線================================


本文作者:思穎

本文轉自雷鋒網禁止二次轉載,原文鏈接

最後更新:2017-08-23 10:32:59

  上一篇:go  圖像學習之如何理解方向梯度直方圖(Histogram Of Gradient)
  下一篇:go  MXNet 0.11發布,加入動態圖接口Gluon,還有兩位CMU教授的親筆教程