감정분석이 얼마나 정확한가 확인하기 :: 감정 분석 - mindscale
Skip to content

감정분석이 얼마나 정확한가 확인하기

극(polarity) 감정 점수 0 or 1로 변환하기

senti.lm.b <- ifelse(senti.lm > 0, 1, 0)
senti.lasso.b <- ifelse(senti.lasso > 0, 1, 0)
senti.ridge.b <- ifelse(senti.ridge > 0, 1, 0)
senti.elastic.b <- ifelse(senti.elastic > 0, 1, 0)

정확도 계산하기

caret 현재 버전은 동영상과 달리 confusionMatrixfactor로 변환해서 넣어줘야 합니다.

library(caret)
confusionMatrix(factor(senti.lm.b), factor(mobile$Sentiment))
confusionMatrix(factor(senti.lasso.b), factor(mobile$Sentiment))
confusionMatrix(factor(senti.ridge.b), factor(mobile$Sentiment))
confusionMatrix(factor(senti.elastic.b), factor(mobile$Sentiment))

더 엄밀한 정확도를 구하기 위해 테스트(test) 데이터 불러오기

mobile.test <- read.csv("mobile2014_test.csv", stringsAsFactors = F)
dim(mobile.test)
names(mobile.test)

테스트(test) 데이터의 DocumentTermMatrix 만들기

corpus <- Corpus(VectorSource(mobile.test$Texts))
dtm.test <- DocumentTermMatrix(corpus,
                          control = list(tolower = T,
                                         removePunctuation = T,
                                         removeNumbers = T,
                                         stopwords = stopwords("SMART"),
                                         weighting = weightTfIdf,
                                         dictionary = Terms(dtm)))

테스트(test) 데이터의 극(polarity) 감정 점수 계산하기

senti.lm.test <- polarity(dtm.test, names(pos.lm), names(neg.lm))
senti.lasso.test <- polarity(dtm.test, names(pos.lasso), names(neg.lasso))
senti.ridge.test <- polarity(dtm.test, names(pos.ridge), names(neg.ridge))
senti.elastic.test <- polarity(dtm.test, names(pos.elastic), names(neg.elastic))

테스트(test) 데이터의 극(polarity) 감정 점수 0 or 1로 변환하기

senti.lm.b.test <- ifelse(senti.lm.test > 0, 1, 0)
senti.lasso.b.test <- ifelse(senti.lasso.test > 0, 1, 0)
senti.ridge.b.test <- ifelse(senti.ridge.test > 0, 1, 0)
senti.elastic.b.test <- ifelse(senti.elastic.test > 0, 1, 0)

테스트(test) 데이터의 정확도 계산하기

confusionMatrix(factor(senti.lm.b.test), factor(mobile.test$Sentiment))
confusionMatrix(factor(senti.lasso.b.test), factor(mobile.test$Sentiment))
confusionMatrix(factor(senti.ridge.b.test), factor(mobile.test$Sentiment))
confusionMatrix(factor(senti.elastic.b.test), factor(mobile.test$Sentiment))