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
Oefeninstructies
- Importeer
CountVectorizeruitsklearn.feature_extraction.text. - Maak een instantie van
CountVectorizerdie 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.____)