Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Implementering af TF-IDF | Grundlæggende Tekstmodeller
Introduktion til NLP

bookImplementering af TF-IDF

Standardimplementering

Implementeringen af TF-IDF-modellen i sklearn ligner den for bag of words-modellen. For at træne denne model på et korpus anvendes klassen TfidfVectorizer sammen med den velkendte .fit_transform()-metode.

123456789101112131415
from sklearn.feature_extraction.text import TfidfVectorizer import pandas as pd corpus = [ 'Global climate change poses significant risks to global ecosystems.', 'Global warming and climate change demand urgent action.', 'Sustainable environmental practices support environmental conservation.', ] # Create a default TF-IDF model vectorizer = TfidfVectorizer() # Generate a TF-IDF matrix tfidf_matrix = vectorizer.fit_transform(corpus) # Convert a sparse matrix into a DataFrame tfidf_matrix_df = pd.DataFrame(tfidf_matrix.toarray(), columns=vectorizer.get_feature_names_out()) print(tfidf_matrix_df)
copy

Bortset fra brugen af en anden klasse er resten af implementeringen identisk med bag of words-modellen. Som standard beregnes TF-IDF-matricen med L2-normalisering.

Tilpasning af TF-IDF

Igen, ligesom med CountVectorizer, kan vi angive parametrene min_df og max_df for kun at inkludere de termer, der forekommer i mindst min_df dokumenter og højst max_df dokumenter. Disse kan angives som enten absolutte tal for dokumenter eller som en procentdel af det samlede antal dokumenter.

Her er et eksempel, hvor vi kun inkluderer de termer, der optræder i præcis 2 dokumenter, ved at sætte både min_df og max_df til 2:

12345678910111213
from sklearn.feature_extraction.text import TfidfVectorizer import pandas as pd corpus = [ 'Global climate change poses significant risks to global ecosystems.', 'Global warming and climate change demand urgent action.', 'Sustainable environmental practices support environmental conservation.', ] # Include terms which appear in exactly 2 documents vectorizer = TfidfVectorizer(min_df=2, max_df=2) tfidf_matrix = vectorizer.fit_transform(corpus) tfidf_matrix_df = pd.DataFrame(tfidf_matrix.toarray(), columns=vectorizer.get_feature_names_out()) print(tfidf_matrix_df)
copy

For at angive hvilke n-grammer, der skal inkluderes i vores matrix, kan vi bruge parameteren ngram_range. Lad os kun inkludere bigrams i den resulterende matrix:

12345678910111213
from sklearn.feature_extraction.text import TfidfVectorizer import pandas as pd corpus = [ 'Global climate change poses significant risks to global ecosystems.', 'Global warming and climate change demand urgent action.', 'Sustainable environmental practices support environmental conservation.', ] # Include only bigrams vectorizer = TfidfVectorizer(ngram_range=(2, 2)) tfidf_matrix = vectorizer.fit_transform(corpus) tfidf_matrix_df = pd.DataFrame(tfidf_matrix.toarray(), columns=vectorizer.get_feature_names_out()) print(tfidf_matrix_df)
copy

Dette er de mest almindeligt anvendte parametre, men hvis du ønsker at udforske flere af dem, kan du se dokumentationen.

question mark

Hvilken scikit-learn-klasse kan bruges til at få TF-IDF-vektorer fra tekstkorpusset?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 7

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

bookImplementering af TF-IDF

Stryg for at vise menuen

Standardimplementering

Implementeringen af TF-IDF-modellen i sklearn ligner den for bag of words-modellen. For at træne denne model på et korpus anvendes klassen TfidfVectorizer sammen med den velkendte .fit_transform()-metode.

123456789101112131415
from sklearn.feature_extraction.text import TfidfVectorizer import pandas as pd corpus = [ 'Global climate change poses significant risks to global ecosystems.', 'Global warming and climate change demand urgent action.', 'Sustainable environmental practices support environmental conservation.', ] # Create a default TF-IDF model vectorizer = TfidfVectorizer() # Generate a TF-IDF matrix tfidf_matrix = vectorizer.fit_transform(corpus) # Convert a sparse matrix into a DataFrame tfidf_matrix_df = pd.DataFrame(tfidf_matrix.toarray(), columns=vectorizer.get_feature_names_out()) print(tfidf_matrix_df)
copy

Bortset fra brugen af en anden klasse er resten af implementeringen identisk med bag of words-modellen. Som standard beregnes TF-IDF-matricen med L2-normalisering.

Tilpasning af TF-IDF

Igen, ligesom med CountVectorizer, kan vi angive parametrene min_df og max_df for kun at inkludere de termer, der forekommer i mindst min_df dokumenter og højst max_df dokumenter. Disse kan angives som enten absolutte tal for dokumenter eller som en procentdel af det samlede antal dokumenter.

Her er et eksempel, hvor vi kun inkluderer de termer, der optræder i præcis 2 dokumenter, ved at sætte både min_df og max_df til 2:

12345678910111213
from sklearn.feature_extraction.text import TfidfVectorizer import pandas as pd corpus = [ 'Global climate change poses significant risks to global ecosystems.', 'Global warming and climate change demand urgent action.', 'Sustainable environmental practices support environmental conservation.', ] # Include terms which appear in exactly 2 documents vectorizer = TfidfVectorizer(min_df=2, max_df=2) tfidf_matrix = vectorizer.fit_transform(corpus) tfidf_matrix_df = pd.DataFrame(tfidf_matrix.toarray(), columns=vectorizer.get_feature_names_out()) print(tfidf_matrix_df)
copy

For at angive hvilke n-grammer, der skal inkluderes i vores matrix, kan vi bruge parameteren ngram_range. Lad os kun inkludere bigrams i den resulterende matrix:

12345678910111213
from sklearn.feature_extraction.text import TfidfVectorizer import pandas as pd corpus = [ 'Global climate change poses significant risks to global ecosystems.', 'Global warming and climate change demand urgent action.', 'Sustainable environmental practices support environmental conservation.', ] # Include only bigrams vectorizer = TfidfVectorizer(ngram_range=(2, 2)) tfidf_matrix = vectorizer.fit_transform(corpus) tfidf_matrix_df = pd.DataFrame(tfidf_matrix.toarray(), columns=vectorizer.get_feature_names_out()) print(tfidf_matrix_df)
copy

Dette er de mest almindeligt anvendte parametre, men hvis du ønsker at udforske flere af dem, kan du se dokumentationen.

question mark

Hvilken scikit-learn-klasse kan bruges til at få TF-IDF-vektorer fra tekstkorpusset?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 7
some-alt