简单的文本挖掘-用于QQ聊天记录(R)
平時的交流很多都在QQ上,QQ交流已經離不開日常的生活,這里我用R來分析QQ聊天記錄,看看平時都聊了什么。
首先介紹下用的文本挖掘的包:Rwordseg ?一個 R 環境下的中文分詞工具,使用 rJava 調用 Java 分詞工具 Ansj。??
該包需配合rJava包一起使用。詳見李艦老師博客:http://jianl.org/
Rwordseg包不能直接install.packages("Rwordseg"),需使用下列代碼
?
install.packages("Rwordseg", repos="http://R-Forge.R-project.org")如果安裝不成功,可以直接下載壓縮包,然后安裝:
?
必備包安裝好,下面該導出QQ聊天記錄了:
這里保存為txt格式
導出的txt,導入R的時候可能會時間很長或者出錯,這里用notepad++打開txt,然后轉為ANSI編碼格式即可。
準備工作做好了,下面開始文本
?
?
library(rJava)? library(Rwordseg)? library(RColorBrewer)? library(wordcloud)?
myfile<-read.csv(file="D:\\message.txt",header=FALSE) #載入文本數據 myfile[1:15,] [1] 消息記錄(此消息記錄為文本格式,不支持重新導入) ? ? ? ? ? ? ? ? [2] ================================================================ [3] 消息分組:高中 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? [4] ================================================================ [5] 消息對象:夢康 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? [6] ================================================================ [7] 2016-06-24 15:56:11 夢康 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? [8] 生日快樂 永遠十八歲! ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? [9] ================================================================ [10] 消息分組:高中 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? [11] ================================================================ [12] 消息對象:李晨宇 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? [13] ================================================================ [14] 2016-07-04 20:24:35 李晨宇 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? [15] [收到好友的PK挑戰,請在最新QQ手機版中查看詳情] ? ? ? ? ? ? ? ? ? 14116 Levels: - 富有激情和強烈的創新優化意識,責任心抗壓力強,能在快節奏環境中工作,能和項目成員進行快速有效的溝通 ...?
myfile.res <- myfile[myfile!=" "] #去除 "" myfile.words <- unlist(lapply(X = myfile.res,FUN = segmentCN)) #分詞處理 myfile.words <- gsub(pattern="[a-zA-Z\\/\\.0-9]","",myfile.words)#正則表達式,用于替換 myfile.words <- gsub("\n","",myfile.words)? myfile.words <- gsub(" ","",myfile.words)#空格替換為空 myfile.words <- gsub("\\d","",myfile.words)#去除所有數字 myfile.words<-subset(myfile.words,nchar(as.character(myfile.words))>1) #選取字符大于1的數據集 myfile.freq <- table(unlist(myfile.words))? myfile.freq <- rev(sort(myfile.freq)) #排序從大到小 myfile.freq <- data.frame(myfile.freq) names(myfile.freq) <- c("words","freq") myfile.freq[1:15,] #詞頻統計數據:?
?
? ? words freq 1 ? ?圖片 1664 2 ? ?表情 1102 3 ? ?夏天 ?763 4 ? ?消息 ?744 5 ? ? com ?647 6 ? ?數據 ?572 7 ? ?系統 ?556 8 ? ?可以 ?497 9 ? ?三千 ?465 10 ? 佳麗 ?464 11 ? 后宮 ?464 12 繡花針 ?463 13 ? 鐵杵 ?463 14 ? 加入 ?396 15 ? ? qq ?379??
?
wordcloud(myfile.freq$words,myfile.freq$freq,random.order=FALSE,random.color=FALSE,colors=c(1:20))?
?
?
?
?
換個炫酷的色彩
?
mycolors <- brewer.pal(8,"Dark2")? windowsFonts(myFont=windowsFont("華文彩云"))? wordcloud(myfile.freq$words,myfile.freq$freq,random.order=FALSE,random.color=FALSE,colors=mycolors,family="myFont")?
從詞云從明顯的可以看到,
1.我的聊天記錄出現的圖片和表情最多,而且比“消息”這詞還多,說明現在聊天“圖片”和“表情”很瘋狂啊!PS想和我斗圖,來試試~
2.怎么會有“qq”和“com”呢,我來查了下聊天記錄
1. 這是群里面的一段聊天記錄。。。原來會自動加上qq.com,所以“qq”和“com”這兩詞詞頻特別高.
2. 這段聊天記錄還有“夏天”,
(1)這位童靴...果然很活躍。
(2)另一種可能就是別人的名字都被分詞給分了,“夏天”很巧就是個詞
3. 從這一段聊天記錄就可以明顯的發現:群成員都喜歡發圖片和表情....PS說出來你可能不信,我的圖片、表情都是群里面的。
大家看到這個詞云有幾個詞特別的顯眼:“佳麗”、“后宮”、“三千”、“繡花針”
這里!!我要特別說明一下,大家不要誤會!
就是這貨,認識他感覺好丟人(表情臉)
說明詞云來是有些不準的,有些詞需要去除,“人名”需要去除,接下來繼續做詞云。
最終詞云,今天娛樂結束。。。
?
總結
以上是生活随笔為你收集整理的简单的文本挖掘-用于QQ聊天记录(R)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Ovi商店开发者注册发布指南
- 下一篇: 1.7三分钟读懂Saas、Paas、Ia