qinwf / jiebaR

Chinese text segmentation with R. R语言中文分词 (文档已更新 🎉 :https://qinwenfeng.com/jiebaR/ )

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

自定义分词词库

tammy2015 opened this issue · comments

为什么我自定义词库后,不能用我自定义的词来分词。
test = worker(user = "selfdict_160115.txt")
之后,依然没有用
在Rwordseg包中,insertWords(selfdict),可以按自己新增的词来分词,但Rwordseg包分词太细,jiebaR可以实现这样吗

commented

请看一下 词典文件的编码是不是 UTF-8 格式,如果不是,读取的时候可能是乱码。

可以,v0.8 增加了 new_user_word(worker, words, tags) ,可以增加词。

> cc = worker()
> cc["嘻嘻哈"]
[1] "嘻嘻" "哈"  
> new_user_word(cc, "嘻嘻哈","n")
[1] TRUE
> cc["嘻嘻哈"]
[1] "嘻嘻哈"

谢谢,我试试

插入新词和提取关键字可以同时使用吗?
这里提取关键词的个数可以由文本长短来决定取几个吗?

temp = c("宠物小精灵 宠物小精灵 改编自日本人气动漫宠物小精灵真实还原了主人公立志成为神奇宝贝大师和小精灵一起踏上旅途一路上主人公邂逅了不少同伴劲敌好友和他们展开了一次又一次冒险通过一次又一次的难关不断成长成为小精灵大师", "上海车辆违章查询系统更多功能即将开启,敬请关注!")
cc = worker("keywords", topn = 1)
#cc = worker("tag")
new_user_word(cc,selfdict,rep("n",length(selfdict)))
cc <= temp[1]
57.5139 29.8483 18.6587
"小精灵" "宠物" "一次"

不管是 "keywords"用tfidf还是 simHash 用hash算法 ,提取关键字都不是很准确,对于从许多段文本中,对每个短文本提取关键字有什么推荐吗

commented
> cc = worker("keywords",topn = 1)
> new_user_word(cc,"宠物小精灵","sd")
Error: inherits(worker, "jieba") is not TRUE
> cc = worker("mix",topn = 1)
> new_user_word(cc,"宠物小精灵","sd")
[1] TRUE

new_user_word 是针对分词 worker 的,可以先分词,然后使用 vector_keywords,输入分词后的文本。

如果有的词确定是要使用的,可以把他们加入到词典文件里,new_user_word 主要是方便临时加词。

目前我了解的好像还没有其他针对中文的关键词提取的包。如果觉得提取的结果不理想,可以看一下其他的提取方法,或者自己写一小段程序根据需求的来提取。

你现在可以把提取数目设置得大一些,然后,在得到提取结果后,自己选择前几个。我在下一个版本里增加一个选项,可以输出排序后的所有结果。

讲词加入词典是用 edit_dict(name = "system") 这个函数吗

你有什么提取文本特征的方法建议吗,我用过tfidf、互信息等,我的是许多短文本,效果都不好

我想分词的词长尽可能长,例如“宠物小精灵” “车辆违规查询” “陈乔恩代言” 等词就不要进一步拆分了,但我又不可能自己去看一边所有文本 把这些词列举全,你有推荐相关的办法 或者词库推荐吗

我问题太多了,谢谢哈

commented

没什么, 可能是我的文档写得不清楚。http://qinwenfeng.com/jiebaR/

词典文件的位置可以设定的。只要是文本文件就行,系统词典三列,词 空格 词频 空格 词性。用户词典两列,词 空格 词性。

如果不设定,就是用默认路径 jiebaR::USERPATHjiebaR::DICTPATH

Windows 下换行符与 Linux 下不一样,直接用记事本打开,词典显示会是一行。推荐用 notepad, sublimetext 之类的文本编辑器打开。