использование text2vec для многоуровневой классификации

Я хочу знать, можно ли использовать пакет text2vec для классификации с несколькими метками, например BinaryRelevance Python в skmultilearn.problem_transform. В настоящее время я имею в виду конвейер, задокументированный по адресу: http://text2vec.org/vectorization.html


person savi    schedule 20.09.2018    source источник
comment
Вы можете использовать пакет mlr, который предоставляет многоуровневую оболочку для классификаторов.   -  person TMrtSmith    schedule 05.04.2019


Ответы (1)


Вы можете использовать text2vec для создания матрицы терминов документа (dtm). Для создания dtm вы можете использовать http://text2vec.org/vectorization.html. Когда ваша матрица dtm будет готова, вы можете использовать ее для классификации по нескольким меткам. Для классификации модель xgboost является одной из хороших моделей, которая обсуждается в https://rpubs.com/mharris/multiclass_xgboost.

library(xgboost)

# dtm_train is the training matrix obtained by text2vec  
# dtm_test is the testing matrix obtained by text2vec    
# label_train is labels for dtm_trian; should be factors
# label_train <- factor(label_train, labels = classes)

nclass <- 3  # how many classes you have
param       <- list("objective" = "multi:softmax", # multi class classification
               "num_class"= nclass ,          # Number of classes
               "eval_metric" = "mlogloss",    # evaluation metric 
               "nthread" = 8,                # number of threads to be used 
               "max_depth" = 16,             # maximum depth of tree 
               "eta" = 0.3,                  # step size shrinkage 
               "gamma" = 0,                  # minimum loss reduction 
               "subsample" = 0.7,            # part of data instances 
               "colsample_bytree" = 1,       # subsample ratio 
               "min_child_weight" = 12       # minimum sum of instance weight 
)

bst = xgboost(
 param=param,
 data =as.matrix(dtm_train),
 label = label_training,
 nrounds=200)

# Make prediction on the testing data.
pred <- predict(bst, as.matrix(dtm_test))

Надеюсь поможет.

Пожалуйста, дайте мне знать, если вам нужно дополнительное объяснение.

person Sam S    schedule 29.10.2018