Набор данных - это все символьные данные. В этих данных есть комбинация легко закодированных слов (V2
- V10
) и предложений, для которых вы можете выполнить любое количество функций и создать любое количество функций.
Чтобы прочитать текст майнинг, посмотрите практический пример пакета tm
, его документов или блогов, таких как hack-r.com . Вот код Github из связанной статьи.
ОК, поэтому сначала я установил stringsAsFactors = F
, потому что у вас V1
есть тонны уникальных предложений
TrainSet <- read.csv(url("https://raw.githubusercontent.com/jcool12/dataset/master/textsentiment.csv?token=AA4LAP5VXI6I7FRKMT6HDPK6U5XBY"),
header = F,
stringsAsFactors = F)
library(caret)
Затем Я разработал функцию
## Feature Engineering
# V2 - V10
TrainSet[TrainSet=="Negative"] <- 0
TrainSet[TrainSet=="Positive"] <- 1
# V1 - not sure what you wanted to do with this
# but here's a simple example of what
# you could do
TrainSet$V1 <- grepl("london", TrainSet$V1) # tests if london is in the string
Тогда это сработало, хотя вы захотите усовершенствовать разработку V1
(или отбросить ее), чтобы получить лучшие результаты.
# In reality you could probably generate 20+ decent features from this text
# word count, tons of stuff... see the tm package
# Specifying an 80-20 train-test split
# Creating the training and testing sets
train = TrainSet[1:1200, ]
test = TrainSet[1201:1500, ]
# Declaring the trainControl function
train_ctrl = trainControl(
method = "cv", # Specifying Cross validation
number = 3, # Specifying 3-fold
)
nb_model = train(
V10 ~., # Specifying the response variable and the feature variables
method = "nb", # Specifying the model to use
data = train,
trControl = train_ctrl,
)
# Resampling: Cross-Validated (3 fold)
# Summary of sample sizes: 799, 800, 801
# Resampling results across tuning parameters:
#
# usekernel Accuracy Kappa
# FALSE 0.6533444 0.4422346
# TRUE 0.6633569 0.4185751
You Вы получите несколько игнорируемых предупреждений с этим примером c только потому, что в нескольких предложениях V1
содержалось слово «Лондон». Я бы предложил использовать этот столбец для таких вещей, как анализ настроений, термин частота / частота обратных документов и т. Д. c.