用R爬蟲+詞頻統計+數據可視化


這篇文章我們將使用爬蟲來進行簡單靜態頁面爬取,然后進行文本分詞,再進行可視化分析。主要用到以下三個包:

  • rvest 爬取網頁
  • jiebaR 用於分詞,詞頻統計
  • wordcloud2 用於文本分詞

如果沒有安裝以上幾個包,使用命令:install.packages("...")來安裝。

1.首先我們進行網頁爬取

我使用的是360瀏覽器,打開連接:  http://www.gov.cn/premier/2017-06/04/content_5199817.htm,右鍵選擇審查元素,找到內容標簽:

我們寫爬蟲代碼:

> library(rvest)
載入需要的程輯包:xml2
> library(xml2)
> url <- 'http://www.gov.cn/premier/2017-06/04/content_5199817.htm'
> web <- read_html(url,encoding="utf-8")
> position <- web %>% html_nodes("div.pages_content") %>% html_text()      ##%>%為管道函數,將左邊的值賦給右邊函數作為第一個參數的值。html_nodes()函數獲取某網頁內節點信息,html()函數獲取標簽內文本信息

  2.分詞,統計詞頻

 我們加載jiebaR包,再進行分詞:

> library(jiebaR)

> engine_s <- worker(stop_word="stopwords.txt") ##用notepad新建一個stopwords.txt文檔存在R文檔目錄下,編碼格式為utf-8(可以用getwd()函數查找當前目錄)。初始化分詞引擎並加載停用詞。
> seg <- segment(position,engine_s)  ##分詞

> f <- freq(seg)##統計詞頻
> head(f)##列出前六個

  3.可視化展示

我們需要使用到wordcloud2包:

> library(wordcloud2)
> f2 <- f2[1:100,]  ##如果詞比較多的情況下,我們只選取最頻繁的前100個進行分析
> wordcloud2(f2,size=0.8,shape='star')  ##用五角星繪制

  

4.自定義個性化展示

我們想創建自己想要的形狀,在百度搜索圖片:

我們利用上圖作為底圖繪制:

> path <- "c:/Users/zhilei/Documents/test4.jpg"
> wordcloud2(f2,size=0.5,figPath=path)

  

是不是很酸爽啊!那就動手試試吧小伙伴!


免責聲明!

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



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