Análise (Classificador) de sentimentos com Python + Pandas + scikit-learn + spaCy

Lennon Alves Dias
Comunidade XP
2 min readDec 23, 2019

--

Abordagem dos principais classificadores para solucionar o problema de análise de sentimentos utilizando python com pandas, numpy, scikit-learn, nltk, e spaCy.

Para este artigo será utilizada a base de reviews (análises) de filmes do IMDb.

IMDb, também conhecida como Internet Movie Database, é uma base de dados online de informação sobre música, cinema, filmes, programas e comerciais para televisão e jogos de computador, hoje pertencente à Amazon. [Wikipedia]

🔎 Técnicas de pré processamento utilizadas:

  • Tratamento de valores nulos
  • Upcase/Downcase (str.lower)
  • Sinais de pontuação (unidecode)
  • Lematização*

* Processo de deflexionar (provocar mudança ou alteração no posicionamento normal uma palavra) para determinar o seu lema. (Exemplo: palavras = tiver, tenho, tinha, tem; lema = ter)

🚀 Técnicas de classificação utilizadas:

  • Decision Tree
  • Random Forest
  • Multinomial Naive Bayes
  • Gradient Boosting
  • Support Vector Machine (SVM)
  • Multinomial Logistic Regression

Considerações finais

A classificação utilizando regressão logística teve a melhor acurácia, chegando à 0.89506. Além da acurácia, destaca-se também o fato deste método possuir um tempo de processamento (minutos) muito menor do que outros utilizados nesta comparação, como o SVM (dias).

Para obter as melhores configurações ao LogisticRegression nós utilizamos o GridSearchCV. Essa função consiste em testar variadas combinações de parâmetros ao modelo, encontrando assim o melhor resultado.

É possível que este arquivo evolua em técnicas de pré processamento e modelos de classificação.

👊 Agradecimentos

--

--

Lennon Alves Dias
Comunidade XP

Computer Scientist, Developer. Computer Science (UTFPR/PG — 2015). Artificial Intelligence & Machine Learning (FIAP/SP — 2020).