咱們以R語言抓取的推特數據爲例,對數據進行文本挖掘,進一步進行情感分析,從而獲得不少有趣的信息。android
找到推特來源是蘋果手機或者安卓手機的樣本,清理掉其餘來源的樣本。ios
tweets <-tweets_df>%select(id, statusSource, text, created) %>% extract(statusSource, "source", "Twitter for (.*?)<")>%filter(source %in%c("iPhone", "Android"))
對數據進行可視化計算不一樣時間對應的推特比例.。iphone
而且對比安卓手機和蘋果手機上的推特數量的區別。機器學習
從對比圖中咱們能夠發現,安卓手機和蘋果手機發佈推特的時間有顯著的差異,安卓手機傾向於在5點到10點之間發佈推特,而蘋果手機通常在10點到20點左右發佈推特。同時咱們也能夠看到,安卓手機發布推特數量的比例要高於蘋果手機。ide
而後查看推特中是否含有引用 ,而且對比不一樣平臺上的數量。學習
ggplot(aes(source, n, fill = quoted)) + geom_bar(stat ="identity", position ="dodge") + labs(x ="", y ="Number of tweets", fill ="")
從對比的結果來看,安卓手機沒有被引用的比例要明顯低於蘋果手機。而安卓手機引用的數量要明顯大於蘋果手機。所以能夠認爲,蘋果手機發的推特內容大多爲原創,而安卓手機大多爲引用。大數據
而後查看推特中是否有連接或者圖片,而且對比不一樣平臺的狀況spa
ggplot(tweet_picture_counts, aes(source, n, fill = picture)) + geom_bar(stat ="identity", position ="dodge") + labs(x ="",
從上面的對比圖中,咱們能夠看到安卓手機沒有圖片或者連接的狀況要多於蘋果,也就是說,使用蘋果手機的用戶在發推特的時候通常會發布照片或者連接。code
同時能夠看到安卓平臺的用戶把推特通常不使用圖片或者連接,而蘋果手機的用戶偏偏相反。blog
spr <-tweet_picture_counts>%spread(source, n) %>% mutate_each(funs(. /sum(.)), Android, iPhone) rr <-spr$iPhone[2] /spr$Android[2]
而後咱們對推特中的異常字符進行檢測,而且進行刪除而後找到推特中關鍵詞,而且按照數量進行排序
reg <- "([^A-Za-zd#@']|'(?![A-Za-zd#@])) "tweet_words <-tweets>%filter(!str_detect(text, '^"')) %>%m utate(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
對數據進行情感分析,而且計算安卓和蘋果手機的相對影響比例。
經過特徵詞情感傾向分別計算不一樣平臺的情感比,而且進行可視化。
在統計出不一樣情感傾向的詞的數量以後,繪製他們的置信區間。從上面的圖中能夠看到,相比於蘋果手機,安卓手機的負面情緒最多,其次是厭惡,而後是悲傷。表達積極的情感傾向不多。
而後咱們對每一個情感類別中出現的關鍵詞的數量進行統計。
android_iphone_ratios %>%inner_join(nrc, by ="word") %>% filter(!sentiment %in%c("positive", "negative")) %>% mutate(sentiment =reorder(sentiment, -logratio),word =reorder(word, -logratio)) %>%
從結果中咱們能夠看到,負面詞大多出如今安卓手機上,而蘋果手機上出現的負面詞的數量要遠遠小於安卓平臺上的數量。
最受歡迎的看法
4.用機器學習識別不斷變化的股市情況—隱馬爾科夫模型(HMM)的應用