資料分析入門與實戰 公衆号: weic2c
要分析文本内容,最常見的分析方法是提取文本中的詞語,并統計頻率。頻率能反映詞語在文本中的重要性,一般越重要的詞語,在文本中出現的次數就會越多。詞語提取後,還可以做成詞雲,讓詞語的頻率屬性可視化,更加直覺清晰。比如下圖:

這是根據總理2014年的政府工作報告制作的可視化詞雲,分詞和詞雲的制作都是用R,詞頻的統計用了其他軟體。這個圖能很直覺看到,工作報告的重心是"發展",這是大方向,圍繞發展的關鍵要素有經濟建設、改革、農村、城鎮等要素。不過這張圖中的詞語還需要進行優化,因為有些術語或詞組可能被拆分成了更小的詞語,沒有展示出來,為了示範,我就沒再花更多時間去優化詞庫,主要是講講分析的方法。
下面是分析方法:
首先,要獲得要分析的内容,做成txt文本檔案。這個很簡單,把要分析的内容粘貼到記事本,儲存為txt檔案就可以了。
其次,用R進行分詞。這裡要分幾點來講:
- 要用R進行分詞,需要安裝并裝載兩個library,一個是Rwordseg,另一個是rJava。rJava的作用是提供java的庫,供Rwordseg調用。安裝後,調用語句如下:
library(rJava)
library(Rwordseg)
- 說說Rwordseg,這是一個R環境下的中文分詞工具,引用了Ansj包,Ansj是一個開源的java中文分詞工具,基于中科院的ictclas中文分詞算法,采用隐馬爾科夫模型(HMM)。Rwordseg牛逼的地方三點,一是分詞準确,二是分詞速度超快,三是可以導入自定義詞庫,有意思的是還可以導入搜狗輸入法的細胞詞庫(sqel格式),想想細胞詞庫有多龐大吧,這個真是太厲害了。
- 分詞的文法。很簡單,一個函數就搞定了,看下面:
segmentCN("待分析檔案的完整路徑",returnType="tm")
注意:R中的路徑用"\\"分割檔案夾。參數returnType表示傳回的分詞格式是按空格間隔的格式。執行完成後,會自動在相同目錄生成一個"待分析檔案名. .segment.txt"的文本檔案,打開可以看到是醬紫:
然後,要統計詞頻。到了這裡,每個單詞出現的頻率是多少,需要統計出來。這個詞頻統計,我在R中找了一陣,沒有找到合适的工具來統計,有人說lm可以統計,試了試不行。于是乎用了其他的軟體。這方面的軟體不少,大家可以找找,總之,統計出來是醬紫的:
最後,就是畫成詞雲。R有工具可以畫詞雲,當然網際網路上有不少網站可以線上制作詞雲,做得也很漂亮,有興趣可以去找找,我這裡隻談R中的方法:
- 安裝并裝載畫詞雲的工具包wordcloud:
library(wordcloud)
- 讀取已經統計好詞頻的檔案:
mydata<-read.table("已統計好詞頻的文本檔案的完整路徑",head=TRUE)
- 設定一個顔色系:
mycolors <- brewer.pal(8,"Dark2")
- 畫圖:
wordcloud(mydata$詞彙,mydata$詞頻,random.order=FALSE,random.color=FALSE,colors=mycolors,family="myFont3")
然後就可以看到最上面的那個圖了。
補充說明:
1、安裝rJava:需要先在電腦上下載下傳安裝JDK,即java devolop kit,然後再通過R從CRAN上選擇安裝rJava,否則,即使安裝了rJava也用不了。前提是JDK必須先安裝好;
2、安裝Rwordseg,這個包不在CRAN上,是以不能在R中直接選擇線上安裝,需要用下面兩種方式來安裝,輸入:
①
install.packages("Rwordseg", repos = "http://R-Forge.R-project.org")
②(如果上面不能安裝,則用下面的)
install.packages("Rwordseg", repos = "http://R-Forge.R-project.org", type = "source")
公衆号: weic2c
據分析入門與實戰