Robím základný experiment v analýze sentimentu pomocou knižnice balíkov neurónových sietí (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 ...
Potápem tieto dáta do tréningu a testovania časti a spúšťania predpovedí neurónovej siete, ako je toto:
senti_train <- nnsenti[1:3499, ]
senti_test <- nnsenti[3500:4443, ]
library(neuralnet)
neuralmodel <- neuralnet(rating ~ comment_text, data=senti_train)
plot(neuralmodel)
po spustení to mi dáva túto chybu
Error in neurons[[i]] %*% weights[[i]] :
requires numeric/complex matrix/vector arguments
Ako to vyriešiť ako text je dôležitou súčasťou
Mám tokenized textových dát, urobil nejaké textové čistenie pomocou balíka tm a aktualizoval môj kód takto:
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 mám túto chybu
Error in model.frame.default(formula.reverse, data) :
invalid type (list) for variable "comment_text"
odpovede:
0 pre odpoveď č. 1Zdá sa, že nie ste štandardizovaní vaše dáta. Vaše dáta by mali byť aspoň napájané číselne do neurónovej siete a dokonca lepšie medzi určitým rozsahom (väčšinou -1,1
alebo 0,1
).
Text môžete normalizovať pomocou jedno-horúce kódovanie, Normalizujte hodnoty (ako sú hodnotenia) ich rozdelením podľa nejakej maximálnej hodnoty. Maximálny rating = 10, tak rozdeľte všetky hodnotenia o 10.