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

bookTilpasning af Bag of Words

Bag of Words-modellen, især dens implementering gennem CountVectorizer-klassen, tilbyder flere parametre til tilpasning. Dette muliggør, at modellen kan tilpasses de specifikke behov i forskellige tekstanalyseopgaver, hvilket væsentligt øger modellens effektivitet.

Minimum og Maksimal Dokumentfrekvens

Parameteren min_df definerer det mindste antal dokumenter, et term skal optræde i for at blive inkluderet i vokabularet, enten som et absolut tal eller en proportion. Dette hjælper med at udelukke sjældne termer, som ofte er mindre informative.

Tilsvarende bestemmer max_df den maksimale frekvens, et term må have på tværs af dokumenter for at forblive i vokabularet, også angivet som et absolut tal eller en proportion. Dette filtrerer alt for almindelige termer fra, som ikke bidrager til at skelne mellem 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

Indstilling af max_df=3 udelukker ord, der forekommer i mere end 3 dokumenter. I vores korpus omfatter dette ord som "quick" og "brown". Da de optræder i alle eller næsten alle dokumenter, bidrager de ikke væsentligt til at skelne mellem dokumenterne. Alternativt kunne vi sætte max_df=0.6, da 60% af 5 dokumenter svarer til 3 dokumenter.

N-gram-interval

Parameteren ngram_range gør det muligt at definere intervallet af n-gram-størrelser, der skal inkluderes i ordforrådet.

Note
Definition

Et n-gram er en sammenhængende sekvens af n elementer fra en given tekstprøve. Disse elementer er typisk ord (i vores tilfælde), stavelser eller bogstaver.

Som standard overvejer CountVectorizer kun unigrammer (enkeltord). Ved at inkludere bigrammer (ordpar), trigrammer (ordtriple) eller større n-grammer kan modellen dog beriges ved at indfange mere kontekst og semantisk information, hvilket potentielt kan forbedre ydeevnen.

Dette opnås ved at angive en tuple (min_n, max_n) til parameteren ngram_range, hvor min_n angiver den mindste n-gram-størrelse, der skal inkluderes, og max_n angiver den maksimale størrelse.

Fokusér nu udelukkende på trigrammer, der forekommer i to eller flere dokumenter i vores 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 anvendte parametre, men hvis du ønsker at udforske flere, kan du se dokumentationen.

1. Hvad styrer parameteren min_df i CountVectorizer?

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

question mark

Hvad styrer parameteren min_df i CountVectorizer?

Select the correct answer

question mark

Hvad er formålet med parameteren ngram_range i CountVectorizer?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 4

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Awesome!

Completion rate improved to 3.45

bookTilpasning af Bag of Words

Stryg for at vise menuen

Bag of Words-modellen, især dens implementering gennem CountVectorizer-klassen, tilbyder flere parametre til tilpasning. Dette muliggør, at modellen kan tilpasses de specifikke behov i forskellige tekstanalyseopgaver, hvilket væsentligt øger modellens effektivitet.

Minimum og Maksimal Dokumentfrekvens

Parameteren min_df definerer det mindste antal dokumenter, et term skal optræde i for at blive inkluderet i vokabularet, enten som et absolut tal eller en proportion. Dette hjælper med at udelukke sjældne termer, som ofte er mindre informative.

Tilsvarende bestemmer max_df den maksimale frekvens, et term må have på tværs af dokumenter for at forblive i vokabularet, også angivet som et absolut tal eller en proportion. Dette filtrerer alt for almindelige termer fra, som ikke bidrager til at skelne mellem 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

Indstilling af max_df=3 udelukker ord, der forekommer i mere end 3 dokumenter. I vores korpus omfatter dette ord som "quick" og "brown". Da de optræder i alle eller næsten alle dokumenter, bidrager de ikke væsentligt til at skelne mellem dokumenterne. Alternativt kunne vi sætte max_df=0.6, da 60% af 5 dokumenter svarer til 3 dokumenter.

N-gram-interval

Parameteren ngram_range gør det muligt at definere intervallet af n-gram-størrelser, der skal inkluderes i ordforrådet.

Note
Definition

Et n-gram er en sammenhængende sekvens af n elementer fra en given tekstprøve. Disse elementer er typisk ord (i vores tilfælde), stavelser eller bogstaver.

Som standard overvejer CountVectorizer kun unigrammer (enkeltord). Ved at inkludere bigrammer (ordpar), trigrammer (ordtriple) eller større n-grammer kan modellen dog beriges ved at indfange mere kontekst og semantisk information, hvilket potentielt kan forbedre ydeevnen.

Dette opnås ved at angive en tuple (min_n, max_n) til parameteren ngram_range, hvor min_n angiver den mindste n-gram-størrelse, der skal inkluderes, og max_n angiver den maksimale størrelse.

Fokusér nu udelukkende på trigrammer, der forekommer i to eller flere dokumenter i vores 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 anvendte parametre, men hvis du ønsker at udforske flere, kan du se dokumentationen.

1. Hvad styrer parameteren min_df i CountVectorizer?

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

question mark

Hvad styrer parameteren min_df i CountVectorizer?

Select the correct answer

question mark

Hvad er formålet med parameteren ngram_range i CountVectorizer?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 4
some-alt