Rtext 3.5.2或最新R版本的rtexttools软件包替代

时间:2019-12-06 14:03:34

标签: r machine-learning nlp

对于这种分类方法,是否有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
#lineal
t_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 modelo
clas_svm_lineal_train <- classify_model(container_train, model_SVM_lineal )
clas_svm_lineal_test <- classify_model(container_test, model_SVM_lineal )
# tasa acertado
aceptacion_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 categorias
summary(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)

1 个答案:

答案 0 :(得分:1)

首先,该软件包不再位于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)

我最近在一些较新的实现中进行了测试,尤其是在最高still holds up pretty well and will maybe find a new home at some point的情况下。

第二,对于文本分类和机器学习,有许多替代方法。对于机器学习本身,caret包(manual)不错,可以处理一些文本分类。但是,请记住it is not optimized for textquanteda.classifiers是一个非常酷的新软件包,有望很快进入CRAN,而quanteda本身已经实现了朴素贝叶斯(Tutorial)。

第三,还有很多其他我不知道的软件包,我也不敢建议任何软件包都比其他软件包更适合您想要做的事情。不久前,我发现此线程讨论了一些选项:https://github.com/bnosac/ruimtehol/issues/11