我正在尝试为语料库制作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标记化?
答案 0 :(得分:4)
tokenizer选项似乎不适用于Corpus(SimpleCorpus)。使用VCorpus代替解决了问题。