Skip to content

aminaghoul/sentiment-analysis

Repository files navigation

Analyse de sentiments avec PyTorch

Ce repository contient des tutoriels sur comment faire de l'analyse de sentiments en utilisant Pytorch 1.4 sur Python 3.7.

Installation

  • Pour installer PyTorch, les instructions sont sur ce site.

  • TorchText : pip install torchtext

  • spaCy en anglais : python -m spacy download en

  • transformers : pip install transformers

Données

On utilise les données IMBD.

Tutoriels

Dans ce premier notebook, on utilise les librairies sklearn et nltk pour faire de l'analyse de sentiments à l'aide de méthode statistique de Bag-of-words, TF-IDF et d'algorithmes de machine learning : SVM et Régression Logistique.

On utilise ici un modèle de réseaux de neurones récurrents RNN très simple.

Le modèle précédent se complexifie dans ce notebook, on utilise un modèle LSTM, bidirectionnel, multi-couches.

Le modèle précédent se complexifie dans ce notebook, on utilise un modèle GRU, bidirectionnel, multi-couches.

Le modèle FastText issu de l'article Bag of Tricks for Efficient Text Classification est implémenté ici.

On utilise le modèle CNN pour l'analyse de sentiments.

On utilise un modèle GRU combiné avec de l'attention.

On utilise un modèle LSTM combiné avec de l'attention. Ce modèle est décrit dans l'article Text Classification Research with Attention-based Recurrent Neural Networks.

On utilise la libraire transformers pour importer un modèle transformer pré-entraîné pour obtenir les embedding du texte, et les utiliser dans un modèle GRU pour prédire le sentiment.

On utilise la libraire transformers pour importer un modèle transformer pré-entraîné pour obtenir les embedding du texte, et les utiliser dans un modèle LSTM pour prédire le sentiment.

Dans ce notebook est implémenté le modèle transformer en PyTorch décrit dans l'article Attention Is All You Need

Enfin, on implémente le modèle BERT décrit ici en utilisant Hugging Face.

Résultats

Modèle Accuracy sur le test
SVM - BOW 86.95
LR - BOW 87.08
SVM - TF-IDF 87.80
LR - TF-IDF 87.82
RNN 68.21
LSTM 88.67
GRU 91.01
FastText 87.22
CNN 84.97
AttentionLSTM 83.27
AttentionGRU 80.28
TransformersLSTM 90.31
TransformersGRU 91.36
Transformers 73.31
BERT 91.77

Référence :