• R语言
  • jiebaR如何动态添加用户自定义词典

如题。Rwordseg包词典添加有两种方案,除了安装词典外,利用insertWords函数可以在内存中随时动态地加入词典。
不知道jiebaR中有没有类似insertWords这种函数?只有edit_dict一种方案吗?
edit_dict("user")能不能不使用交互方式,即直接将R内存中指定的字符串向量保存起来?
如果使用user词典,是不是意味着jieba.dict就不再使用了?

相关文档说明不太清楚,请作者示例一下。
可以动态地建立分词器,worker(dict="系统词典,先加载,可以设置词频", user="用户词典,系统词典加载后加载,所有词的词频为系统词典的最大词频。")

如果需要添加词,直接打开记事本,然后一行输入一个词,就可以了。输入完以后,user="刚才设置的文本文件的路径",

用户词典不需要设置词频,是因为很有可能,用户也不太清楚一个词的词频是什么,但是加入用户词典的词,很有可能是要切分出来的,所以默认设置最大词频,保证这个词能够最大程度地被切出来,如果需要设置词频,可以把词加入到系统词典里。

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

北京大学
清华大学

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

如果需要再加入几个大学,打开这个文件,


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

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

这样,R 系统里就有两个分词器,可以动态地调用你想用的,对比不同分词器的结果。

没有insertWords()对应的函数。如果需要将 R 的字符向量导入词库,可以使用 writeLines()函数,将对应的字符写入词库文件,然后使用修改后的词库,初始化分词器就可以了。

con = file("C:/user.txt", open = "a", encoding = "UTF-8") # 打开文件
writeLines("一个字符向量", con) # 具体可以看 writeLines 的文档。

writeLines()函数在Windows上可能会乱码。建议使用 writeBin ,在 Windows 上写入文件。

当然,如果要加入的词不多,最简单的方法,就是打开对应的文件直接添加词了。
2 年 后
作者您好!
用记事本打开user.dict.utf8文件后,显示是这样的:
云计算韩玉鉴赏蓝翔 nzCEO江大桥

添加词汇后,在R中运行就会出错:
例如: 编写词典文件,user.utf8。
~ notepad user.utf8
R语言
R的极客理想
大数据
数据
使用自定义的用户词典
> wk = worker(user='user.utf8')
R就会提示有致命(fatal)的错误,而退出R。
请问如何解决?
    4 个月 后

    是在用worker(dict="系统词典,先加载,可以设置词频", user="用户词典,系统词典加载后加载,所有词的词频为系统词典的最大词频。")是,将user=“这里添加你自己的分词包txt地址,要utf-8格式的”