Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Bag-of-Words Aanpassen | Basis Tekstmodellen
Introductie tot NLP

bookBag-of-Words Aanpassen

Het Bag of Words-model, met name de implementatie via de CountVectorizer-klasse, biedt verschillende parameters voor aanpassing. Hierdoor kan het model worden afgestemd op de specifieke behoeften van diverse tekstanalysetaken, wat de effectiviteit van het model aanzienlijk vergroot.

Minimale en Maximale Documentfrequentie

De parameter min_df definieert het minimale aantal documenten waarin een term moet voorkomen om te worden opgenomen in de vocabulaire, hetzij als een absoluut getal of een proportie. Dit helpt om zeldzame termen uit te sluiten, die vaak minder informatief zijn.

Op vergelijkbare wijze bepaalt max_df de maximale frequentie waarmee een term in documenten mag voorkomen om in de vocabulaire te blijven, eveneens op te geven als een absoluut getal of proportie. Hiermee worden te algemene termen gefilterd die niet bijdragen aan het onderscheiden van documenten.

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

Het instellen van max_df=3 sluit woorden uit die in meer dan 3 documenten voorkomen. In onze corpus zijn dit woorden zoals "quick" en "brown". Aangezien deze in elk of bijna elk document voorkomen, dragen ze niet echt bij aan het onderscheiden van documenten. Als alternatief kunnen we max_df=0.6 instellen, aangezien 60% van 5 documenten gelijk is aan 3 documenten.

N-grambereik

De parameter ngram_range maakt het mogelijk om het bereik van n-gramgroottes te definiëren die in de vocabulaire worden opgenomen.

Note
Definitie

Een n-gram is een aaneengesloten reeks van n items uit een gegeven tekstsample. Deze items zijn doorgaans woorden (in ons geval), lettergrepen of letters.

Standaard beschouwt CountVectorizer alleen unigrammen (enkele woorden). Het opnemen van bigrammen (paren van woorden), trigrammen (reeksen van drie woorden) of grotere n-grammen kan het model verrijken door meer context en semantische informatie vast te leggen, wat mogelijk de prestaties verbetert.

Dit wordt bereikt door een tuple (min_n, max_n) door te geven aan de parameter ngram_range, waarbij min_n de minimale n-gramgrootte aangeeft en max_n de maximale grootte.

Laten we ons nu uitsluitend richten op trigrammen die in twee of meer documenten binnen onze corpus voorkomen:

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

Dit zijn de meest gebruikte parameters. Indien u meer wilt verkennen, raadpleeg dan de documentatie.

1. Waar regelt de parameter min_df in CountVectorizer?

2. Wat is het doel van de parameter ngram_range in CountVectorizer?

question mark

Waar regelt de parameter min_df in CountVectorizer?

Select the correct answer

question mark

Wat is het doel van de parameter ngram_range in CountVectorizer?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 3. Hoofdstuk 4

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

Awesome!

Completion rate improved to 3.45

bookBag-of-Words Aanpassen

Veeg om het menu te tonen

Het Bag of Words-model, met name de implementatie via de CountVectorizer-klasse, biedt verschillende parameters voor aanpassing. Hierdoor kan het model worden afgestemd op de specifieke behoeften van diverse tekstanalysetaken, wat de effectiviteit van het model aanzienlijk vergroot.

Minimale en Maximale Documentfrequentie

De parameter min_df definieert het minimale aantal documenten waarin een term moet voorkomen om te worden opgenomen in de vocabulaire, hetzij als een absoluut getal of een proportie. Dit helpt om zeldzame termen uit te sluiten, die vaak minder informatief zijn.

Op vergelijkbare wijze bepaalt max_df de maximale frequentie waarmee een term in documenten mag voorkomen om in de vocabulaire te blijven, eveneens op te geven als een absoluut getal of proportie. Hiermee worden te algemene termen gefilterd die niet bijdragen aan het onderscheiden van documenten.

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

Het instellen van max_df=3 sluit woorden uit die in meer dan 3 documenten voorkomen. In onze corpus zijn dit woorden zoals "quick" en "brown". Aangezien deze in elk of bijna elk document voorkomen, dragen ze niet echt bij aan het onderscheiden van documenten. Als alternatief kunnen we max_df=0.6 instellen, aangezien 60% van 5 documenten gelijk is aan 3 documenten.

N-grambereik

De parameter ngram_range maakt het mogelijk om het bereik van n-gramgroottes te definiëren die in de vocabulaire worden opgenomen.

Note
Definitie

Een n-gram is een aaneengesloten reeks van n items uit een gegeven tekstsample. Deze items zijn doorgaans woorden (in ons geval), lettergrepen of letters.

Standaard beschouwt CountVectorizer alleen unigrammen (enkele woorden). Het opnemen van bigrammen (paren van woorden), trigrammen (reeksen van drie woorden) of grotere n-grammen kan het model verrijken door meer context en semantische informatie vast te leggen, wat mogelijk de prestaties verbetert.

Dit wordt bereikt door een tuple (min_n, max_n) door te geven aan de parameter ngram_range, waarbij min_n de minimale n-gramgrootte aangeeft en max_n de maximale grootte.

Laten we ons nu uitsluitend richten op trigrammen die in twee of meer documenten binnen onze corpus voorkomen:

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

Dit zijn de meest gebruikte parameters. Indien u meer wilt verkennen, raadpleeg dan de documentatie.

1. Waar regelt de parameter min_df in CountVectorizer?

2. Wat is het doel van de parameter ngram_range in CountVectorizer?

question mark

Waar regelt de parameter min_df in CountVectorizer?

Select the correct answer

question mark

Wat is het doel van de parameter ngram_range in CountVectorizer?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 3. Hoofdstuk 4
some-alt