Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Tilpasning av Bag of Words | Grunnleggende Tekstmodeller
Introduksjon til NLP

bookTilpasning av Bag of Words

Bag of Words-modellen, spesielt implementert gjennom CountVectorizer-klassen, tilbyr flere parametere for tilpasning. Dette gjør det mulig å skreddersy modellen til de spesifikke behovene i ulike tekstanalyseoppgaver, noe som i stor grad øker modellens effektivitet.

Minimum og maksimum dokumentfrekvens

Parameteren min_df definerer minimum antall dokumenter et begrep må forekomme i for å inkluderes i vokabularet, enten som et absolutt tall eller en andel. Dette bidrar til å utelate sjeldne begreper, som ofte er mindre informative.

Tilsvarende bestemmer max_df maksimal frekvens et begrep kan ha på tvers av dokumenter for å forbli i vokabularet, også spesifiserbart som et absolutt tall eller en andel. Dette filtrerer ut altfor vanlige begreper som ikke bidrar til å skille mellom dokumenter.

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

Ved å sette max_df=3 utelukkes ord som forekommer i mer enn 3 dokumenter. I vårt korpus inkluderer dette ord som "quick" og "brown". Siden de forekommer i alle eller nesten alle dokumentene, bidrar de ikke til å skille mellom dokumentene. Alternativt kan vi sette max_df=0.6, ettersom 60 % av 5 dokumenter tilsvarer 3 dokumenter.

N-gram-område

Parameteren ngram_range lar deg definere området for n-gram-størrelser som skal inkluderes i vokabularet.

Note
Definisjon

Et n-gram er en sammenhengende sekvens av n elementer fra et gitt tekstutvalg. Disse elementene er vanligvis ord (i vårt tilfelle), stavelser eller bokstaver.

Som standard vurderer CountVectorizer kun unigrammer (enkeltord). Ved å inkludere bigrammer (ordpar), trigrammer (ordtriplett) eller større n-gram, kan modellen berikes ved å fange opp mer kontekst og semantisk informasjon, noe som potensielt kan forbedre ytelsen.

Dette oppnås ved å sende en tuple (min_n, max_n) til parameteren ngram_range, der min_n angir minste n-gram-størrelse som skal inkluderes, og max_n angir den maksimale størrelsen.

La oss nå fokusere utelukkende på trigrammer som forekommer i to eller flere dokumenter i vårt korpus:

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

Dette er de mest brukte parameterne, men dersom du ønsker å utforske flere, kan du se dokumentasjonen.

1. Hva kontrollerer parameteren min_df i CountVectorizer?

2. Hva er formålet med parameteren ngram_range i CountVectorizer?

question mark

Hva kontrollerer parameteren min_df i CountVectorizer?

Select the correct answer

question mark

Hva er formålet med parameteren ngram_range i CountVectorizer?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 3. Kapittel 4

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

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

bookTilpasning av Bag of Words

Sveip for å vise menyen

Bag of Words-modellen, spesielt implementert gjennom CountVectorizer-klassen, tilbyr flere parametere for tilpasning. Dette gjør det mulig å skreddersy modellen til de spesifikke behovene i ulike tekstanalyseoppgaver, noe som i stor grad øker modellens effektivitet.

Minimum og maksimum dokumentfrekvens

Parameteren min_df definerer minimum antall dokumenter et begrep må forekomme i for å inkluderes i vokabularet, enten som et absolutt tall eller en andel. Dette bidrar til å utelate sjeldne begreper, som ofte er mindre informative.

Tilsvarende bestemmer max_df maksimal frekvens et begrep kan ha på tvers av dokumenter for å forbli i vokabularet, også spesifiserbart som et absolutt tall eller en andel. Dette filtrerer ut altfor vanlige begreper som ikke bidrar til å skille mellom dokumenter.

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

Ved å sette max_df=3 utelukkes ord som forekommer i mer enn 3 dokumenter. I vårt korpus inkluderer dette ord som "quick" og "brown". Siden de forekommer i alle eller nesten alle dokumentene, bidrar de ikke til å skille mellom dokumentene. Alternativt kan vi sette max_df=0.6, ettersom 60 % av 5 dokumenter tilsvarer 3 dokumenter.

N-gram-område

Parameteren ngram_range lar deg definere området for n-gram-størrelser som skal inkluderes i vokabularet.

Note
Definisjon

Et n-gram er en sammenhengende sekvens av n elementer fra et gitt tekstutvalg. Disse elementene er vanligvis ord (i vårt tilfelle), stavelser eller bokstaver.

Som standard vurderer CountVectorizer kun unigrammer (enkeltord). Ved å inkludere bigrammer (ordpar), trigrammer (ordtriplett) eller større n-gram, kan modellen berikes ved å fange opp mer kontekst og semantisk informasjon, noe som potensielt kan forbedre ytelsen.

Dette oppnås ved å sende en tuple (min_n, max_n) til parameteren ngram_range, der min_n angir minste n-gram-størrelse som skal inkluderes, og max_n angir den maksimale størrelsen.

La oss nå fokusere utelukkende på trigrammer som forekommer i to eller flere dokumenter i vårt korpus:

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

Dette er de mest brukte parameterne, men dersom du ønsker å utforske flere, kan du se dokumentasjonen.

1. Hva kontrollerer parameteren min_df i CountVectorizer?

2. Hva er formålet med parameteren ngram_range i CountVectorizer?

question mark

Hva kontrollerer parameteren min_df i CountVectorizer?

Select the correct answer

question mark

Hva er formålet med parameteren ngram_range i CountVectorizer?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 3. Kapittel 4
some-alt