У меня точно такой же вопрос в сообщении , за исключением того, что я использовал #quanteda для генерации dfm для модели svm (потому что мне нужно иметь точные данные для прогнозирования перекрестного подтверждения): How to recreate same DocumentTermMatrix with new (test) dataR: Восстановить матрицу с теми же документами с новыми данными
Однако мое обучающее множество (trainingtfidf как crude1.dtm в посте) имеет 170000+ документов и 670000+ в моем тестовом наборе (testtfidf как crude2.dtm в должности), так что я не мог преобразовать мой новый тест установлен либо на матрицу, либо на фрейм данных:
>testtfidf <- as.data.frame(testtfidf)
Error in asMethod(object) :
Cholmod error 'problem too large' at file ../Core/cholmod_dense.c, line 105
Так что я пытался сделать это как DFM непосредственно:
# Keep the column names in test set which are shared with training set
testtfidf1 <- testtfidf[, intersect(colnames(testtfidf), colnames(trainingtfidf))]
# Extracting column names in training set but not in testset
namevactor <- colnames(protocoltfidf)[which(!colnames(protocoltfidf) %in% colnames(testtfidf1)==TRUE)]
# Add the columns back to test set and set the elements as NA since the terms do that exist in the test set
testtfidf1[,namevactor] <- NA
Но он дал мне ошибку в последней строке:
Error in intI(i, n = di[margin], dn = dn[[margin]], give.dn = FALSE) :
invalid character indexing
Может ли один помочь мне с этим? Я боролся в течение двух дней, и я так близок, чтобы это сделать! Благодаря!