R语言怎么给中文分词?

浏览: 1322

1.准备包

    ①rJava包

    ② Rwordseg包

    ③java环境

    ④搜狗词库(此为扩展词库)

   Rwordseg包依赖于rJava包。由于Rwordseg包并没有托管在CRAN上面,而是在R-Forge上面,因此在在R软件上面直接输入install.packages("Rwordseg")会提示错误。因此,我们需要在软件菜单栏点击 程序包

   选择软件库 在选择R-Forge 即可,然后输入install.packages("Rwordseg")应该就OK了。或者输入下面代码:

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


一切准备工作做好了我们就可以进行分词了。首先加载我们所需要的包。然后对“ 我非常喜欢《跟着菜鸟一起学R语言》这个微信公众号 ”这句话进行分词。


  1. library(Rwordseg)  

  2. library(rJava)  

  3. text<-"我非常喜欢《跟着菜鸟一起学R语言》这个微信公众号"  

  4. segmentCN(text)  


分词结果为:

[1] "我"    "非常"  "喜欢"  "跟"    "着"    "菜"    "鸟"    "一起"  "学"    "R语言"     "这个"  "微信"  "公众"  "号"   

     我们可以发现这个分词有问题,比如说 “菜鸟”和“公众号”是一个词,但这里却分开了。我们该怎么处理呢?Rwordseg包里面提供了一个insertWords函数,具体如下

  1. insertWords(strwords,  

  2.     analyzer = get("Analyzer", envir = .RwordsegEnv),  

  3.     strtype = rep("userDefine", length(strwords)),  

  4.     numfreq = rep(1000, length(strwords)), save = FALSE)  


     这就是insertWords函数,其中save参数是指 是否把这个词保存到词典里面。

  1. insertWords(c("菜鸟","公众号"),save=TRUE)   

     这样的话,菜鸟 和 公众号 就成两个词了。再次运行

  1. insertWords(c("菜鸟","公众号"),save=TRUE)   

 结果为

[1] "我"     "非常"   "喜欢"   "跟"     "着"     "菜鸟"   "一起"   "学"     "R语言"  "这个"   "微信"   "公众号"

但是如果我们不需要“菜鸟”这个分词了怎么办,这个时候我们就可以使用deleteWords()函数来从词典中删除这个分词。

  1. deleteWords(c("菜鸟","公众号"),save=TRUE)  

    这次我们在看看结果。

 [1] "我"    "非常"  "喜欢"  "跟"    "着"    "菜"    "鸟"    "一起"  "学"    "R语言" "这个"  "微信"  "公众"  "号"  

    接下来我们使用一下搜狗的扩展词库,由于电影跟新速度较快,我这里下载了搜狗的热门电影大全词库,如何加载使用搜狗词库,点击可以我的另外一条推送。

  1. installDict("热门电影大全.scel","movie")   

59391 words were loaded! ... New dictionary 'movie' was installed!

     我把下载的词库放在了当前的工作目录下面了,所以直接输入词典名,没有添加地址。加载了该词典。如果出现上面的句子则表示这个词典加载成功了,我们命名为movie。

     现在我们来测试一下面这个句子: 你喜欢看最后的巫师猎人吗

  1. text2<-"你喜欢看最后的巫师猎人吗"  

  2. segmentCN(text2)  

 "你"             "喜欢"           "看"             "最后的巫师猎人" "吗" 

       可以看到“最后的巫师猎人”是一个词,如何我们把movie这个词典删除点会怎么样呢?

uninstallDict("movie")  

  1. text2<-"你喜欢看最后的巫师猎人吗"  

  2. segmentCN(text2)  

[1] "你"   "喜欢" "看"   "最后" "的"   "巫师" "猎人" "吗"  
     

  其实加载搜狗词典的话我们就不用自己定义词典,就比如前面我们往词典里面插入“菜鸟”和“微信公众号”一样。这样可以很方便的分词,也省去了自己新建词典的时间。

推荐 1
本文由 王亨 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册