有没有rtexttools的替代方案或者其他用于这种分类方法的包,因为这些包已经被删除了,包括maxent和glmnet,它们依赖于rtexttools,反之亦然;这是我尝试应用和分类的脚本
library(maxent)library(openxlsx)library(RTextTools)library(readxl)library("tm")library("SnowballC")library("wordcloud")library("RColorBrewer")library("tidyverse")library(purrrlyr)library(text2vec)library(caret)library(glmnet)library(ggrepel)library(arm)cas = read_excel("C:/Users/Desktop/Modelo JUN19/Copia de Data Final Entrenamiento - ML DS CAS - 21-06-2019 - REV01.xlsx")datos=data.frame(clase=cas$servicio,text=cas$a_subject)trainIndex <- createDataPartition(datos$clase, p = 0.8, list = FALSE,times = 1)data_train=datos[trainIndex,]data_test=datos[-trainIndex,]matrix_train <- create_matrix(data_train$text,language="spanish",stemWords=FALSE)matrix_test <- create_matrix_test(data_test$text,language="spanish",stemWords=FALSE, originalMatrix=matrix_train )container_train <- create_container(matrix_train,data_train$clase, trainSize=1:length(data_train$clase),virgin=FALSE)container_test <- create_container(matrix_test,labels=rep(0,length(data_test$clase)), trainSize=1:length(data_test$clase), virgin=FALSE)##################### SVM#linealt_svm_lineal <- Sys.time() model_SVM_lineal <- train_model(container_train, "SVM", kernel="linear")print(difftime(Sys.time(), t_svm_lineal, units = 'mins'))#Clasificación según el modeloclas_svm_lineal_train <- classify_model(container_train, model_SVM_lineal )clas_svm_lineal_test <- classify_model(container_test, model_SVM_lineal )# tasa acertadoaceptacion_svm_lineal_train=summary(as.character(data_train$clase)==as.character(clas_svm_lineal_train$SVM_LABEL))aceptacion_svm_lineal_test=summary(as.character(data_test$clase)==as.character(clas_svm_lineal_test$SVM_LABEL))#Resumen de las categoriassummary(clas_svm_lineal_train$SVM_LABEL)table(clas_svm_lineal_train$SVM_LABEL,data_train$clase)table(clas_svm_lineal_test$SVM_LABEL,data_test$clase)
回答:
首先,这些包已经不在CRAN
上,但如果你想用它们,仍然可以从存档中安装它们:
install.packages("https://cran.r-project.org/src/contrib/Archive/maxent/maxent_1.3.3.1.tar.gz", type = "source", repos = NULL)install.packages("https://cran.r-project.org/src/contrib/Archive/RTextTools/RTextTools_1.4.2.tar.gz", type = "source", repos = NULL)
我最近用一些更现代的实现进行了测试,特别是maxent 仍然表现得很好,可能会在某个时候找到一个新家。
其次,有许多用于文本分类和机器学习的替代方案。对于机器学习本身,caret
包(手册)还不错,可以处理一些文本分类。但是,请记住,它并不是为文本优化的。一个非常酷的新包,希望很快能进入CRAN,是quanteda.classifiers,而quanteda
本身已经实现了朴素贝叶斯(教程)。
第三,还有很多其他包是我不知道的,我不敢建议哪个更适合你想要做的任何事情。我之前发现了一个讨论一些选项的线程:https://github.com/bnosac/ruimtehol/issues/11。