Je features beperken
Zoals je hebt gezien, maakt CountVectorizer met de standaardinstellingen een feature voor elk woord in je corpus. Dat kan veel te veel features opleveren, vaak inclusief woorden die weinig analytische waarde hebben.
Daarom heeft CountVectorizer parameters waarmee je het aantal features kunt verkleinen:
min_df: Gebruik alleen woorden die in meer dan dit percentage documenten voorkomen. Dit kun je gebruiken om uitbijterwoorden te verwijderen die niet generaliseren over teksten.max_df: Gebruik alleen woorden die in minder dan dit percentage documenten voorkomen. Dit is handig om heel algemene woorden te elimineren die in elke corpus voorkomen zonder waarde toe te voegen, zoals "and" of "the".
Deze oefening maakt deel uit van de cursus
Feature engineering voor Machine Learning in Python
Oefeninstructies
- Beperk het aantal features in de CountVectorizer door het minimumaandeel documenten waarin een woord mag voorkomen op 20% te zetten en het maximum op 80%.
- Fit en pas de vectorizer in één stap toe op de kolom
text_clean. - Zet deze getransformeerde (spaarzame) array om naar een numpy-array met tellingen.
- Print de afmetingen van de nieuwe, verkleinde array.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# Import CountVectorizer
from sklearn.feature_extraction.text import CountVectorizer
# Specify arguements to limit the number of features generated
cv = ____
# Fit, transform, and convert into array
cv_transformed = ____(speech_df['text_clean'])
cv_array = ____
# Print the array shape
print(____)