當前位置:
首頁 > 最新 > R處理文本之用1秒看完三國

R處理文本之用1秒看完三國

R處理文本之用1秒看完三國

下個星期就是端午節,你們公司發粽子了嗎?我們還沒有發,不過粽子別多吃,那玩意熱量高還容易不消化,我小時候,每次端午節都是因為吃太多粽子拉肚子,我們那的粽子比較好吃,不騙你。

我最近要弄一些文本分析的東西,就是類似說那種運營商電話標籤,電話屬於酒店還是飯店這類的標籤的處理歸類,所以呢,我最近都在弄爬取文本啊,分詞之類的工作,所以就趁著這時候就弄了上次你們看到那個不倫不類的sas爬蟲,雖然我一直堅持用sas,但是sas的局限性(還不是因為沒錢買),所以還是使用R處理。

今天就先更新文本處理的第一步---分詞!分詞最應該感謝搜狗輸入法裡面各種詞,幫了一個大忙,我的R不是666那種,我也是自學,所以寫的還不是很好,所以大家就看著玩,不過講標籤分詞之後給標籤歸類這個思路,還是給與大家多多少少一點點幫助的,前提是你有這類數據。其實客戶公司的名字也可以用這種方式歸類,思路開拓一下,很多地方就用起來了。

R分詞最重要就是裝rjava包,這個包會讓你安裝到懷疑人生。你需要先在網上搜下怎麼安裝rjava的方法,如果你現在想弄分詞,你先要靜下心來,很耐心很耐心的按著教程安裝,這大概花費我一個晚上的時間,我從下班7點回家,弄到10點多才弄好,但是弄了一波亂亂的,所以我就不在這裡亂教怎麼安裝了,你們搜網上的教程照著自己的電腦安裝就可以了。

這裡我就不用實際的數據,我拿的是「三國演義」這本書的文本來做一下分詞,以下就是我做分詞的流程啦:

1

在搜狗(http://pinyin.sogou.com/dict/)下載需要的詞庫,我下個三個詞庫。

installDict("C:/Users/Downloads/比較全的三國人名.scel","比較全的三國人名",dicttype="scel")

installDict("C:/Users/Downloads/三國.scel","三國",dicttype="scel")

installDict("C:/Users/Downloads/三國演義.scel","三國演義",dicttype="scel")

當然你也可以自定義一個詞庫,裡面填一些你想要分的詞,例如我想要「消費金融」這四個字在一起,那麼我可以另外新建一個txt,寫上 「消費金融」。一行一個詞。例如:

消費金融

金控

小額貸款

然後把上面的dicttype="scel"改成dicttype=』txt』就可以了。

2

lecture

NameWord

這個函數segmentCN就是將文章中的按照你剛才載入的詞庫,分出來的詞。看下圖:

但是這時候源數據是list文件,你得轉成數據框,其實詞雲製作的數據,你輸入的是這個詞的數量以及這個詞,所以其實詞雲大小是這個詞的次數多少決定的,那麼這裡處理數據的時候就需要把每個詞語計算他的出現次數,既然要計算次數,list形式就沒辦法計算,你得轉成data.frame的形式。

這一步就是轉化數據格式以及計算其出現次數,這有些代碼是我之前的同事教的,在這裡感謝我之前的同事,教我寫R,這裡插個題外話,我始終覺得學代碼,多看別人代碼以及多些真的比看書一個句子一個句子敲學的快。

FreqWord1,]

FreqWord

將那種出現過單字的詞語都不要了,然後再把詞語出現的頻率倒序排一下。

3

之前的準備工作做完了,那接下來就是生成詞雲就可以了。

install.packages("wordcloud2")

install.packages("htmlwidgets")

library(htmlwidgets)

library(wordcloud2)

wordcloud2(FreqWordt, size = 2, fontFamily = "微軟雅黑",

color = "random-light", backgroundColor = "grey")

下載並載入這兩個包,使用同名函數wordcloud2就可以了,看下結果圖~~

劉備、諸葛亮、還有曹操是top-three

以下是全部的代碼

Sys.setenv(JAVA_HOME="C:/Program Files/Java/jdk1.7.0_51/jre")

install.packages("bindr")

install.packages("dplyr")

install.packages("wordcloud2")

install.packages("htmlwidgets")

library(htmlwidgets)

library(wordcloud2)

library(tcltk)

library(bindr)

library(dplyr)

library("rJava")

library(Rwordseg)

installDict("C:/Users/Downloads/比較全的三國人名.scel","比較全的三國人名",dicttype="scel")

installDict("C:/Users/Downloads/三國.scel","三國",dicttype="scel")

installDict("C:/Users/Downloads/三國演義.scel","三國演義",dicttype="scel")

lecture

NameWord

FreqWord

FreqWord

names(FreqWord)

FreqWord1,]

FreqWord

FreqWordt

wordcloud2(FreqWordt, size = 2, fontFamily = "微軟雅黑",

color = "random-light", backgroundColor = "grey")

屁屁sas數據分析

銘仔,一個做評分卡的鋼鐵直男。

屁屁,一個做評分卡的

95年少女。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 SAS中文論壇 的精彩文章:

淚目!他用人工智慧「留住」去世老爸
樹模型的共線性問題

TAG:SAS中文論壇 |