Изменение значений матрицы от 0 до 0,001 не будет работать с topicmodels::LDA
.
В коде есть проверка, которая ожидает, что все значения будут целочисленными. Это означает, что значения 0,001 не допускаются. Смотрите пример ниже:
m_replaced_zero <- matrix(c(1, 1, 0.001, 0), nrow = 2)
LDA(m_replaced_zero)
Error in !all.equal(x$v, as.integer(x$v)) : invalid argument type
Как ни странно, ошибка, которую вы получаете, означает, что в вашей матрице есть строка, содержащая только 0. Этого не должно произойти, если вы не удалили некоторые термины из своей матрицы документов, что привело к появлению строки, в которой нет значения 1 или более. Смотрите пример ниже.
m_zero_row <- matrix(c(1, 0, 1, 0), nrow = 2)
[,1] [,2]
[1,] 1 1
[2,] 0 0
LDA(m_zero_row)
Error in LDA(m_zero_row) :
Each row of the input matrix needs to contain at least one non-zero entry
Но если вы настроены на замену разреженных записей в матрице документа, вам сначала нужно преобразовать ее в матрицу, а затем заменить 0.
data("AssociatedPress")
m <- as.matrix(AssociatedPress)
m[m==0] <- 0.001