Detalii despre n-grame

Analiza sentimentelor în Python

Violeta Misheva

Data Scientist

Contextul contează

Sunt fericit, nu trist.

Sunt trist, nu fericit.

  • Negarea unui cuvânt cu „nu" este un exemplu al importanței contextului.
Analiza sentimentelor în Python

Captarea contextului cu BOW

  • Unigrame: token-uri individuale

  • Bigrame: perechi de token-uri

  • Trigrame: triplete de token-uri

  • n-grame: secvențe de n token-uri

Analiza sentimentelor în Python

Captarea contextului cu BOW

Vremea de azi este minunată.

  • Unigrame: { Vremea, de, azi, este, minunată }

  • Bigrame: {Vremea de, de azi, azi este, este minunată}

  • Trigrame: {Vremea de azi, de azi este, azi este minunată}

Analiza sentimentelor în Python

N-grame cu 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)
Analiza sentimentelor în Python

Care este cel mai bun n?

Secvențe mai lungi de token-uri
  • Generează mai multe caracteristici
  • Precizie mai mare a modelelor de machine learning
  • Risc de supraajustare
Analiza sentimentelor în Python

Dimensiunea vocabularului

CountVectorizer(max_features, max_df, min_df)
  • max_features: dacă este specificat, include doar cele mai frecvente cuvinte din vocabular
    • Dacă max_features = None, sunt incluse toate cuvintele
  • max_df: ignoră termenii cu frecvență mai mare decât cea specificată
    • Număr întreg = număr absolut; număr zecimal = proporție
    • Valoarea implicită este 1.0, adică nu ignoră niciun termen
  • min_df: ignoră termenii cu frecvență mai mică decât cea specificată
    • Număr întreg = număr absolut; număr zecimal = proporție
    • Valoarea implicită este 1.0, adică nu ignoră niciun termen
Analiza sentimentelor în Python

Să exersăm!

Analiza sentimentelor în Python

Preparing Video For Download...