我已经找到了一种使用二元组而不是单个标记在术语-文档矩阵中的方法。该解决方案已经在stackoverflow上提出,链接为:在R中查找多个术语的findAssocs。
这个想法大致如下:
然而,最后一行给了我错误提示:
如果我从最后一行中删除分词器,它将创建一个常规的tdm,所以我猜问题出现在BigramTokenizer函数中,尽管这是Weka网站在此处提供的相同示例:http://tm.r-forge.r-project.org/faq.html#Bigrams。
这个想法大致如下:
library(tm)
library(RWeka)
data(crude)
#Tokenizer for n-grams and passed on to the term-document matrix constructor
BigramTokenizer <- function(x) NGramTokenizer(x, Weka_control(min = 2, max = 2))
txtTdmBi <- TermDocumentMatrix(crude, control = list(tokenize = BigramTokenizer))
然而,最后一行给了我错误提示:
Error in rep(seq_along(x), sapply(tflist, length)) :
invalid 'times' argument
In addition: Warning message:
In is.na(x) : is.na() applied to non-(list or vector) of type 'NULL'
如果我从最后一行中删除分词器,它将创建一个常规的tdm,所以我猜问题出现在BigramTokenizer函数中,尽管这是Weka网站在此处提供的相同示例:http://tm.r-forge.r-project.org/faq.html#Bigrams。
parallel::mclapply(corpus, FUN=termFreq, control = list(tokenize = scan_tokenizer))
- Anthony