Create_Analytics в RTextTools

Я пытаюсь классифицировать текстовые документы по количеству категорий. Мой код ниже работает нормально

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:50,testSize=51:100) ,
models[[i]] <- train_models(container[[i]], algorithms=c("MAXENT","SVM"))
results[[i]] = classify_models(container[[i]],models[[i]])

Когда я пытаюсь использовать приведенный ниже код, чтобы получить значения точности, отзыва, точности:

analytic[[i]]  <- create_analytics(container[[i]], results[[i]])

Я получаю следующую ошибку:

Error in `row.names<-.data.frame`(`*tmp*`, value = c(NA_real_, NA_real_ : 
  duplicate 'row.names' are not allowed

Мои Categories имеют формат text. Если я конвертирую эти categories в Numeric - приведенный выше код работает нормально.

Есть ли обходной путь, чтобы сохранить категории в формате text и получить значения точности, отзыва, точности.

Моя цель - получить значения точности, отзыва, точности и матрицу путаницы для многоклассового классификатора. Есть ли какой-либо другой пакет для получения вышеуказанных значений для классификатора Multi-Class Text (один против всех)


person Prasanna Nandakumar    schedule 09.05.2014    source источник
comment
можешь попробовать, если factor(Categories) работает на тебя   -  person Silence Dogood    schedule 10.05.2014
comment
Есть ли обходной путь, чтобы сделать это   -  person Prasanna Nandakumar    schedule 19.05.2014
comment
У меня такая же ошибка. в RTextTools::create_analytics есть локальная функция, называемая сводкой create_Topic, которая имеет testing_codes ‹- as.numeric(as.vector(container@testing_codes)) Это заставляет NA заполнить testing_codes. Все еще изучаю это.   -  person HowYaDoing    schedule 11.07.2014
comment
Хорошо, я получил его на работу. Мне пришлось 1. преобразовать его в коэффициент. Затем преобразуйте коэффициент в число. Я думаю, это как класс 1 -> 1, класс 2-> 2. Если вы посмотрите на пример в RTextTools: Учебный пакет для классификации текста под наблюдением, в примере используется USCongress$major в качестве метки класса. Это оказалось целым числом.   -  person HowYaDoing    schedule 11.07.2014


Ответы (2)


Как прокомментировал пользователь 3294343, у меня сработало преобразование поля моего класса в фактор, а затем в числовое значение следующим образом:

doc_matrix <- create_matrix(dataset.arff$text, language="english", removeNumbers=TRUE, stemWords=TRUE, removeSparseTerms=.998)
container <- create_container(doc_matrix, as.numeric(factor(dataset.arff$"@@class@@")), trainSize=1:1500, testSize=1501:1999, virgin=FALSE)

Это решило ошибку для меня.

person dsg    schedule 16.12.2014

Вышеупомянутый трюк сработал для меня, конвертировать в множители

matrix <- create_matrix(combinedDF["error"], language="english", 
                    removeNumbers=TRUE, stemWords=FALSE, weighting=tm::weightTfIdf)
len <- dim(combinedDF)[1]
container <- create_container(matrix,as.numeric(factor(combinedDF$class)),trainSize=1:len, testSize=1:len, 
                          virgin=TRUE)
maxent_model <- train_model(container,"MAXENT")
maxent_results <- classify_model(container,maxent_model)
analytics <- create_analytics(container, maxent_results, b=1)
person Shubham    schedule 04.02.2016
comment
подскажите, пожалуйста, в чем разница между вашим ответом и ответом из дсг? - person Hardik Gupta; 10.01.2017