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