MAXENT модель в R для классификации
Я пытаюсь классифицировать текст с помощью RTextTools
пакет с использованием R.
Я сделал это с помощью - SVM
(и приведенный ниже код работает отлично:)
matrix[[i]] <- create_matrix(trainingdata[[i]][,1], language="english",removeNumbers=FALSE, stemWords=FALSE,weighting=weightTf,minWordLength=3)
container[[i]] <- create_container(matrix[[i]],trainingdata[[i]][,2],trainSize=1:length(trainingdata[[i]][,1]),virgin=FALSE)
models[[i]] <- train_models(container[[i]], algorithms=c("SVM"))
Но когда я делаю то же самое с MAXENT
алгоритм
models[[i]] <- train_models(container[[i]], algorithms=c("MAXENT"))
Это выдает мне ошибку:
Error in Module(module, mustStart = TRUE) :
function 'setCurrentScope' not provided by package 'Rcpp'
Когда я сделал трассировку - получил ниже детали
Module(module, mustStart = TRUE)
.getModulePointer(x)
maximumentropy$add_samples
maximumentropy$add_samples
train_maxent(feature_matrix, code_vector, l1_regularizer, l2_regularizer,
maxent(container@training_matrix, as.vector(container@training_codes),
train_model(container, algorithm, ...)
train_models(container[[i]], algorithms = c("MAXENT"))
Обновить:
sessionInfo()
R version 3.0.2 (2013-09-25)
Platform: x86_64-w64-mingw32/x64 (64-bit)
locale:
[1] LC_COLLATE=English_Singapore.1252 LC_CTYPE=English_Singapore.1252 LC_MONETARY=English_Singapore.1252
[4] LC_NUMERIC=C LC_TIME=English_Singapore.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] tm_0.5-10 hash_3.0.1 RTextTools_1.4.2 SparseM_1.03
loaded via a namespace (and not attached):
[1] bitops_1.0-6 caTools_1.16 class_7.3-9 e1071_1.6-1 glmnet_1.9-5 grid_3.0.2
[7] ipred_0.9-3 KernSmooth_2.23-10 lattice_0.20-23 lava_1.2.4 MASS_7.3-29 Matrix_1.1-2
[13] maxent_1.3.3.1 nnet_7.3-7 parallel_3.0.2 prodlim_1.4.2 randomForest_4.6-7 Rcpp_0.10.6
[19] rpart_4.1-5 slam_0.1-31 splines_3.0.2 survival_2.37-7 tau_0.0-16 tools_3.0.2
[25] tree_1.0-34
Есть ли способ решить эту проблему.
1 ответ
Не совсем ответ, но пост здесь из-за длинной длины sessionInfo()
library(RTextTools)
> sessionInfo()
R version 3.0.2 (2013-09-25)
Platform: x86_64-w64-mingw32/x64 (64-bit)
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] RTextTools_1.4.1 tau_0.0-15 glmnet_1.9-5 Matrix_1.0-14 lattice_0.20-23 maxent_1.3.3
[7] Rcpp_0.10.5 caTools_1.14 ipred_0.9-2 e1071_1.6-1 class_7.3-9 tm_0.5-9.1
[13] nnet_7.3-7 tree_1.0-34 randomForest_4.6-7 SparseM_1.03
loaded via a namespace (and not attached):
[1] bitops_1.0-6 grid_3.0.2 KernSmooth_2.23-10 MASS_7.3-29 parallel_3.0.2 prodlim_1.3.7
[7] rpart_4.1-3 slam_0.1-30 splines_3.0.2 survival_2.37-4 tools_3.0.2
В моем случае все необходимые модули загружаются под other attached packages
тогда как в вашем случае они загружаются под loaded via a namespace (and not attached)
В случае 2 R может получить доступ к пакетам, но пользователь не может. См. В R, что означает "загруженный через пространство имен (и не присоединенный)"? для большего объяснения
Я не знаю, почему пакеты не прикреплены в вашем случае, но в качестве обходного пути вы можете попробовать это:
#grab list of package names required for RTextTools
# not_attached_list<-dput(names(sessionInfo()$otherPkgs))
#c("RTextTools", "tau", "glmnet", "Matrix", "lattice", "maxent",
#"Rcpp", "caTools", "ipred", "e1071", "class", "tm", "nnet", "tree",
#"randomForest", "SparseM")
not_attached_list<-c("RTextTools", "tau", "glmnet", "Matrix", "lattice", "maxent",
"Rcpp", "caTools", "ipred", "e1071", "class", "tm", "nnet", "tree",
"randomForest", "SparseM")
#Load the packages manually
sapply(not_loaded_list, require, character.only=TRUE)
#Check in sessionInfo if they have been attached now under 'other attached packages'
sessionInfo()
дайте нам знать, если это работает..