默认词库路径

显示默认词库路径:

show_dictpath()     ### 显示词典路径
worker( dict="系统词典,先加载,可以设置词频", 
        user="用户词典,系统词典加载后加载,所有词的词频为系统词典的最大词频")

打开 R包安装目录 下的 library/jiebaR/dict/ 目录下的 user.dict.utf8 文件(这个是默认载入的用户词典文件),直接往里面添加词就可以了。

用户词典打开后格式是这样的

云计算
韩玉鉴赏
蓝翔 nz
CEO
江大桥 x

系统词典打开后格式是这样的

云计算 12 n
韩玉鉴赏 23 nz
蓝翔 12 nz
CEO 100 x
江大桥 10 x

系统词典共有三列,第一列为词项,第二列为词频,第三列为词性标记。各列用空格分隔。用户词典有两列,第一列为词项,第二列为词性标记。用户词库默认词频为系统词库中的最大词频,如需自定义词频率,可将新词添加入系统词库中。

词典中的词性标记采用ictclas的标记方法。如果不知道怎么标记词性,可以不填写,直接导入词条就可以了。

转换词库推荐使用 深蓝词库转换 或者 分词词典工具 cidian 包 构建分词词库。它们可以快速地将搜狗细胞词库等输入法词库转换为jiebaR的词库格式。

注意:如果使用深蓝词库转换导出时不需要拼音项,导出词条即可。

比如用户词库只需要新建成如下:

摩尔定律
三角函数
内容存取存储器
操作系统

jieba.dict.utf8 是默认载入的系统词典,共有三列,第一列为词项,第二列为词频,第三列为词性标记。 user.dict.utf8 是默认载入的用户词典。

温馨提示

如果不使用另外的词典,新建worker的时候,可以不用指定词典路径,会自动查找,比如

> cutter = worker(type  = "mix", dict = "D:/Program Files/R/R-3.1.2/library/jiebaR/dict/jieba.dict.utf8",
+        hmm   = "D:/Program Files/R/R-3.1.2/library/jiebaR/dict/hmm_model.utf8",  
+        user  = "D:/Program Files/R/R-3.1.2/library/jiebaR/dict/user.dict.utf8",
+        detect=T,      symbol = F,
+        lines = 1e+05, output = NULL
+ )

可以省略为

> cutter = worker(type  = "mix")

如果指定用户词典目录,只需要写user这个参数就可以了,多写容易错,用默认就好。

> cutter = worker(type  = "mix",user  = "D:/somefile.xxx")

多词典 与 动态添加新词

v0.8 版本增加了多用户词典功能,多用户词典路径间用 |; 分隔。

还可以在原有 worker 上动态增加新词,使用 new_user_word

> cc = worker()
> cc["宠物小精灵"]
[1] "宠物"   "小精灵"
> new_user_word(cc,"宠物小精灵","n")
[1] TRUE
> cc["宠物小精灵"]
[1] "宠物小精灵"

建立多个分词器

比如user词库,在 C:/user.txt

北京大学
清华大学

新建分词器 cutter1 = worker(user = “C:/user.txt”)

如果需要再加入几个大学,使用文本编辑器(推荐使用 VS Code 等较为专业的编辑器),打开这个文件,然后一行输入一个词,就可以了。输入完以后,需要重新加载worker,设置 user=”刚才设置的文本文件的路径”

北京大学
清华大学
浙江大学

新建分词器 cutter2 = worker(user = “C:/user.txt”)

这样,R 里就有两个分词器,可以调用任何一个分词器,对比不同分词器的结果。