Я пытаюсь реализовать тематическое моделирование в корпусе твитов.Для этого я использую функцию LDA()
пакета topicmodels
.
Матрица условий документа, на которой я хочу запустить функцию, выглядит следующим образом:
> dtm
<<DocumentTermMatrix (documents: 31627, terms: 19225)>>
Non-/sparse entries: 177753/607851322
Sparsity : 100%
Maximal term length: 25
Weighting : term frequency (tf)
Когда я пытаюсь использовать функцию со следующим кодом lda <- LDA(dtm, k = 5)
, я получаю эту ошибку:
> lda <- LDA(dtm, k = 5)
Error in LDA(dtm, k = 5) :
Each row of the input matrix needs to contain at least one non-zero entry
Это, вероятно, означает, что некоторые строки в dtm
состоят только из 0.Однако как это может быть?Разве это не означает, что соответствующий документ пуст (без слов)?Единственная обработка, которую я выполнял на корпусе твитов перед формированием матриц терминов-документов и терминов-документов, заключалась в удалении знаков препинания, любых чисел, стоп-слов (используя список SMART и несколько моих собственных) и дополнительных пробелов.Маловероятно, что документ (твит) состоял бы только из удаленных элементов.Следовательно, почему некоторые (многие?) Строки в dtm
имеют только нули?
Кроме того, я не могу четко понять значение и основополагающую концепцию термина "разреженность" и то, что подразумевает разреженность в 100%.Где мне искать объяснение?