Skip to content

Décimo projeto de machine learning, dessa vez como foco em NLP para análise de sentimentos de posts do twitter.

Notifications You must be signed in to change notification settings

gabriel-solon-padilha/analise_de_sentimento_tweets_NLP

Repository files navigation

Analise de sentimentos de tweets


Introdução

Nesse décimo projeto o foco será utilizar técnicas de processamento de linguagem natural (NLP). Utilizaremos um Dataset obtido do Twitter com 100K postagens entre os dias 01/08/2018 e 20/10/2018. Cada postagem é classificada como positiva, negativa ou neutra.

Descrição das colunas:

  • id: ID único para o tweet
  • tweet_text: Texto da publicação no Twitter
  • tweet_date: Data da publicação no Twitter
  • sentiment: 0, se negativo; 1, se positivo; 2, se neutro
  • query_used: Filtro utilizado para buscar a publicação

O objetivo do projeto será desenvolver um modelo para detectar o sentimento de uma publicação do Twitter a classificando em uma das três categorias: positiva, negativa ou neutra. O texto da publicação está disponível na coluna "tweet_text".

Desenvolvimento

O projeto consistirá em 3 etapas:

    1. Análise da consistência dos dados
    1. Análise exploratória e Pré-processamento
    1. Modelagem e conclusões

Resultados encontrados e conclusões

sentiment precision recall f1-score support
0 0.75 0.72 0.74 9559
1 0.70 0.72 0.71 9555
2 0.92 0.94 0.93 9386
--------- -------- ----------- ---------- -------------
accuracy 0.79
macro avg 0.79 0.79 0.79 28500
weighted avg 0.79 0.79 0.79 28500

No final nosso modelo ficou muito bom em acertar sentimentos neutros e relativamente bom em identificar sentimentos negativos. Já em relação aos sentimentos positivos ele fico um pouco melhor do que a média.

Considerando que poderíamos usar modelos como esses para classificar os tweets e, por exemplo, evitar o churn de usuários/clientes nosso modelo seria eficiente em 75% dos casos, o que já seria bem interessante considerando o potencial de redução de churn. Em relação aos sentimentos neutros o modelo poderia ser usado como um termômetro para comunicações da empresa com seus clientes para medir se houve ou não reação a aquele tipo de comunicação/mensagem aos clientes.

Seria possível usar um modelo de stacking em que criaríamos modelos especialistas para cada tipo de sentimento ou tentar usar redes neurais profundas buscando aumentar a qualidade das métricas. Esses dois testes ficarão como desenvolvimentos futuros para esse projeto