Aan de slagGa gratis aan de slag

Langere n-grams gebruiken

Tot nu toe heb je features gemaakt op basis van losse woorden in elke tekst. Dat kan behoorlijk krachtig zijn in een Machine Learning-model, maar misschien maak je je zorgen dat door woorden afzonderlijk te bekijken veel context verloren gaat. Om dit aan te pakken kun je bij het bouwen van modellen n-grams gebruiken: reeksen van n woorden die samen gegroepeerd zijn. Bijvoorbeeld:

  • bigrams: reeksen van twee opeenvolgende woorden
  • trigrams: reeksen van drie opeenvolgende woorden

Deze kun je automatisch in je gegevensset laten maken door het argument ngram_range op te geven als een tuple (n1, n2), waarbij alle n-grams in het bereik van n1 tot en met n2 worden meegenomen.

Deze oefening maakt deel uit van de cursus

Feature engineering voor Machine Learning in Python

Cursus bekijken

Oefeninstructies

  • Importeer CountVectorizer uit sklearn.feature_extraction.text.
  • Maak een instantie van CountVectorizer die alleen trigrams meeneemt.
  • Fit de vectorizer en pas hem in één stap toe op de kolom text_clean.
  • Print de featurenamen die door de vectorizer zijn gegenereerd.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# Import CountVectorizer
from sklearn.feature_extraction.text import ____

# Instantiate a trigram vectorizer
cv_trigram_vec = CountVectorizer(max_features=100, 
                                 stop_words='english', 
                                 ____)

# Fit and apply trigram vectorizer
cv_trigram = ____(speech_df['text_clean'])

# Print the trigram features
print(cv_trigram_vec.____)
Code bewerken en uitvoeren