1. 程式人生 > >Mac版R語言(六)文字挖掘(使用者詞庫的匯入、批量匯入搜狗詞庫)

Mac版R語言(六)文字挖掘(使用者詞庫的匯入、批量匯入搜狗詞庫)

R語言問題討論交流,歡迎關注我的新浪微博:Jenny愛學習

文字挖掘應用的部落格將分4個部分分別討論完成,本篇將完成part 1的詳細project:

  1. 使用者字典批量安裝,自定義分詞詞庫,自建分詞packages的安裝
  2. jiebaR分詞的使用
  3. 詞雲的繪製(wordcloud2詳細使用見:Mac版R語言(四)使用wordcloud2畫詞雲點選開啟連結
  4. k-means聚類

執行環境Platform: x86_64-apple-darwin13.4.0 (64-bit),MacOS Sierra 10.12.3,R3.3.2 (2016-10-31),涉及到的所有packages均更新下載於2017-6月。

所有程式碼均已全部執行,結果附圖,有任何問題歡迎留言討論。

1.  分詞常用packages

1.1 R提供的文字挖掘packages:

  •  tm:英文分詞工具
  • jiebaR:中文分詞工具,本身是C++寫的,具有極高的運算處理速度
  • Rwordseg:中文分詞工具,Mac版依賴舊版本的Java,較難安裝,版本更新慢,不推薦使用
  • chinese.misc:中文分詞工具,核心基於Rwordseg
  • rmmseg4j:
  • snowball:英文詞幹化
1.2 其他常用漢語分詞系統:
  • 中科院NLPIR漢語分詞系統   :零程式碼線上版  點選開啟連結
  • 微軟word2vec:基於深度學習的文字挖掘系統
2.  使用者詞典的建立 2.1 詞庫下載        jiebaR作為目前R平臺上最好的中文分詞工具,雖然其自帶詞庫和停用詞庫,但是對於不同行業的研究者來說,自帶詞庫並不能滿足所有的研究需求。因此,使用者需要自己安裝行業內的專用詞庫,具體詞庫可以從搜狗詞庫上下載安裝:
點選開啟連結

2. 2 單個詞典匯入2.2.1 零程式碼轉換分詞詞庫如果只需要匯入單個詞典,推薦使用線上版本的詞庫轉換工具,同樣是來自jiebaR作者Qin Wenfeng,點選連結進行線上轉換:
2.2.2  程式碼匯入詞庫    cidian包的下載安裝方法見下方:2.3 批量詞庫匯入。新建Rproject工程檔案,將project工程檔案建立在搜狗詞典庫同文件夾中。結果如下圖:在得到的檔案中,將轉化後的字尾名為.dict搜狗詞庫名稱改為user.dict.utf8,並替換原檔案,就將搜狗詞典轉換為預設的使用者詞典了。2.3  批量詞庫匯入         需要進行分詞的文件可能綜合了許多學科,因此僅僅使用單個詞庫並不能分出許多不同行業的專用詞,這時就需要批量匯入多學科詞庫,對文件進行分詞。
        批量匯入搜狗詞庫需要cidian這個package,在R上檢視cidian的文件資訊,cidian這個包同樣來自jiebaR的作者Qin Wenfeng。        11、13、14行的註釋:在載入cidian的時候還需要載入Rcpp和RcppProgress、stringi、pbapply、jiebaR這五個程式包。        由於詞典釋出在github上,因此Mac環境下需要藉助devtools這個packages安裝下載(後面有詳細介紹),windows環境需要安裝Rtools開發工具才能安裝cidian包。
安裝jiebaR中批量匯入詞庫的package   開啟R,根據文件,執行以下程式碼:       結果截圖
整個程式碼執行的過程中,要確保每個檔案的路徑正確,否則可能會生成一些空資料集,
程式碼執行後,詞庫所在的資料夾中會生成對應.scel詞庫的.txt.檔案格式,如下圖:將所有生成的.txt檔案合併為一個檔案

這時得到一個全部.txt格式詞庫的檔案,R中environment顯示,整理後的詞庫約有30萬條專業詞彙,21.6M:
使用unique()函式去掉重複詞語,還剩28萬條詞:

最後,將去重的詞庫寫出:
write.table(dict1,file = "use.dict.utf8",quote = F,row.names = F,col.names = F,fileEncoding = "UTF-8")
在Rproject資料夾中得到如下結果:按照2.2.2 中介紹的替換詞庫的方法,將生成的詞庫替換至jiebaR的預設使用者詞庫即可。