Featureanzahl begrenzen
Wie du gesehen hast, erzeugt CountVectorizer mit den Standardeinstellungen ein Feature für jedes einzelne Wort in deinem Korpus. Das kann zu viel zu vielen Features führen, oft mit sehr geringem analytischem Mehrwert.
Dafür hat CountVectorizer Parameter, mit denen du die Anzahl der Features reduzieren kannst:
min_df: Verwende nur Wörter, die in mehr als diesem Prozentsatz der Dokumente vorkommen. So kannst du Ausreißerwörter entfernen, die sich nicht gut auf andere Texte übertragen lassen.max_df: Verwende nur Wörter, die in weniger als diesem Prozentsatz der Dokumente vorkommen. Das ist hilfreich, um sehr häufige Wörter zu eliminieren, die in jedem Korpus vorkommen, ohne Mehrwert zu liefern, wie „and“ oder „the“.
Diese Übung ist Teil des Kurses
Feature Engineering für Machine Learning in Python
Anleitung zur Übung
- Begrenze die Anzahl der Features im CountVectorizer, indem du die minimale Dokumenthäufigkeit eines Wortes auf 20 % und die maximale auf 80 % setzt.
- Fitte und wende den Vektorisierer in einem Schritt auf die Spalte
text_cleanan. - Wandle dieses transformierte (sparsame) Array in ein NumPy-Array mit Zählwerten um.
- Gib die Dimensionen des neuen, reduzierten Arrays aus.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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(____)