/ / Sieci neuronowe obsługujące dane znakowe - r, sieć neuronowa

Sieci neuronowe obsługujące dane znakowe - r, sieć neuronowa

Robię podstawowy eksperyment w analizie nastrojów za pomocą biblioteki pakietów sieci neuronowych (neuralnet)

the structure of my data is as follows:
"data.frame":   4442 obs. of  2 variables:
$ comment_text: chr  "really briliant apptit"s intuitive and informative giving all the information you could need and seemingly very accurate." "will not connect to gpstapp does not connect to gps no matter how long i have it on. i have gps set on high ac"| __truncated__ "wish this would interest more with google now to provide weekly or monthly summaries." "uselesstdoes not talk to gps on the phone. 20 minute run no data." ...
$ rating      : int  5 1 5 1 4 5 4 3 4 5 ...

Nurkuję te dane do części szkoleniowej i testowej oraz do uruchamiania prognozowania sieci neuronowych w następujący sposób:

senti_train <- nnsenti[1:3499, ]
senti_test <- nnsenti[3500:4443, ]
library(neuralnet)
neuralmodel <- neuralnet(rating ~ comment_text, data=senti_train)
plot(neuralmodel)

po uruchomieniu daje mi ten błąd

Error in neurons[[i]] %*% weights[[i]] :
requires numeric/complex matrix/vector arguments

Sposób rozwiązania tego problemu jako tekstu jest ważną częścią

Zrobiłem tokenizację danych tekstowych, wykonałem trochę czyszczenia tekstu przy użyciu pakietu TM i zaktualizowałem mój kod w następujący sposób:

nnsenti$comment_text <- VCorpus(VectorSource(nnsenti$comment_text))


#Text Cleaning
nnsenti$comment_text <- tm_map(nnsenti$comment_text,content_transformer(tolower))
nnsenti$comment_text <- tm_map(nnsenti$comment_text, removeNumbers)
nnsenti$comment_text <- tm_map(nnsenti$comment_text, removePunctuation)
nnsenti$comment_text <- tm_map(nnsenti$comment_text, removeWords,stopwords("english"))
nnsenti$comment_text <- tm_map(nnsenti$comment_text, removeWords,c("please","sad")) #Additional words
nnsenti$comment_text <- tm_map(nnsenti$comment_text, stripWhitespace)
senti_train <- nnsenti[1:3499, ]
senti_test <- nnsenti[3500:4443, ]

library(neuralnet)
neuralmodel <- neuralnet(rating ~ comment_text, data=senti_train)

Teraz dostaję ten błąd

Error in model.frame.default(formula.reverse, data) :
invalid type (list) for variable "comment_text"

Odpowiedzi:

0 dla odpowiedzi № 1

Wygląda na to, że nie standaryzujesz swoich danych. Twoje dane powinny być przynajmniej podawane do sieci neuronowej, a jeszcze lepiej pomiędzy pewnym zakresem (głównie -1,1 lub 0,1).

Możesz normalizować tekst za pomocą jedno gorące kodowanie. Normalizuj wartości (np. Oceny), dzieląc je przez jakąś maksymalną wartość. Maksymalna ocena = 10, więc podziel wszystkie oceny przez 10.