【大數(shù)據(jù)部落】R語言對推特twitter數(shù)據(jù)進(jìn)行文本情感分析
原文鏈接:http://tecdat.cn/?p=4012
原文出處:拓端數(shù)據(jù)部落公眾號
?
?
我們以R語言抓取的推特?cái)?shù)據(jù)為例,對數(shù)據(jù)進(jìn)行文本挖掘,進(jìn)一步進(jìn)行情感分析,從而得到很多有趣的信息。
找到推特來源是蘋果手機(jī)或者安卓手機(jī)的樣本,清理掉其他來源的樣本。
tweets <-tweets_df>%select(id, statusSource, text, created) %>%
extract(statusSource, "source", "Twitter for (.*?)<")>%filter(source %in%c("iPhone", "Android"))
對數(shù)據(jù)進(jìn)行可視化計(jì)算不同時間對應(yīng)的推特比例.。
并且對比安卓手機(jī)和蘋果手機(jī)上的推特?cái)?shù)量的區(qū)別。

從對比圖中我們可以發(fā)現(xiàn),安卓手機(jī)和蘋果手機(jī)發(fā)布推特的時間有顯著的差別,安卓手機(jī)傾向于在5點(diǎn)到10點(diǎn)之間發(fā)布推特,而蘋果手機(jī)一般在10點(diǎn)到20點(diǎn)左右發(fā)布推特。同時我們也可以看到,安卓手機(jī)發(fā)布推特?cái)?shù)量的比例要高于蘋果手機(jī)。
然后查看推特中是否含有引用 ,并且對比不同平臺上的數(shù)量。
ggplot(aes(source, n, fill = quoted)) +
geom_bar(stat ="identity", position ="dodge") +
labs(x ="", y ="Number of tweets", fill ="")

從對比的結(jié)果來看,安卓手機(jī)沒有被引用的比例要明顯低于蘋果手機(jī)。而安卓手機(jī)引用的數(shù)量要明顯大于蘋果手機(jī)。因此可以認(rèn)為,蘋果手機(jī)發(fā)的推特內(nèi)容大多為原創(chuàng),而安卓手機(jī)大多為引用。
然后查看推特中是否有鏈接或者圖片,并且對比不同平臺的情況。
ggplot(tweet_picture_counts, aes(source, n, fill = picture)) +
geom_bar(stat ="identity", position ="dodge") +
labs(x ="",

從上面的對比圖中,我們可以看到安卓手機(jī)沒有圖片或者鏈接的情況要多于蘋果,也就是說,使用蘋果手機(jī)的用戶在發(fā)推特的時候一般會發(fā)布照片或者鏈接。
同時可以看到安卓平臺的用戶把推特一般不使用圖片或者鏈接,而蘋果手機(jī)的用戶恰恰相反。
spr <-tweet_picture_counts>%spread(source, n) %>%
mutate_each(funs(. /sum(.)), Android, iPhone)
rr <-spr$iPhone[2] /spr$Android[2]
然后我們對推特中的異常字符進(jìn)行檢測,并且進(jìn)行刪除然后找到推特中關(guān)鍵詞,并且按照數(shù)量進(jìn)行排序
reg <- "([^A-Za-z\\d#@']|'(?![A-Za-z\\d#@]))
"tweet_words <-tweets>%filter(!str_detect(text, '^"')) %>%m
utate(text =str_replace_all(text, "https://t.co/[A-Za-z\\d]+|&", "")) %>%
unnest_tokens(word, text, token ="regex", pattern = reg) %>%
filter(!word %in%stop_words$word,str_detect(word, "[a-z]"))
tweet_words %>%count(word, sort =TRUE) %>%head(20) %>%
mutate(word =reorder(word, n)) %>%ggplot(aes(word, n)) +geom_b
對數(shù)據(jù)進(jìn)行情感分析,并且計(jì)算安卓和蘋果手機(jī)的相對影響比例。
通過特征詞情感傾向分別計(jì)算不同平臺的情感比,并且進(jìn)行可視化。

在統(tǒng)計(jì)出不同情感傾向的詞的數(shù)量之后,繪制他們的置信區(qū)間。從上面的圖中可以看到,相比于蘋果手機(jī),安卓手機(jī)的負(fù)面情緒最多,其次是厭惡,然后是悲傷。表達(dá)積極的情感傾向很少。
然后我們對每個情感類別中出現(xiàn)的關(guān)鍵詞的數(shù)量進(jìn)行統(tǒng)計(jì)。
android_iphone_ratios %>%inner_join(nrc, by ="word") %>%
filter(!sentiment %in%c("positive", "negative")) %>%
mutate(sentiment =reorder(sentiment, -logratio),word =reorder(word, -logratio)) %>%

從結(jié)果中我們可以看到,負(fù)面詞大多出現(xiàn)在安卓手機(jī)上,而蘋果手機(jī)上出現(xiàn)的負(fù)面詞的數(shù)量要遠(yuǎn)遠(yuǎn)小于安卓平臺上的數(shù)量。

最受歡迎的見解
1.數(shù)據(jù)類崗位需求的數(shù)據(jù)面
2.探析大數(shù)據(jù)期刊文章研究熱點(diǎn)
3.機(jī)器學(xué)習(xí)助推快時尚精準(zhǔn)銷售預(yù)測
4.用機(jī)器學(xué)習(xí)識別不斷變化的股市狀況—隱馬爾科夫模型(HMM)的應(yīng)用
5.數(shù)據(jù)盤點(diǎn):家電線上消費(fèi)新趨勢
6.在r語言中使用GAM(廣義相加模型)進(jìn)行電力負(fù)荷時間序列分析
7.虎撲論壇基因探秘:社群用戶行為數(shù)據(jù)洞察
8.把握出租車行駛的數(shù)據(jù)脈搏
9.智能門鎖“剁手”數(shù)據(jù)攻略