C'est désormais un problème classique de machine learning. D'un côté, du texte, de l'autre une appréciation, le plus souvent binaire, positive ou négative mais qui pourrait être graduelle.
%matplotlib inline
from jyquickhelper import add_notebook_menu
add_notebook_menu()
On récupère les données depuis le site UCI Sentiment Labelled Sentences Data Set où on utilise la fonction load_sentiment_dataset
.
from ensae_teaching_cs.data import load_sentiment_dataset
df = load_sentiment_dataset()
df.head()
sentance | sentiment | source | |
---|---|---|---|
0 | So there is no way for me to plug it in here i... | 0 | amazon_cells_labelled |
1 | Good case, Excellent value. | 1 | amazon_cells_labelled |
2 | Great for the jawbone. | 1 | amazon_cells_labelled |
3 | Tied to charger for conversations lasting more... | 0 | amazon_cells_labelled |
4 | The mic is great. | 1 | amazon_cells_labelled |
La cible est la colonne sentiment, les deux autres colonnes sont les features. Il faudra utiliser les prétraitements LabelEncoder, OneHotEncoder, TF-IDF. L'un d'entre eux n'est pas nécessaire depuis la version 0.20.0 de scikit-learn.