Open qinwf opened 8 years ago
@AlexYoung757 不一定,如果句子的词数不到 4 个,那结果也不会超过 4 个.
@qinwf 我在关键词提取的时候把topn设置成1000,但是提取的关键词数量会少于分词的数量,这是什么原原因?是不是因为有些分出来的词并不在idf语料库中?
@cnhzzx ,能给一个例句吗,我重复一下?
@qinwf
keyworker = worker("keywords",user = "user_dict.txt", stop_word = "stop_words.txt",idf = "idf.txt",topn = 1000) wk = worker(user = "user_dict.txt", stop_word = "stop_words.txt") wk["今天股票跌很厉害"] [1] "股票" "跌" "厉害" vector_keywords(wk["今天股票跌很厉害"],keyworker) 6.92433 4.76323 "厉害" "股票" keyworker 没有识别"跌"这个用wk分出来的词。我在设置keyworker这个引擎时,用了自定义的idf.txt这个idf语料库(加上了“跌”这个字的idf值,但貌似对keyworker也没有任何作用) 还有一个问题:就是我试了把”厉害”这个词从系统默认的idf语料库中删了,发现keyworker依旧能识别“厉害”这个词,而且idf值又变成了另一个不知道从哪里来的数字(not之前的 6.92433!)。我想知道这个keyworker到底是如何工作的?它在运行时调用的是哪个idf词库呢?
谢谢,我可以重现了。
这几个词是单字词,在 upstream 的源码里,单字词和停词在提取时会被跳过,see:
我不是很了解这条规则的具体目的,我先在 jiebaR 的删了这条规则吧。
cc @yanyiwu
master 已经更新了,你可以从 GitHub 安装最新版。
https://github.com/qinwf/jiebaR/commit/85e08195ce7a59784a9b883e8f186fc43221c21e
> keyworker = worker("keywords",topn = 1000)
> wk = worker()
> vector_keywords(wk["今天股票跌很厉害"],keyworker)
11.7392 6.92433 4.99212 4.76323
"跌" "厉害" "今天" "股票"
“很” 在停词表里
@qinwf 谢谢!现在已经可以用了 但就是我在系统自带的idf词库中没有找到”跌"这个词,不知道“跌”这个词对应的idf值11.7392是怎么计算得到的? (别的词比如“厉害”,我直接在系统的idf词库中可以找到其对应的idf值就是6.92433)
@qinwf 您好,假设有个list,其中包含多条文本,如果设置topn=4的话,提取的关键词一定是4个吗