R語(yǔ)言對(duì)推特twitter數(shù)據(jù)進(jìn)行文本情感分析|附代碼數(shù)據(jù)
原文鏈接:http://tecdat.cn/?p=4012
最近我們被客戶要求撰寫關(guān)于文本情感分析的研究報(bào)告,包括一些圖形和統(tǒng)計(jì)輸出。
我們以R語(yǔ)言抓取的推特?cái)?shù)據(jù)為例,對(duì)數(shù)據(jù)進(jìn)行文本挖掘,進(jìn)一步進(jìn)行情感分析,從而得到很多有趣的信息
找到推特來(lái)源是蘋果手機(jī)或者安卓手機(jī)的樣本,清理掉其他來(lái)源的樣本。
tweets <-tweets_df>%select(id, statusSource, text, created) %>%
extract(statusSource, "source", "Twitter for (.*?)<")>%filter(source %in%c("iPhone", "Android"))
對(duì)數(shù)據(jù)進(jìn)行可視化計(jì)算不同時(shí)間對(duì)應(yīng)的推特比例.。
并且對(duì)比安卓手機(jī)和蘋果手機(jī)上的推特?cái)?shù)量的區(qū)別。

從對(duì)比圖中我們可以發(fā)現(xiàn),安卓手機(jī)和蘋果手機(jī)發(fā)布推特的時(shí)間有顯著的差別,安卓手機(jī)傾向于在5點(diǎn)到10點(diǎn)之間發(fā)布推特,而蘋果手機(jī)一般在10點(diǎn)到20點(diǎn)左右發(fā)布推特。同時(shí)我們也可以看到,安卓手機(jī)發(fā)布推特?cái)?shù)量的比例要高于蘋果手機(jī)。
點(diǎn)擊標(biāo)題查閱往期內(nèi)容

NLP自然語(yǔ)言處理—主題模型LDA案例:挖掘人民網(wǎng)留言板文本數(shù)據(jù)

左右滑動(dòng)查看更多

01

02

03

04

然后查看推特中是否含有引用 ,并且對(duì)比不同平臺(tái)上的數(shù)量。
ggplot(aes(source, n, fill = quoted)) +
geom_bar(stat ="identity", position ="dodge") +
labs(x ="", y ="Number of tweets", fill ="")

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

從上面的對(duì)比圖中,我們可以看到安卓手機(jī)沒(méi)有圖片或者鏈接的情況要多于蘋果,也就是說(shuō),使用蘋果手機(jī)的用戶在發(fā)推特的時(shí)候一般會(huì)發(fā)布照片或者鏈接。
同時(shí)可以看到安卓平臺(tái)的用戶把推特一般不使用圖片或者鏈接,而蘋果手機(jī)的用戶恰恰相反。
spr <-tweet_picture_counts>%spread(source, n) %>%mutate_each(funs(. /sum(.)), Android, iPhone)
rr <-spr$iPhone[2] /spr$Android[2]
然后我們對(duì)推特中的異常字符進(jìn)行檢測(cè),并且進(jìn)行刪除然后找到推特中關(guān)鍵詞,并且按照數(shù)量進(jìn)行排序
reg <- "([^A-Za-zd#@']|'(?![A-Za-zd#@]))
"tweet_words <-tweets>%filter(!str_detect(text, '^"')) %>%mutate(text =str_replace_all(text, "https://t.co/[A-Za-zd]+|&", "")) %>%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

對(duì)數(shù)據(jù)進(jìn)行情感分析,并且計(jì)算安卓和蘋果手機(jī)的相對(duì)影響比例。
通過(guò)特征詞情感傾向分別計(jì)算不同平臺(tái)的情感比,并且進(jìn)行可視化。

在統(tǒng)計(jì)出不同情感傾向的詞的數(shù)量之后,繪制他們的置信區(qū)間。從上面的圖中可以看到,相比于蘋果手機(jī),安卓手機(jī)的負(fù)面情緒最多,其次是厭惡,然后是悲傷。表達(dá)積極的情感傾向很少。
然后我們對(duì)每個(gè)情感類別中出現(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)小于安卓平臺(tái)上的數(shù)量。

點(diǎn)擊文末?“閱讀原文”
獲取全文完整代碼數(shù)據(jù)資料。
本文選自《R語(yǔ)言對(duì)推特twitter數(shù)據(jù)進(jìn)行文本情感分析》。
點(diǎn)擊標(biāo)題查閱往期內(nèi)容
【數(shù)據(jù)分享】維基百科Wiki負(fù)面有害評(píng)論(網(wǎng)絡(luò)暴力)文本數(shù)據(jù)多標(biāo)簽分類挖掘可視化
R語(yǔ)言文本挖掘tf-idf,主題建模,情感分析,n-gram建模研究
NLP自然語(yǔ)言處理—主題模型LDA案例:挖掘人民網(wǎng)留言板文本數(shù)據(jù)
Python主題建模LDA模型、t-SNE 降維聚類、詞云可視化文本挖掘新聞組數(shù)據(jù)集
自然語(yǔ)言處理NLP:主題LDA、情感分析疫情下的新聞文本數(shù)據(jù)
R語(yǔ)言對(duì)NASA元數(shù)據(jù)進(jìn)行文本挖掘的主題建模分析
R語(yǔ)言文本挖掘、情感分析和可視化哈利波特小說(shuō)文本數(shù)據(jù)
Python、R對(duì)小說(shuō)進(jìn)行文本挖掘和層次聚類可視化分析案例
用于NLP的Python:使用Keras進(jìn)行深度學(xué)習(xí)文本生成
長(zhǎng)短期記憶網(wǎng)絡(luò)LSTM在時(shí)間序列預(yù)測(cè)和文本分類中的應(yīng)用
用Rapidminer做文本挖掘的應(yīng)用:情感分析
R語(yǔ)言文本挖掘tf-idf,主題建模,情感分析,n-gram建模研究
R語(yǔ)言對(duì)推特twitter數(shù)據(jù)進(jìn)行文本情感分析
Python使用神經(jīng)網(wǎng)絡(luò)進(jìn)行簡(jiǎn)單文本分類
用于NLP的Python:使用Keras的多標(biāo)簽文本LSTM神經(jīng)網(wǎng)絡(luò)分類
R語(yǔ)言文本挖掘使用tf-idf分析NASA元數(shù)據(jù)的關(guān)鍵字
R語(yǔ)言NLP案例:LDA主題文本挖掘優(yōu)惠券推薦網(wǎng)站數(shù)據(jù)
Python使用神經(jīng)網(wǎng)絡(luò)進(jìn)行簡(jiǎn)單文本分類
R語(yǔ)言自然語(yǔ)言處理(NLP):情感分析新聞文本數(shù)據(jù)
Python、R對(duì)小說(shuō)進(jìn)行文本挖掘和層次聚類可視化分析案例
R語(yǔ)言對(duì)推特twitter數(shù)據(jù)進(jìn)行文本情感分析
R語(yǔ)言中的LDA模型:對(duì)文本數(shù)據(jù)進(jìn)行主題模型topic modeling分析
R語(yǔ)言文本主題模型之潛在語(yǔ)義分析(LDA:Latent Dirichlet Allocation