Análise (Classificador) de sentimentos com Python + Pandas + scikit-learn + spaCy
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.