1. 程式人生 > >使用R語言進行中文分詞

使用R語言進行中文分詞

1.準備包

    ①rJava包

    ② Rwordseg包

    ③java環境

    ④搜狗詞庫(此為擴充套件詞庫)

   Rwordseg包依賴於rJava包。由於Rwordseg包並沒有託管在CRAN上面,而是在R-Forge上面,因此在在R軟體上面直接輸入install.packages("Rwordseg")會提示錯誤。因此,我們需要在軟體選單欄點選 程式包

   選擇軟體庫 在選擇R-Forge 即可,然後輸入install.packages("Rwordseg")應該就OK了。或者輸入下面程式碼:

install.packages("Rwordseg", repos = "http://R-Forge.R-project.org")

一切準備工作做好了我們就可以進行分詞了。首先載入我們所需要的包。然後對“ 我非常喜歡《跟著菜鳥一起學R語言》這個微信公眾號 ”這句話進行分詞。
library(Rwordseg)
library(rJava)
text<-"我非常喜歡《跟著菜鳥一起學R語言》這個微信公眾號"
segmentCN(text)

分詞結果為:

[1] "我"    "非常"  "喜歡"  "跟"    "著"    "菜"    "鳥"    "一起"  "學"    "R語言"     "這個"  "微信"  "公眾"  "號"   

     我們可以發現這個分詞有問題,比如說 “菜鳥”和“公眾號”是一個詞,但這裡卻分開了。我們該怎麼處理呢?Rwordseg包裡面提供了一個insertWords函式,具體如下

insertWords(strwords,
    analyzer = get("Analyzer", envir = .RwordsegEnv),
    strtype = rep("userDefine", length(strwords)),
    numfreq = rep(1000, length(strwords)), save = FALSE)

     這就是insertWords函式,其中save引數是指 是否把這個詞儲存到詞典裡面。
insertWords(c("菜鳥","公眾號"),save=TRUE) 
     這樣的話,菜鳥 和 公眾號 就成兩個詞了。再次執行
text<-"我非常喜歡《跟著菜鳥一起學R語言》這個微信公眾號"
segmentCN(text)
 結果為

[1] "我"     "非常"   "喜歡"   "跟"     "著"     "菜鳥"   "一起"   "學"     "R語言"  "這個"   "微信"   "公眾號"

但是如果我們不需要“菜鳥”這個分詞了怎麼辦,這個時候我們就可以使用deleteWords()函式來從詞典中刪除這個分詞。

deleteWords(c("菜鳥","公眾號"),save=TRUE)
    這次我們在看看結果。

 [1] "我"    "非常"  "喜歡"  "跟"    "著"    "菜"    "鳥"    "一起"  "學"    "R語言" "這個"  "微信"  "公眾"  "號"  

    接下來我們使用一下搜狗的擴充套件詞庫,由於電影跟新速度較快,我這裡下載了搜狗的熱門電影大全詞庫,如何載入使用搜狗詞庫,點選可以檢視我的另一篇部落格

installDict("熱門電影大全.scel","movie") 
59391 words were loaded! ... New dictionary 'movie' was installed!

     我把下載的詞庫放在了當前的工作目錄下面了,所以直接輸入詞典名,沒有新增地址。載入了該詞典。如果出現上面的句子則表示這個詞典載入成功了,我們命名為movie。

     現在我們來測試一下面這個句子: 你喜歡看最後的巫師獵人嗎

text2<-"你喜歡看最後的巫師獵人嗎"
segmentCN(text2)
 "你"             "喜歡"           "看"             "最後的巫師獵人" "嗎" 

       可以看到“最後的巫師獵人”是一個詞,如何我們把movie這個詞典刪除點會怎麼樣呢?

uninstallDict("movie")
text2<-"你喜歡看最後的巫師獵人嗎"
segmentCN(text2)
[1] "你"   "喜歡" "看"   "最後" "的"   "巫師" "獵人" "嗎"  
     

  其實載入搜狗詞典的話我們就不用自己定義詞典,就比如前面我們往詞典裡面插入“菜鳥”和“微信公眾號”一樣。這樣可以很方便的分詞,也省去了自己新建詞典的時間。

注:本部落格及其相關資源也會發布在《跟著菜鳥一起學R語言》微信公眾平臺一起釋出

轉載請宣告原文連結 http://blog.csdn.net/wzgl__wh/article/details/52528925