一、 實訓內容
- 在進行數據讀入操作前,要求下載和加載相應的程序包文件。
- 利用R語言的scan( )方法,從外部txt文件讀入進行實驗的數據集內容。
- 本實驗要求先對輸入的數據集進行詞語分割,過濾不合需求的字符長度。進行詞頻統計后,仍可進行數字的過濾操作,最后進行詞語的降序排序。
- 在對數據集進行分詞,統計詞頻之后,方可使用程序包wordcloud,對數據集進行詞雲圖片的繪畫和生成。
二、 實驗課題目標
- 要求掌握程序包的基本操作,包括下載、加載等。同時,能從二進制文本文件中讀入數據集的相應內容。
- 在數據處理的過程中,重點掌握分詞、詞頻統計、過濾和排序的方法,以及相應的函數參數的把控。
- 深入理解詞雲圖片生成的基本原理,以及基本的實現方法,能靈活面向多種類型的數據集進行應用。同時,掌握數據集生成圖片的轉換過程。
三、 實驗平台
1、 系統: Windows 10
Intel(R) Core(TM)i7-7500U CPU @ 2.70GHz 2.90 GHz
RAM 8.00GB
2、工具:
R x64 3.6.1
notepad.exe
eclipse
word 2016
四、 實施步驟
1) 讀入數據
1、 切換R語言的工作空間。首先在C:\目錄下,新建文件夾為workspace,再打開R x64 3.6.1程序,輸入命令:getwd() ,獲取當前R語言程序的工作空間。輸入如命令:setwd("C:/workspace") ,將workspace作為R語言的工作目錄,再加以驗證是否切換成功。

圖4-1 切換工作空間
2、 下載jiebaR包。在R x64 3.6.1程序中,輸入命令:install.packages("jiebaR") ,下載‘jiebaR’程序包。在彈出的mirrors選項中,選擇China(Shanghai)[https]上海的服務器即可。下載完成之后,效果如圖4-2所示:
圖4-2 下載jiebaR成功
當輸入完下載命令之后,RGui(64-bit)會自動檢查並下載安裝相依的關系‘jiebaRD’和 ‘Rcpp’包,程序包下載完成之后,R語言會打開並使用MD5進行檢查。
3、利用第2步驟的方法,下載wordcloud包。在R x64 3.6.1程序中,輸入命令:install.packages("wordcloud") ,下載”wordcloud”程序包。在彈出的mirrors選項中,繼續選擇上海的服務器即可。

圖4-3 下載wordcloud成功
3、 加載已經下載的jiebaR包和wordcloud包。輸入命令:library(“Rserve”) ,加載Rserve程序包。輸入命令:library("wordcloud") ,加載wordcloud程序包。並利用(.packages())查看是否加載程序包。

圖4-4 加載程序包成功
5、從文件讀入數據。讀入數據分隔符是‘\n’,what=''表示以字符串類型讀入。輸入命令:f<- scan('C:/Users/Raodi/Desktop/snx.txt',sep='\n',what='')
圖4-5 從文件中加載數據
2) 數據處理
1、 分詞。使用qseg類型對輸入的數據進行分詞,命令:txt<-qseg[f] 。
2、過濾字符長度。使用命令:txt<-txt[nchar(txt)>1] ,去除字符長度小於2的詞語。
3、統計詞頻。使用命令:txt<-table(txt),對已經規約詞長的數據進行詞頻統計。
4、過濾數字。單個數值字符在詞雲中是無意義的,所以要對數字進行過濾。使用命令:txt<-txt[!grepl('[0-9]+',names(txt))],批量去除數據集中的數字。
5、查看處理完后剩余的詞數。使用命令:length(txt)。
6、降序排序,並提取出現次數最多的前100個詞語。使用命令:txt<-sort(txt, decreasing = TRUE)[1:100] ,進行降序排序,並提取出現次數最多的前100個詞語。
7、查看100個詞頻最高的詞語。

4-6 數據處理
3) 詞雲制作
1、設置生成的詞雲圖片的屬性。使用命令:png("snxcloud.png", width = 500, height = 500) ,在R語言當前的工作目錄下,生成高和寬都是500的snxcloud.png圖片。
2、設置該圖片的背景顏色為黑色:par(bg = "black")
3、對數據集進行wordcloud()函數運算。命令如下:
wordcloud(names(txt), txt, colors = rainbow(100), random.order=F)
4、保存數據集產生snxcloud.png圖片。命令:dev.off()

圖4-7制作詞雲圖片

圖4-8 工作目錄中生成詞雲圖片
運行以上代碼后,即可在工作空間得到snxcloud.png文件,如下圖:
圖4-9 snxcloud.png
五、 實驗成果
當在實驗的過程中,出現圖5-1的效果時,則表示在R語言程序中,從文件讀入數據、分詞、過濾字符長度和統計詞頻等數據處理操作,以及詞雲圖片的生成沒有問題。即,上述的實驗步驟操作正確。

圖5-1 實驗操作正確
如圖5-2所示,在R的工作目錄下成功生成了snxcloud.png詞雲文件,也再次驗證了上述的實驗操作正確,並能生成相應的詞雲文件。

圖5-2 工作目錄生成文件
本實驗最終得到的詞雲,效果如圖5-3所示:
圖5-3 實驗的詞雲成品
六、 實訓總結
關於本次實驗的經驗收獲和實驗總結,可分點總結如下:
- 經過本實驗,可得出結論:jiebaR是一款高效的R語言中文分詞包,而Wordcloud包在做詞語分析時並沒有多大的作用。Wordcloud包就是一個可以使詞頻以圖形的形式展示的軟件包,它可以通過改變詞雲的形狀和顏色,使得分析結果錦上添花。
- 本實驗的關鍵在於,對數據集進行分詞、詞頻統計、過濾和排序等數據處理的過程和方法,生成詞雲圖片只是對已經處理的數據集以圖片的方式進行保存。
- 本實驗中,需要將數據集中的數字進行過濾。因為經過分詞器的處理,單個數值字符在生成的詞雲中難以分辨含義和方向,即缺乏無意義的,所以需要將數字進行過濾處理。
- 生成詞雲的方法遠不止本實驗中的這種,方法其實還有很多,如:wordcloud2。但是從整體來說,方法和基本的原理是類似的,至於操作步驟也可以舉一反三,靈活變通。
