亲爱的小伙伴们!阔别大家将近10天,是不是等得有些着急了呢?本期大猫课堂将继续《R文本挖掘》系列,上节课中已经教大家
如何用jiebaR分词包进行分词,本期将教大家一个更加进阶的分词功能:
把搜狗专业词库添加进自己的用户自定义词典中。
稍微对中文文本挖掘有所了解的小伙伴们都知道,虽然当前的分词统计模型已经具有了部分识别未登记词(没有录入到内置词库中的词)的能力,但是分词的好坏很大程度上仍旧取决于内置词库的的全面与准确性,这对一些专业领域来说尤其明显。以财政金融领域为例,“应付账款”是会计科目中的一个固有科目,应该被认为是一个词,但是如果词库不充分,可能就会被分成“应付”与“账款”两个词。同理,“头肩底”是用于描述K线的一个专用术语,但是一般的词库往往无法识别。
那么有没有什么办法有效获得大量的第三方专业词库呢?答案是肯定的,
“搜狗细胞词库”为大家提供了大量的专业领域词汇。但是搜狗词库具有专门的.sel格式,词库导出与导入非常麻烦,这时,我们就要请出本期的主角:
搜狗细胞词库转化包cidian,它不仅能够在R中将搜狗细胞词库转化为可读的词库,并且还能直接被分词包jiebaR调用!
二、学习cidian包,并用cidian将单个搜狗词库转化为独立的.txt词库文件。
下面讲解如何安装cidian包,包括一些cidian需要依附的其他包。需要注意的是,cidian包没有发布在CRAN中,而是发布在github.com中,安装需要使用install_github()函数。
注:github是世界上最大的第三方开源代码托管网站,许多R包的作者都把自己的代码放在github上进行托管与共享。
因为cidian没有经过CRAN发布,所以需要首先获得开发者工具才能进行安装。获得开发者工具的方法很简单,只要登陆https://cran.r-project.org/bin/windows/Rtools/,然后选择下载Rtools33就可以了(假设你现在的R版本是最新的)。
注:安装Rtools开发者工具,就好比,额,你root你的手机从而获得超级管理员权限一样……
接着,在安装cidian前,我们还需要先安装以下几个包:
1> install.packages("devtools")
2> install.packages("stringi")
3> install.packages("pbapply")
4> install.packages("Rcpp")
5> install.packages("RcppProgress")
1> “devtools”是一个R的开发者工具,由于cidian没有发布在CRAN上(可以认为是一个非正式的包),因此需要先安装开发者工具才能进行后续安装。
3> “pbapply”能够为*apply族函数增加进度条(progress bar)
4> “Rcpp”,“RcppProgress”能够让R直接调用外部的C++程序,大大增加运算速度(jieba本身就是一个C++库,jiebaR则是把这个C++库用R封装了)。
library(devtools)
install_github("qinwf/cidian")
其中,install_github()是用来从github上安装R包的函数,“qinwf”的意思则是,额,cidian作者的名字应该叫秦文峰……
搜狗细胞词库的下载地址为:http://pinyin.sogou.com/dict/。点进去后小伙伴们可以搜索自己要的词库,在这里我们假设要使用的词库是“财经金融词汇大全【官方推荐】”,如下:
小伙伴们点击“立即下载”就可以下载到本地,词库的扩展名是.sel。大猫已经下载了非常多金融类的词库,如下:
dir.path <- "C:/财经金融词汇大全【官方推荐】.scel"
decode_scel(scel = str_c(dir.path,".scel"),? ? output = paste0(dir.path,".txt"),
首先,我们建立变量dir.path用来保存词库的路径。注意,这里的路径需要带上扩展名!
其次,
decode_scel()函数就是用来转换词库的关键函数——
参数scel用来给出细胞词库的路径(记住要带上扩展名哦);
output给出输出文件的路径,我们在这里把他放到了和原细胞词库同一个路径下面,并且将其扩展名改为.txt;
cpp = TRUE表示采用Rcpp(速度会更快)
progress = TRUE表示显示转换进度条。由于一般而言转换速度非常快,所以是否显示进度条意义不大。
不知小伙伴们有没有发现,
目前大猫教大家的方法只适用于单一的词库,如果需要一次性导入几十个乃至几百个词库,总不可能把路径一个个用硬代码写出来把?此外,
如何把转化后的众多词库拼成一个单一的词库、并且去掉重复的词条呢?想知道更多技巧,请关注下一期的大猫的R语言课堂吧!
?

我是
大猫,我是一个高中读文科但却在代码、数学的路上狂奔不止的Finance Ph. D Candidate。
我的
R语言课堂关注R语言、数据挖掘以及经济金融学。
(编辑:威海站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|