Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Anpassung des Bag-of-Words-Modells | Grundlegende Textmodelle
Einführung in NLP

bookAnpassung des Bag-of-Words-Modells

Das Bag-of-Words-Modell, insbesondere seine Implementierung durch die Klasse CountVectorizer, bietet verschiedene Parameter zur Anpassung. Dadurch kann es auf die spezifischen Anforderungen unterschiedlicher Textanalyseaufgaben zugeschnitten werden, was die Effektivität des Modells erheblich steigert.

Minimale und maximale Dokumenthäufigkeit

Der Parameter min_df definiert die minimale Anzahl an Dokumenten, in denen ein Begriff vorkommen muss, um in den Wortschatz aufgenommen zu werden, entweder als absolute Zahl oder als Anteil. Dies hilft, seltene Begriffe auszuschließen, die oft weniger informativ sind.

Analog dazu legt max_df die maximale Häufigkeit fest, mit der ein Begriff in den Dokumenten vorkommen darf, um im Wortschatz zu verbleiben, ebenfalls als absolute Zahl oder Anteil anzugeben. Dadurch werden zu häufige Begriffe herausgefiltert, die nicht zur Unterscheidung zwischen Dokumenten beitragen.

123456789101112131415
from sklearn.feature_extraction.text import CountVectorizer import pandas as pd corpus = [ "The quick brown fox jumps over the lazy dog.", "Quick brown foxes leap over lazy dogs in summer.", "The quick brown fox is often seen jumping over lazy dogs.", "In summer, the lazy dog plays while the quick brown fox rests.", "A quick brown fox is quicker than the laziest dog." ] # Exclude words which appear in more than 3 documents vectorizer = CountVectorizer(max_df=3) bow_matrix = vectorizer.fit_transform(corpus) bow_df = pd.DataFrame(bow_matrix.toarray(), columns=vectorizer.get_feature_names_out()) print(bow_df)
copy

Die Einstellung von max_df=3 schließt Wörter aus, die in mehr als 3 Dokumenten vorkommen. In unserem Korpus gehören dazu Wörter wie "quick" und "brown". Da sie in jedem oder fast jedem Dokument erscheinen, tragen sie nicht wirklich zur Unterscheidung der Dokumente bei. Alternativ könnten wir max_df=0.6 setzen, da 60% von 5 Dokumenten 3 Dokumente sind.

N-Gramm-Bereich

Der Parameter ngram_range ermöglicht es, den Bereich der N-Gramm-Größen festzulegen, die im Vokabular enthalten sein sollen.

Note
Definition

Ein N-Gramm ist eine zusammenhängende Sequenz von n Elementen aus einer gegebenen Textprobe. Diese Elemente sind typischerweise Wörter (in unserem Fall), Silben oder Buchstaben.

Standardmäßig berücksichtigt CountVectorizer nur Unigramme (einzelne Wörter). Durch die Einbeziehung von Bigrammen (Wortpaare), Trigrammen (Worttripel) oder größeren N-Grammen kann das Modell jedoch durch die Erfassung von mehr Kontext und semantischer Information bereichert werden, was die Leistung potenziell verbessert.

Dies wird erreicht, indem ein Tupel (min_n, max_n) an den Parameter ngram_range übergeben wird, wobei min_n die minimale N-Gramm-Größe und max_n die maximale Größe angibt.

Im Folgenden konzentrieren wir uns ausschließlich auf Trigramme, die in zwei oder mehr Dokumenten unseres Korpus vorkommen:

123456789101112131415
from sklearn.feature_extraction.text import CountVectorizer import pandas as pd corpus = [ "The quick brown fox jumps over the lazy dog.", "Quick brown foxes leap over lazy dogs in summer.", "The quick brown fox is often seen jumping over lazy dogs.", "In summer, the lazy dog plays while the quick brown fox rests.", "A quick brown fox is quicker than the laziest dog." ] # Include trigrams which appear in 2 or more documents vectorizer = CountVectorizer(min_df=2, ngram_range=(3, 3)) bow_matrix = vectorizer.fit_transform(corpus) bow_df = pd.DataFrame(bow_matrix.toarray(), columns=vectorizer.get_feature_names_out()) print(bow_df)
copy

Dies sind die am häufigsten verwendeten Parameter. Falls Sie weitere Parameter erkunden möchten, finden Sie zusätzliche Informationen in der Dokumentation.

1. Was steuert der Parameter min_df in CountVectorizer?

2. Welchen Zweck hat der Parameter ngram_range in CountVectorizer?

question mark

Was steuert der Parameter min_df in CountVectorizer?

Select the correct answer

question mark

Welchen Zweck hat der Parameter ngram_range in CountVectorizer?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 3. Kapitel 4

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Suggested prompts:

Can you explain how to choose appropriate values for min_df and max_df?

What are some practical use cases for using n-grams instead of unigrams?

Can you show how the output changes if we use both bigrams and trigrams?

Awesome!

Completion rate improved to 3.45

bookAnpassung des Bag-of-Words-Modells

Swipe um das Menü anzuzeigen

Das Bag-of-Words-Modell, insbesondere seine Implementierung durch die Klasse CountVectorizer, bietet verschiedene Parameter zur Anpassung. Dadurch kann es auf die spezifischen Anforderungen unterschiedlicher Textanalyseaufgaben zugeschnitten werden, was die Effektivität des Modells erheblich steigert.

Minimale und maximale Dokumenthäufigkeit

Der Parameter min_df definiert die minimale Anzahl an Dokumenten, in denen ein Begriff vorkommen muss, um in den Wortschatz aufgenommen zu werden, entweder als absolute Zahl oder als Anteil. Dies hilft, seltene Begriffe auszuschließen, die oft weniger informativ sind.

Analog dazu legt max_df die maximale Häufigkeit fest, mit der ein Begriff in den Dokumenten vorkommen darf, um im Wortschatz zu verbleiben, ebenfalls als absolute Zahl oder Anteil anzugeben. Dadurch werden zu häufige Begriffe herausgefiltert, die nicht zur Unterscheidung zwischen Dokumenten beitragen.

123456789101112131415
from sklearn.feature_extraction.text import CountVectorizer import pandas as pd corpus = [ "The quick brown fox jumps over the lazy dog.", "Quick brown foxes leap over lazy dogs in summer.", "The quick brown fox is often seen jumping over lazy dogs.", "In summer, the lazy dog plays while the quick brown fox rests.", "A quick brown fox is quicker than the laziest dog." ] # Exclude words which appear in more than 3 documents vectorizer = CountVectorizer(max_df=3) bow_matrix = vectorizer.fit_transform(corpus) bow_df = pd.DataFrame(bow_matrix.toarray(), columns=vectorizer.get_feature_names_out()) print(bow_df)
copy

Die Einstellung von max_df=3 schließt Wörter aus, die in mehr als 3 Dokumenten vorkommen. In unserem Korpus gehören dazu Wörter wie "quick" und "brown". Da sie in jedem oder fast jedem Dokument erscheinen, tragen sie nicht wirklich zur Unterscheidung der Dokumente bei. Alternativ könnten wir max_df=0.6 setzen, da 60% von 5 Dokumenten 3 Dokumente sind.

N-Gramm-Bereich

Der Parameter ngram_range ermöglicht es, den Bereich der N-Gramm-Größen festzulegen, die im Vokabular enthalten sein sollen.

Note
Definition

Ein N-Gramm ist eine zusammenhängende Sequenz von n Elementen aus einer gegebenen Textprobe. Diese Elemente sind typischerweise Wörter (in unserem Fall), Silben oder Buchstaben.

Standardmäßig berücksichtigt CountVectorizer nur Unigramme (einzelne Wörter). Durch die Einbeziehung von Bigrammen (Wortpaare), Trigrammen (Worttripel) oder größeren N-Grammen kann das Modell jedoch durch die Erfassung von mehr Kontext und semantischer Information bereichert werden, was die Leistung potenziell verbessert.

Dies wird erreicht, indem ein Tupel (min_n, max_n) an den Parameter ngram_range übergeben wird, wobei min_n die minimale N-Gramm-Größe und max_n die maximale Größe angibt.

Im Folgenden konzentrieren wir uns ausschließlich auf Trigramme, die in zwei oder mehr Dokumenten unseres Korpus vorkommen:

123456789101112131415
from sklearn.feature_extraction.text import CountVectorizer import pandas as pd corpus = [ "The quick brown fox jumps over the lazy dog.", "Quick brown foxes leap over lazy dogs in summer.", "The quick brown fox is often seen jumping over lazy dogs.", "In summer, the lazy dog plays while the quick brown fox rests.", "A quick brown fox is quicker than the laziest dog." ] # Include trigrams which appear in 2 or more documents vectorizer = CountVectorizer(min_df=2, ngram_range=(3, 3)) bow_matrix = vectorizer.fit_transform(corpus) bow_df = pd.DataFrame(bow_matrix.toarray(), columns=vectorizer.get_feature_names_out()) print(bow_df)
copy

Dies sind die am häufigsten verwendeten Parameter. Falls Sie weitere Parameter erkunden möchten, finden Sie zusätzliche Informationen in der Dokumentation.

1. Was steuert der Parameter min_df in CountVectorizer?

2. Welchen Zweck hat der Parameter ngram_range in CountVectorizer?

question mark

Was steuert der Parameter min_df in CountVectorizer?

Select the correct answer

question mark

Welchen Zweck hat der Parameter ngram_range in CountVectorizer?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 3. Kapitel 4
some-alt