我尝试将Text文档分类为多个类别。 我的下面代码工作正常
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
格式并获得精确度,召回率和准确度值。
我的目标是获得多类分类器的精度,召回率,准确度值和混淆矩阵。 是否有任何其他包可以获得多类文本分类器的上述值(一对所有)
答案 0 :(得分:8)
正如user3294343评论的那样,我将我的类字段转换为因子,然后转换为数字,如下所示:
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)
这解决了我的错误。
答案 1 :(得分:0)
上面提到的技巧对我有用,转换为因子
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)