как учитывать дополнительные переменные
Я работаю над задачей классификации, используя квантеду в R, и я хочу включить некоторые переменные, которые будут рассматриваться моими моделями, помимо пакета слов.например, я вычислил индексы настроения на основе словаря и хотел бы включить эти переменные, чтобы модели их учитывали.
это индексы, которые я создал, для каждого документа.
dfneg <- cbind(negDfm1@docvars$label , negDfm1@x ,posDfm@x , angDfm@x ,
disgDfm1@x)
colnames(dfneg) <- c("label","neg" , "pos" , "ang" , "disg")
dfneg <- as.data.frame(dfneg)
это матрица возможностей документа, с которой я буду работать:
DFM
newsdfm <- dfm(newscorp, tolower = TRUE , stem = FALSE , remove_punct =
TRUE, remove = stopwords("english"),verbose=TRUE)
newst<- dfm_trim(newsdfm , min_docfreq=2 , verbose=TRUE)
id_train <- sample(1:6335, 5384, replace = FALSE)
# create docvar with ID
docvars(newst, "id_numeric") <- 1:ndoc(newst)
# get training set
train <- dfm_subset(newst, id_numeric %in% id_train)
# get test set (documents not in id_train)
test <- dfm_subset(newst, !id_numeric %in% id_train)
наконец, я запускаю классификацию, например, наивный байесовский классификаторили лассо
наивный байесовский классификатор или лассо
NBmodel <- textmodel_nb(train , train@docvars$label)
lasso <- cv.glmnet(train, train@docvars$label,
family="binomial", alpha=1, nfolds=10,
type.measure="class")
это то, что я пробовал после создания dfm, но это не сработало
newsdfm@Dimnames$features$negz <- dfneg$neg
newsdfm@Dimnames$features$posz <- dfneg$pos
newsdfm@Dimnames$features$angz <- dfneg$ang
newsdfm@Dimnames$features$disgz <- dfneg$disg
, тогда я подумалсоздания переменных документа перед созданием newsdfm
docvars(newscorp , "negz") <- dfneg$neg
docvars(newscorp , "posz") <- dfneg$pos
docvars(newscorp , "angz") <- dfneg$ang
docvars(newscorp , "disgz") <- dfneg$disg
, но в этот момент я не знаю, как сказать классификатору, что я хочу, чтобы он рассматривал также эти переменные документа в дополнение к пакету слов.
Таким образом, я ожидаю, что модель будет учитывать как матрицу со всеми словами для каждого документа, так и индексы, которые я создал для каждого документа.
Любое предложение будет высоко оценено
заранее спасибо,
Карло