使用R語言將微信記錄制作成詞雲(簡潔)--情人節奧義


一、導出並讀入微信聊天記錄

    參照百度的方法,使用同步助手。安裝同步助手--連接手機(安卓蘋果均可)--點擊“其他功能“--點擊微信圖標即可進入聊天記錄導出界面(非常簡單)。

     導出數據后直接用read.table讀入表格

     命令:

        dat <- read.table("message.txt",skip=4,header=F,fill=TRUE)  #skip跳過前面四行不用的信息;導出時候的信息缺失(語音圖片信息等)導致表格不規則,設置fill=TRUE強制讀取。聊天記錄信息位於第七列。

二、使用Rwordseg包

    2.1 使用之前要先安裝

        install.packages("rJava") #需要java環境

        install.packages("Rwordseg", repos = "http://R-Forge.R-project.org")

    2.2 Rwordseg具有強大的中文分詞功能

        segmentCN(strwords)  #strwords 是中文字符串,還可以文本路徑,返回值是一個向量。

        > a <- segmentCN("你好R")
        > str(a)
           chr [1:2] "你好" "R"

    2.3 Rwordseg還具有導入詞庫的功能

         支持普通詞庫(txt格式)和搜狗細胞詞庫( scel 格式),使用方法:

          先從網上下載搜狗的細胞詞庫(scel格式),再安裝

          installDict(dictFile,dicttype = c("text", "scel"), load = TRUE)  

         例如:

           installDict("/home/ywliao/Tmp/日常用語大詞庫.scel",dicttype = "scel", "richang",load = TRUE)   

    2.4 自定義詞典

        insertWords("捂臉")   #讓某詞組放入內存

        deleteWords(c("捂臉"))  #刪除某詞

三  、使用wordcloud2包

    3.1 安裝

        install.packages('devtools') 

        devtools::install_github("lchiffon/wordcloud2")

 

    3.2 使用

       

        wordcloud2(data, size = 1, minSize = 0, gridSize =  0,  

    fontFamily = NULL, fontWeight = 'normal',  

    color = 'random-dark', backgroundColor = "white", 

    minRotation = -pi/4, maxRotation = pi/4, rotateRatio = 0.4, 

    shape = 'circle', ellipticity = 0.65, widgetsize = NULL)

    參數:

(1)data:詞雲生成數據,包含具體詞語以及頻率;

(2)size:字體大小,默認為1,一般來說該值越小,生成的形狀輪廓越明顯;

(3)fontFamily:字體,如‘微軟雅黑’;

(4)fontWeight:字體粗細,包含‘normal’,‘bold’以及‘600’;;

(5)color:字體顏色,可以選擇‘random-dark’以及‘maxRontatin:字體旋轉角度范圍的最小值以及最大值,選定后,字體會在該范圍內隨機旋轉;(三角形),‘pentagon’(五邊形);

   例如:wordcloud2(freq_dat, size = 1,shape = 'star')#生成星星狀的詞雲

四、實例

    情人節將到,將你和TA的聊天記錄生成詞雲發送給TA定會給TA一個驚喜。

    分析:

     將我和gf的聊天記錄生成文件oak_message.txt,在網上下載搜狗細胞詞庫“網絡日常用語大詞庫.scel”和“網絡日常用語.scel”,安裝了所需要的rJava,Rwordseg和wordcloud2包。R代碼如下:

        library(rJava)
        library(Rwordseg)
        library(wordcloud2)
        #加入日常用語細胞詞庫
      installDict("/home/ywliao/Tmp/日常用語大詞庫.scel",dicttype = "scel", "richang",load = TRUE)
      installDict("/home/ywliao/Tmp/網絡日常用語.scel",dicttype = "scel", "wangluorichang",load = TRUE)
      insertWords(c("捂臉","親親"))
      dat <- read.table("oak_message.txt",skip=4,header=F,na.strings = "NA",fill=TRUE)
      all_message <- ""
      for (msg in dat$V7){
      all_message <- c(all_message,segmentCN(msg))
}
      all_message <- all_message[all_message != ""] #去掉空信息""
      freq_dat <- as.data.frame(table(all_message))
      wordcloud2(freq_dat,size = 2, minRotation = -pi/6, maxRotation = -pi/6,  
           rotateRatio = 1) #板報詞雲
      wordcloud2(freq_dat, size = 1,shape = 'star') #星狀詞雲
     wordcloud2(freq_dat, size = 2, fontFamily = "微軟雅黑",  
           color = "random-light", backgroundColor = "grey")  # 海報詞雲

    結果輸出為網頁文件,打開網頁后可截圖

    什么?博主的gf聊天詞雲呢?怎么是這個?沒錯,博主就是學霸哈哈哈哈!最后祝大家情人節快樂!(不管怎樣,自己都要快樂!)

 

 

參考資料:

電腦上導出微信聊天記錄:http://www.cr173.com/html/64463_1.htm

Rwordseq包:http://blog.csdn.net/sinat_26917383/article/details/51056068 ; http://blog.csdn.net/sinat_26917383/article/details/51056068

wordcloud2包:http://blog.csdn.net/sinat_26917383/article/details/51620019

                 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM