我不是唐納德·特朗普(Donald Trump)的超級粉絲。嚴格說來,我一點也不喜歡他。然而,他的個人魅力是不容忽視的,他的名字一直占據(jù)著大多數(shù)報紙和社交媒體。人們對他的態(tài)度是戲劇性的和雙邊的。他的描述詞要么是非常積極的,要么是非常消極的,對于網(wǎng)絡(luò)搜集和情感分析來說,這是一些完美的材料。
本次研究的目的主要是使用Octoparse爬蟲工具抓取Twitter上關(guān)于唐納德·特朗普的相關(guān)推文。然后,我們使用python語言進行情感分析,以此來分析公眾對總統(tǒng)的看法。最后,我們使用Tableau Public進行可視化。
本文特別適合以下人群:
1、想了解如何采集社交媒體上的內(nèi)容或者評論。
2、想了解如何利用Python進行情感分析。
首先我們打開Octoparse官網(wǎng),下載官方最新版本,并按照指示完成注冊,登錄后,再打開內(nèi)置的Twitter簡易模板。
采集的數(shù)據(jù)字段包括:
用戶名
發(fā)布時間
發(fā)布內(nèi)容
圖片鏈接
Tweet鏈接
評論數(shù),轉(zhuǎn)發(fā)數(shù),點贊數(shù)
首先在Twitter采集模板的關(guān)鍵詞參數(shù)中輸入"Donald Trump",然后點擊啟動采集就會自動采集數(shù)據(jù),正如下圖所示,很簡單,我大概采集了1萬多條Twitter推文,你可以盡可能多的輸入關(guān)鍵詞,從而采集更多的推文,采集到推文數(shù)據(jù)后,將數(shù)據(jù)導(dǎo)出為文本文件,文件命名為"data.txt"。
利用Python進行情感分析
在開始之前,請確保您的電腦已經(jīng)安裝Python開發(fā)環(huán)境以及文本編輯器,我文章中使用的是Python2.7和Notepad++文本編輯器。
然后,我們使用了兩個情感關(guān)鍵詞列表組成的txt文件,來分析之前采集下來的Twitter信息,你可以在文末下載這兩個文件。
這里的想法是把txt文件中的每個情感關(guān)鍵詞提取到list列表中,然后計算這些關(guān)鍵詞在每條推文中的頻率,最后我們把相應(yīng)包含情感詞的推文給記錄下來。
首先,把兩個txt文件中的積極和消費情感關(guān)鍵詞分別存儲在plist和nlist的列表中。
然后,對采集下來的Twitter推文進行數(shù)據(jù)清洗,處理掉所有特殊符號(標(biāo)點和數(shù)字等),將每條推文數(shù)據(jù)保存到word_list列表中。
經(jīng)過數(shù)據(jù)處理后,數(shù)據(jù)只包含清洗后的推文,讓我們更易進行數(shù)據(jù)分析。后續(xù),我們會創(chuàng)建三個字典:wordcountdict,wordcountpositive,and wordcountnegative。
接下來,定義每個字典,如果在Twitter數(shù)據(jù)中出現(xiàn)相應(yīng)的推文,則增加1,并儲存到wordcountdict字典中。
接下來的話,確定每條推文是否包含積極或者消極的情感關(guān)鍵詞,如果包含了積極的情感關(guān)鍵詞,則wordcountpositive字典關(guān)鍵詞加1,否則保證一個相同的值。如果包含了消極的情感關(guān)鍵詞,wordcountnegative做相同處理。如果推文不包含任何積極或者消極關(guān)鍵詞,則不作任何處理。
情感分析:消極還是積極
通過運行上面的Python腳本,我得到了5352個消極關(guān)鍵詞以及3894個積極關(guān)鍵詞,保存在上面相應(yīng)的列表中,然后打開Tableau,建立了一個氣泡圖,如下所示。
由圖可以看出,很多積極關(guān)鍵詞都是片面的,只有404種積極關(guān)鍵詞被使用,最常見的話,例如“l(fā)ike”、“great”和“right”,大多數(shù)關(guān)鍵詞是基礎(chǔ)的并且偏口語化,如“wow”和“cool”,而使用的否定關(guān)鍵詞更加多樣化,他們大多十分正式并且高級,最常用的是“illegal”、“l(fā)ies”、“racist”。其他詞語,如“delinquent”、“inflammatory”、“hypocrites”也是經(jīng)常出現(xiàn)的。
上面關(guān)鍵詞同時也說明支持者比反對者的教育水平更低,顯然,唐納德·特朗普在推特用戶中并不受歡迎。
總結(jié):
在這篇文章中,我們談到了如何Octoparse軟件采集Twitter推文,我們還討論了如何進行數(shù)據(jù)清洗和使用Python對Twitter推文進行情感分析。對于代碼的完整版本,你可以在以下鏈接下載。
(https://gist.github.com/octoparse/fd9e0006794754edfbdaea86de5b1a51)
參考鏈接:
https://medium.com/datamonsters/text-preprocessing-in-python-steps-tools-and-examples-bf025f872908
https://www.cs.uic.edu/~liub/FBS/sentiment-analysis.html
https://github.com/jeffreybreen/twitter-sentiment-analysis-tutorial-201107/blob/master/data/opinion-lexicon-English/positive-words.txt
http://nohumanbeingisillegal.com/Home.html