前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R文本挖掘 | 如何在用户词库中添加搜狗词典?

R文本挖掘 | 如何在用户词库中添加搜狗词典?

作者头像
用户7652506
发布2020-10-23 16:25:31
4.8K3
发布2020-10-23 16:25:31
举报
文章被收录于专栏:大猫的R语言课堂

在前面

亲爱的小伙伴们!阔别大家将近10天,是不是等得有些着急了呢?本期大猫课堂将继续《R文本挖掘》系列,上节课中已经教大家如何用jiebaR分词包进行分词,本期将教大家一个更加进阶的分词功能:把搜狗专业词库添加进自己的用户自定义词典中。

稍微对中文文本挖掘有所了解的小伙伴们都知道,虽然当前的分词统计模型已经具有了部分识别未登记词(没有录入到内置词库中的词)的能力,但是分词的好坏很大程度上仍旧取决于内置词库的的全面与准确性,这对一些专业领域来说尤其明显。以财政金融领域为例,“应付账款”是会计科目中的一个固有科目,应该被认为是一个词,但是如果词库不充分,可能就会被分成“应付”与“账款”两个词。同理,“头肩底”是用于描述K线的一个专用术语,但是一般的词库往往无法识别。

那么有没有什么办法有效获得大量的第三方专业词库呢?答案是肯定的,“搜狗细胞词库”为大家提供了大量的专业领域词汇。但是搜狗词库具有专门的.sel格式,词库导出与导入非常麻烦,这时,我们就要请出本期的主角:搜狗细胞词库转化包cidian,它不仅能够在R中将搜狗细胞词库转化为可读的词库,并且还能直接被分词包jiebaR调用!

听着是不是非常酷炫?快点进入本期课堂吧!

期目标

一、了解如何从github上安装包

二、学习cidian包,并用cidian将单个搜狗词库转化为独立的.txt词库文件。

github上安装R包

下面讲解如何安装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上(可以认为是一个非正式的包),因此需要先安装开发者工具才能进行后续安装。

2> “stringi”是一个强大的字符处理包。

3> “pbapply”能够为*apply族函数增加进度条(progress bar)

4> “Rcpp”,“RcppProgress”能够让R直接调用外部的C++程序,大大增加运算速度(jieba本身就是一个C++库,jiebaR则是把这个C++库用R封装了)。

经过了这些铺垫,我们就可以安装cidian包了:

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"),

cpp = TRUE,

progress = TRUE)

首先,我们建立变量dir.path用来保存词库的路径。注意,这里的路径需要带上扩展名!

其次,decode_scel()函数就是用来转换词库的关键函数——

参数scel用来给出细胞词库的路径(记住要带上扩展名哦);

output给出输出文件的路径,我们在这里把他放到了和原细胞词库同一个路径下面,并且将其扩展名改为.txt;

cpp = TRUE表示采用Rcpp(速度会更快)

progress = TRUE表示显示转换进度条。由于一般而言转换速度非常快,所以是否显示进度条意义不大。

最终,控制台输出告诉我们文件已经生成完毕:

转化后的txt词库文件的样子如下:

阶技巧

不知小伙伴们有没有发现,目前大猫教大家的方法只适用于单一的词库,如果需要一次性导入几十个乃至几百个词库,总不可能把路径一个个用硬代码写出来把?此外,如何把转化后的众多词库拼成一个单一的词库、并且去掉重复的词条呢?想知道更多技巧,请关注下一期的大猫的R语言课堂吧!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2016-05-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大猫的R语言课堂 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云开发 CLI 工具
云开发 CLI 工具(Cloudbase CLI Devtools,CCLID)是云开发官方指定的 CLI 工具,可以帮助开发者快速构建 Serverless 应用。CLI 工具提供能力包括文件储存的管理、云函数的部署、模板项目的创建、HTTP Service、静态网站托管等,您可以专注于编码,无需在平台中切换各类配置。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档