N-Gram-Merkmale in scikit-learn
Ihrem Vectorizer Phrasen hinzufügen
N-Gram-Merkmale in scikit-learn ist eine kostenlose NLP Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des NLP Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der NLP Academy-Kurs umfasst insgesamt 4 Lektionen.
Überlassen Sie es der Bibliothek
Sie könnten n-grams von Hand erstellen, aber scikit-learn übernimmt das für Sie. Der Trick ist ein kleines Argument in Ihrem Vectorizer.
Der Regler ngram_range
Jeder Text-Vectorizer akzeptiert ngram_range, ein Tupel aus Mindest- und Höchstgröße. Damit legen Sie fest, welche n-grams der Vectorizer zählen soll.
from sklearn.feature_extraction.text import CountVectorizer
vec = CountVectorizer(ngram_range=(1, 2))Unigrams sind die Standardeinstellung
Wenn Sie nichts ändern, ist ngram_range gleich (1, 1): ausschließlich einzelne Wörter. Das ist der einfache Bag-of-Words-Ansatz, den Sie bereits kennen.
Bigrams hinzufügen
Setzen Sie ngram_range auf (1, 2), behält der Vectorizer einzelne Wörter und jedes benachbarte Paar in einem gemeinsamen Merkmalsraum.
vec = CountVectorizer(ngram_range=(1, 2))
X = vec.fit_transform(["this is not good"])Nur Bigrams
Möchten Sie nur Paare? Verwenden Sie (2, 2). Nun verschwinden einzelne Wörter, und nur bigrams bleiben als Merkmale erhalten.
vec = CountVectorizer(ngram_range=(2, 2))Das Vokabular untersuchen
Nach dem Fit können Sie die erlernten Merkmale mit get_feature_names_out ansehen. Sie sehen sowohl Wörter als auch verbundene Phrasen in der Liste.
print(vec.get_feature_names_out())
# ['is not', 'not good', 'this is']Phrasen durch Leerzeichen verbunden
scikit-learn benennt jedes bigram, indem es seine Wörter mit einem einzelnen Leerzeichen verbindet, etwa not good. Diese Zeichenfolge wird zu einer Spalte.
Derselbe Regler für TF-IDF
Dasselbe ngram_range funktioniert auch mit TfidfVectorizer. Sie erhalten n-gram-Phrasen, die zusätzlich danach gewichtet werden, wie charakteristisch sie sind.
from sklearn.feature_extraction.text import TfidfVectorizer
vec = TfidfVectorizer(ngram_range=(1, 2))Jetzt bleibt die Verneinung erhalten
Wenn bigrams aktiviert sind, landet not good in einer eigenen Spalte. Ihr Klassifikator kann nun endlich lernen, dass dieses Paar auf eine negative Bewertung hinweist.
Die Anzahl der Merkmale im Blick behalten
Das Hinzufügen von bigrams kann die Anzahl Ihrer Spalten deutlich vervielfachen. Die Matrix bleibt dünn besetzt, aber das Vokabular wächst schnell.
print(X.shape) # many more columns than unigrams aloneMit min_df kombinieren
Um die Ausuferung einzudämmen, kombinieren Sie ngram_range mit min_df. Durch das Entfernen seltener Phrasen bleiben nur die N-Gramme übrig, die sich sinnvoll wiederholen.
vec = CountVectorizer(ngram_range=(1, 2), min_df=2)Kurzer Check
Welches ngram_range liefert Ihnen einzelne Wörter plus direkt aufeinanderfolgende Wortpaare in einem Vektorisierer?
Rückblick: N-Gramme in scikit-learn
Ein ngram_range-Tupel verwandelt jeden Vektorisierer in eine N-Gramm-Maschine. Untersuchen Sie die Merkmale und beschneiden Sie sie anschließend mit min_df. Als Nächstes wählen Sie den passenden Bereich aus. 🎯
Lerne Python mit einem KI-Tutor — kostenlos
Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.
- Kurse
- 30
- Lektionen
- 120
Häufig gestellte Fragen
Ist die Lektion „N-Gram-Merkmale in scikit-learn“ kostenlos?
Ja — der vollständige Text von „N-Gram-Merkmale in scikit-learn“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des NLP Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der NLP Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „N-Gram-Merkmale in scikit-learn“?
Ihrem Vectorizer Phrasen hinzufügen Du übst NLP Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um NLP Academy zu starten?
Keine Vorkenntnisse erforderlich. NLP Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.
Wie lange dauert die Lektion „N-Gram-Merkmale in scikit-learn“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser NLP Academy-Lektion Code schreiben und ausführen?
Ja. Jede NLP Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Warum einzelne Wörter Bedeutung verlieren
- Bigrams und Trigrams erklärt
- N-Gram-Merkmale in scikit-learn
- Den richtigen N-Gram-Bereich auswählen