我正在使用 RWeka 创建一个三元组和四元组模型。我注意到一个奇怪的行为对于三元组
TrigramTokenizer <- function(x) NGramTokenizer(x, Weka_control(min = 3, max = 3))
tdm <- TermDocumentMatrix(docs, control = list(tokenize = TrigramTokenizer))
> dim(tdm)
[1] 1540099       3
> tdm
<<TermDocumentMatrix (terms: 1540099, documents: 3)>>
 Non-/sparse entries: 1548629/3071668
 Sparsity           : 66%
 Maximal term length: 180
Weighting          : term frequency (tf)
当我删除稀疏术语时,它会将上述约 100 万行缩小到 8307
 > b <- removeSparseTerms(tdm, 0.66) 
 > dim(b)
 [1] 8307    3
对于四边形删除根本不影响它
 quadgramTokenizer <- function(x) NGramTokenizer(x, Weka_control(min = 4, max = 4))
  tdm <- TermDocumentMatrix(docs, control = list(tokenize = QuadgramTokenizer))
 <<TermDocumentMatrix (terms: 1427403, documents: 3)>>
 Non-/sparse entries: 1427936/2854273
 Sparsity           : 67%
 Maximal term length: 185
 Weighting          : term frequency (tf)
> dim(tdm)
[1] 1427403       3
> tdm <- removeSparseTerms(tdm, 0.67)
> dim(tdm)
[1] 1427403       3
删除稀疏项后有 100 万个项目。
这看起来不对。
如果我做错了什么,请告诉我
问候 Ganesh