Fijner werken met n-grams

Sentimentanalyse in Python

Violeta Misheva

Data Scientist

Context doet ertoe

Ik ben blij, niet verdrietig.

Ik ben verdrietig, niet blij.

  • 'Not' voor een woord (ontkenning) laat zien dat context telt.
Sentimentanalyse in Python

Context vangen met een BOW

  • Unigrams: losse tokens

  • Bigrams: paren van tokens

  • Trigrams: drie tokens

  • n-grams: reeks van n tokens

Sentimentanalyse in Python

Context vangen met BOW

Het weer vandaag is geweldig.

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

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

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

Sentimentanalyse in Python

n-grams met CountVectorizer

from sklearn.feature_extraction.text import CountVectorizer
vect = CountVectorizer(ngram_range=(min_n, max_n))
# Alleen unigrams
ngram_range=(1, 1)
# Uni- en bigrams
ngram_range=(1, 2)
Sentimentanalyse in Python

Wat is de beste n?

Langere tokenreeksen
  • Leveren meer features
  • Hogere nauwkeurigheid van ML-modellen
  • Risico op overfitting
Sentimentanalyse in Python

Woordenschatgrootte instellen

CountVectorizer(max_features, max_df, min_df)
  • max_features: neem alleen de meest frequente woorden op
    • Als max_features = None, worden alle woorden opgenomen
  • max_df: negeer termen boven een ingestelde frequentie
    • Als integer: absolute telling; als float: proportie
    • Standaard is 1.0, dus er wordt niets genegeerd
  • min_df: negeer termen onder een ingestelde frequentie
    • Als integer: absolute telling; als float: proportie
    • Standaard is 1.0, dus er wordt niets genegeerd
Sentimentanalyse in Python

Laten we oefenen!

Sentimentanalyse in Python

Preparing Video For Download...