大數據分析美國大選——Twitter數據情感分析

在當今這個互聯網時代,人們對於各種事情的輿論觀點都散布在各種社交網路平台或新聞提要中。我們可以在移動設備或是個人PC上輕鬆地發布自己的觀點。對於這種網上海量分布地數據,我們可以利用文本分析來挖掘各種觀點。

本次課程我們將介紹一個Twitter官方提供可用於獲得推特數據的介面,並基於此介面獲得了推特上的流式數據。在實際應用中可利用spark streaming獲得這些流式數據進行實時處理並顯現當下網友的情感狀態。

本項目由zyj061發布在實驗樓,完整教程:Twitter數據情感分析(更多大數據項目請查看大數據工程師學習路徑)

本次實驗我們利用spark mllib的隨機森林模型進行twitter的情感分析,並且利用basemap進行可視化。通過可視化結果,我們可以直觀地感受到今年美國大選的候選總統在美國各個州的受歡迎程度。

基於此課程,同學們也可以利用twitter或者微博提供的開發者介面獲取網路上的數據,對不同方面(房價、物價、交通之類)的情感進行分析。

一、課程介紹

1. 內容簡介

人們對於各種事情的輿論觀點都散布在各種社交網路平台或新聞提要中,對於這種網上海量分布地數據,我們可以利用文本分析來挖掘各種觀點。如下圖中,CognoviLabs利用Twitter上人們發布對於美國大選兩個候選人的推特,進行情感分析的結果。從這張圖我們也可以直觀地感受到民意所向(此圖發表日期為10月10日,早於今年美國大選的日子)。

圖片來源:CognoviLabs / Twitris

本次課程,我們將利用推特上的數據結合Spark MLlib實現人們對美國這兩位總統的情感分析,查看在美國不同地方的網民們對於他們的看法如何。

2. 知識點

  • Twitter數據
  • Spark MLlib情感分析
  • Python 地圖可視化工具Basemap

3. 實驗流程

  1. 獲取twitter流數據
  2. tweet數據進行情感分析
  3. 分析結果可視化

4. 效果

最終效果如下:

二、Twitter流數據

Twitter Streaming API為開發者提供了可用於獲得推特上數據的開發者介面。大家可根據Twitter Scrape中的操作獲取Twitter中有關Trump和Hillary的推特數據。

由於對Twitter的操作需要翻牆,為方便大家進行後續實驗操作,我們已將數據保存至tweets.json, donald.json及hillary.json中,json 文件地址將在後續實驗操作時給出。tweets.json包括和川普及希拉里有關的推特,而donald.json和hillary.json僅包括其文件名代表的候選人有關推特。

使用Tweepy介面獲得的推特中包含很多數據,但由於我們只關心其發表內容的情感屬性值,因此我們僅保存了其中的推特內容,及發表推特用戶所在地。 我們所使用的Twitter數據內容:

數據名數據描述polarity 該twitter的情感屬性值(0:積極,1:無感,2:消極)text 推特內容user_localtion 用戶所在地區

其中polarity的內容由python自然語言處理包 TextBlob獲得,這裡我們對textblob返回的polarity進行了特殊處理,設置polarity>0時為積極情感(polarity=0),polarity=0時為無感(polarity=1),polarity<0時為消極情緒(polarity=2)

用Spark進行情感分析,及分析結果可視化的教程可以在實驗樓查並在線練習:Twitter數據情感分析-實驗樓。項目所有源碼可在環境中獲得。

更多編程練手項目:全部課程 - 實驗樓

大數據學習路徑:大數據工程師-學習路徑

微信關注公眾號[實驗樓],手機查看海量項目教程。


推薦閱讀:

Rust 重構 Spark 框架需要做哪些準備工作?
國內哪些互聯網公司在用mesos,哪些互聯網公司在用yarn,兩者前景如何?
Spark里的DAG是怎麼回事?
Spark比Hadoop的優勢有這麼大嗎?

TAG:大数据 | Spark | 编程 |