Exemplo de dados textuais
text_data = c("Adorei o novo produto! Superou minhas expectativas.",
"Produto ok, mas nada de especial.",
"Péssima experiência com o produto. Não recomendo.",
"Ainda não testei o produto, mas estou ansioso.")
Pré-processamento dos dados
# Converter para minúsculas
text_data_clean <- str_to_lower(text_data)
# Remover pontuação
text_data_clean <- str_replace_all(text_data_clean, "[[:punct:]]", "")
# Remover números
text_data_clean <- str_replace_all(text_data_clean, "[[:digit:]]", "")
# Remover espaços extras
text_data_clean <- str_squish(text_data_clean)
# Visualizar os textos limpos
print(text_data_clean)
## [1] "adorei o novo produto superou minhas expectativas"
## [2] "produto ok mas nada de especial"
## [3] "péssima experiência com o produto não recomendo"
## [4] "ainda não testei o produto mas estou ansioso"
Análise de Sentimentos
# Exemplo de um léxico de sentimentos simples
sentiment_lexicon <- data.frame(
word = c("adorei", "ok", "péssima", "ansioso", "especial"),
sentiment = c("positive", "neutral", "negative", "positive", "positive"),
stringsAsFactors = FALSE
)
# Dividindo as frases em palavras (tokenização básica)
tokens <- unlist(str_split(text_data_clean, " "))
# Verificando o sentimento das palavras
sentiments <- sentiment_lexicon %>%
filter(word %in% tokens) %>%
count(sentiment)
# Exibindo a análise de sentimentos
print(sentiments)
## sentiment n
## 1 negative 1
## 2 neutral 1
## 3 positive 3
bp<-barplot(
sentiments$n,
space = 0.2,
horiz = FALSE,
las = 1,
cex.names = 0.7,
col = brewer.pal(n = 8, name = "Set3"),
main = "Analise de sentimentos",
sub = "Exemplo realizado por Natalia Teixeira",
xlab="sentimentos", ylab = "frequencia",
ylim = c(0, max(sentiments$n) + 1))
text(x = bp, y = sentiments$n, labels = sentiments$sentiment, pos = 3, cex = 0.8, col = "black")
