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

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

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

左右滑動查看更多

01

02

03

04

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

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

從上面的對比圖中,我們可以看到安卓手機沒有圖片或者鏈接的情況要多于蘋果,也就是說,使用蘋果手機的用戶在發(fā)推特的時候一般會發(fā)布照片或者鏈接。
同時可以看到安卓平臺的用戶把推特一般不使用圖片或者鏈接,而蘋果手機的用戶恰恰相反。
spr <-tweet_picture_counts>%spread(source, n) %>%mutate_each(funs(. /sum(.)), Android, iPhone)
rr <-spr$iPhone[2] /spr$Android[2]
然后我們對推特中的異常字符進行檢測,并且進行刪除然后找到推特中關(guān)鍵詞,并且按照數(shù)量進行排序
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

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

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

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

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