NLP Academy · Lektion

N-Gram-Merkmale in scikit-learn

Ihrem Vectorizer Phrasen hinzufügen

Lektion 3 von 413 Schritte

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 alone

Mit 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. 🎯

Kostenlos starten

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

  1. Warum einzelne Wörter Bedeutung verlieren
  2. Bigrams und Trigrams erklärt
  3. N-Gram-Merkmale in scikit-learn
  4. Den richtigen N-Gram-Bereich auswählen
← Zurück zu NLP Academy