本文章從爬蟲、詞頻統計、可視化三個方面講述了R語言的具體應用,歡迎你們共同談論學習html
#若是沒有,先安裝rvest包 install.packages("rvest") library(rvest) url <- "http://www.sohu.com/a/123426877_479559" #讀取數據,規定編碼 web <- read_html(url, encoding = "utf-8") position <- web %>% html_node("article.article") %>% html_text()
要獲取網頁中的節點,打開所要爬取網頁內容——>按F12——>找到內容所對應的網頁節點node
#install.packages("jiebaR") library(jiebaR) #初始化分詞引擎並加載停用詞 #user表示須要組合到一塊兒的單詞 #stop_word刪除不須要出現的詞 engine_s <- worker(user = "E:/R-Test/dictionary.txt", stop_word = "E:/R-Test/stopwords.txt") #分詞處理 seg<-segment(position, engine_s) #統計詞頻 f <- freq(seg) #根據詞頻降序排列(FALSE升序排列) f <- f[order(f[2], decreasing = TRUE),] #顯示前30行的數據 head(f, 30)
1)「dictionary.txt」,是指明須要組合到一塊兒的詞組,好比說在默認狀況下分詞的結果可能會將「機器學習」處理成「機器」,「學習」,而咱們其實想要的是「機器學習」,因此須要加載此字典表進行指定。注意:此文件的內容是本身指定的,具體內容以下:git
機器學習 公衆號 互聯網 大鱷 大數據
2)「stopwords.txt」,是須要過濾掉的詞組,好比「它」、「就是」、「做者」等詞對於咱們分析沒有實際意義,咱們就不須要統計他們,具體內容:github
是 就是 在 也 你 他 這個 做者 了 我 的 它
wordcloud2包的安裝就不能像前面的直接使用install.packages("wordcloud2")進行安裝了,由於這樣的安裝的wordcloud2就沒法繪製圖片和漢字的詞雲。他須要先安裝「devtools」包,具體方法以下:web
#安裝方法1: install.packages('devtools') library('devtools') install_github("lchiffon/wordcloud2") library(wordcloud2) #安裝方法2(在RStudio中執行): if(!require(devtools)) install.packages("devtools") devtools::install_github('lchiffon/wordcloud2')
而後就使用詞雲進行繪圖了,這裏 shape 的參數有:默認爲圓形(circle),cardioid(心形),star(星形),diamond(鑽石形),triangle-forward(三角形),triangle(三角形),這兩個三角形就是傾斜方向不一樣而已,pentagon(五邊形)。算法
#爲了顯示效果,只提取前150個字 f2 <- f[1:150,] #形狀設置爲一顆五角星 wordcloud2(f2, size = 0.8, shape = "star" wordcloud2(f2, size =0.745, shape = "cardioid") wordcloud2(f2, size =0.9, shape = "diamond")
加載一張圖片,讓顯示圖片的樣式
機器學習
#加載一張圖片 path <- "E:/R-Test/245937.jpg" #若是圖形不像,調整size的值 wordcloud2(f, size = 0.45, figPath = path)
letterCloud用來顯示指定的字母或者漢字,Word參數用於設置繪製詞雲形狀爲「」這個字函數
letterCloud(f2, word = "LOVE", size = 0.7)
【注意】可能咱們已經發現,前面圖中出現的高頻詞彙「機器學習」、「算法」等隨着咱們畫出來的圖丟失了。那是應該咱們後邊描繪的圖的邊太細,而「機器學習」的詞頻又特別高,因此就顯示不出來。所以咱們在選擇繪圖的時候不能爲了美觀而忽略了高頻詞學習