Aller au détail avec les n-grammes

Analyse de sentiment en Python

Violeta Misheva

Data Scientist

Le contexte compte

Je suis heureux, pas triste.

Je suis triste, pas heureux.

  • Mettre « not » devant un mot (négation) montre que le contexte compte.
Analyse de sentiment en Python

Saisir le contexte avec un BOW

  • Unigrammes : jetons uniques

  • Bigrammes : paires de jetons

  • Trigrammes : triplets de jetons

  • n-grammes : séquence de n jetons

Analyse de sentiment en Python

Saisir le contexte avec BOW

The weather today is wonderful.

  • Unigrammes : { The, weather, today, is, wonderful }

  • Bigrammes : {The weather, weather today, today is, is wonderful}

  • Trigrammes : {The weather today, weather today is, today is wonderful}

Analyse de sentiment en Python

n-grammes avec CountVectorizer

from sklearn.feature_extraction.text import CountVectorizer
vect = CountVectorizer(ngram_range=(min_n, max_n))
# Only unigrams
ngram_range=(1, 1)
# Uni- and bigrams
ngram_range=(1, 2)
Analyse de sentiment en Python

Quel est le meilleur n ?

Séquences de jetons plus longues
  • Donnent plus de caractéristiques
  • Précision accrue des modèles de Machine Learning
  • Risque de surapprentissage
Analyse de sentiment en Python

Spécifier la taille du vocabulaire

CountVectorizer(max_features, max_df, min_df)
  • max_features : le cas échéant, inclut seulement les mots les plus fréquents du vocabulaire
    • Si max_features = None, tous les mots sont inclus
  • max_df : ignore les termes au‑delà de la fréquence indiquée
    • Entier : compte absolu ; réel : proportion
    • Par défaut : 1.0, donc aucun terme n'est ignoré
  • min_df : ignore les termes en deçà de la fréquence indiquée
    • Entier : compte absolu ; réel : proportion
    • Par défaut : 1.0, donc aucun terme n'est ignoré
Analyse de sentiment en Python

Passons à la pratique !

Analyse de sentiment en Python

Preparing Video For Download...