R - bigram tokenizer中的文档术语矩阵不起作用

时间:2017-03-05 04:11:50

标签: r tokenize tm n-gram rweka

我正在尝试为语料库制作2个文档术语矩阵,一个用unigrams,一个用bigrams。但是,二元矩阵目前与单字母矩阵完全相同,我不确定原因。

代码:

docs<-Corpus(DirSource("data", recursive=TRUE))

# Get the document term matrices
BigramTokenizer <- function(x) NGramTokenizer(x, Weka_control(min = 2, max = 2))
dtm_unigram <- DocumentTermMatrix(docs, control = list(tokenize="words", 
    removePunctuation = TRUE, 
    stopwords = stopwords("english"), 
    stemming = TRUE))
dtm_bigram <- DocumentTermMatrix(docs, control = list(tokenize = BigramTokenizer,
    removePunctuation = TRUE,
    stopwords = stopwords("english"),
    stemming = TRUE))

inspect(dtm_unigram)
inspect(dtm_bigram)

我也尝试使用ngram包中的ngram(x,n = 2)作为标记器,但这也不起作用。如何修复bigram标记化?

1 个答案:

答案 0 :(得分:4)

tokenizer选项似乎不适用于Corpus(SimpleCorpus)。使用VCorpus代替解决了问题。