Análise de Sentimento

Integração com ChatGPT

Introdução

Para realizar a integração entre o R e o ChatGPT, utilizaremos o pacote denominado ChatGPT.

install.packages("chatpgt")

A integração entre o ChatGPT e o R ocorre via API, contudo, esse recurso é cobrado pela empresa mantenedora, a OpenAI. Para criar uma chave da API, é necessário criar um conta pelo site OpenAI.

Em posse da chave, basta configurar o ambiente do Rstudio, conforme apresentado no código abaixo:

Sys.setenv(OPENAI_API_KEY = "chave-gerada-API")

A principal função a ser utilizada nesse exemplo é “ask_chatgpt()”. Para melhor compreender como utilizar a função, basta rodar o código abaixo.

library(chatgpt)
ask_chatgpt("É verdade que o Ibovespa não supera o CDI?")
## [1] "Não posso fornecer informações atualizadas sobre o desempenho do Ibovespa em relação ao CDI, pois sou um assistente virtual e não tenho acesso em tempo real a dados financeiros. No entanto, é importante lembrar que o Ibovespa é um índice que acompanha o desempenho das ações das empresas listadas na B3, enquanto o CDI é uma taxa de juros utilizada como referência para investimentos de renda fixa. O desempenho do Ibovespa pode variar ao longo do tempo e depende de diversos fatores, como os fundamentos econômicos e políticos do país. Recomendo que você consulte fontes confiáveis ​​ou um profissional especializado em investimentos para obter informações atualizadas sobre o desempenho do Ibovespa em relação ao CDI."

Para análise de sentimento, podemos realizar algumas perguntas características, como no exemplo abaixo:

texto <- "Eu não gosto do Ibovespa, não gosto de operar bolsa brasileira, e odeio todos os ativos que pertencem ao índice (gostaria que as empressas fossem a falência)."

ask_chatgpt(paste("Utilizando técnica de análise de sentimento, apresente o principal sentimento extraído do texto a seguir. Além disso, apresente a polaridade do mesmo.", texto))
## [1] "Com base na análise de sentimento, o principal sentimento extraído do texto é claramente negativo. A polaridade do texto é negativa, uma vez que o autor expressa descontentamento e ódio em relação ao Ibovespa, à operação na bolsa brasileira e aos ativos que fazem parte do índice. É importante ressaltar que a análise de sentimento é uma tarefa complexa e pode variar de acordo com a interpretação individual das palavras e contexto."

Iteratividade no R

tabela <- data.frame(
  textos = c("Eu odeio a bolsa de valores", "Eu amo esse índice brasileiro",
             "O Ibov sobe tanto, que só nesse mês perdeu 5000 pontos",
             "Meu erro foi acreditar que a bolsa subiria.")
)

for(i in 1:4){
  print(tabela[i,1])
}
## [1] "Eu odeio a bolsa de valores"
## [1] "Eu amo esse índice brasileiro"
## [1] "O Ibov sobe tanto, que só nesse mês perdeu 5000 pontos"
## [1] "Meu erro foi acreditar que a bolsa subiria."

Como se pode esperar, é possível utilizar a iteratividade do R com o recurso do ChatGPT, conforme exemplo abaixo:

for(i in 1:4){
  tabela[i,2] <- ask_chatgpt(paste("Qual o sentimento principal da frase? A resposta deve conter apenas uma palavra.", tabela[i,1]))
  tabela[i,3] <- ask_chatgpt(paste("Qual a polaridade extraída do texto a seguir? A resposta deve conter apenas uma palavra.", tabela[i,1]))
}
tabela
##                                                   textos              V2
## 1                            Eu odeio a bolsa de valores           Ódio.
## 2                          Eu amo esse índice brasileiro           Amor.
## 3 O Ibov sobe tanto, que só nesse mês perdeu 5000 pontos     Frustração.
## 4            Meu erro foi acreditar que a bolsa subiria. Arrependimento.
##          V3
## 1 Negativa.
## 2 Positiva.
## 3 Negativa.
## 4 Negativa.