RWeka удалить разреженные термины

Я создаю модель триграммы и квадриграммы, используя 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)

Когда я удаляю разреженные термины, он сокращает указанный выше ~ 1 миллион строк до 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

Имеет 1 миллион элементов после удаления разреженных терминов.

Это не выглядит правильно.

Пожалуйста, дайте мне знать, если я делаю что-то не так

С уважением Ганеш


person Tinniam V. Ganesh    schedule 19.07.2015    source источник


Ответы (1)


Это странно. Логичным поведением является то, что удаление разреженных терминов удалит многое в обоих случаях, поскольку триграммы и квадрограммы являются менее распространенными однограммовыми случаями. Есть ли в вашем сеансе какой-либо другой объект QuadgramTokenizer? ваша исходная функция вызывается с маленькой буквой "q" quadgramTokenize. Но мне интересно, почему он не показал ошибку, он мог принять его за пустой? Я думаю, что это должно быть что-то настолько простое, как это. Проверьте это, и если нет, я запущу его с образцом данных и посмотрю, что здесь может быть не так.

person Dr VComas    schedule 11.08.2015