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

bookImplementering av TF-IDF

Standardimplementasjon

Implementeringen av TF-IDF-modellen i sklearn ligner på den for bag of words-modellen. For å trene denne modellen på et korpus, benyttes klassen TfidfVectorizer, hvor den velkjente metoden .fit_transform() brukes.

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

Bortsett fra bruk av en annen klasse, er resten av implementeringen identisk med bag of words-modellen. Som standard beregnes TF-IDF-matrisen med L2-normalisering.

Tilpasning av TF-IDF

På samme måte som med CountVectorizer, kan vi angi parameterne min_df og max_df for å inkludere kun de termene som forekommer i minst min_df dokumenter og maksimalt max_df dokumenter. Disse kan angis enten som absolutte tall for antall dokumenter eller som en andel av det totale antallet dokumenter.

Her er et eksempel der vi kun inkluderer de termene som forekommer i nøyaktig 2 dokumenter ved å sette 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 å angi hvilke n-grammer som skal inkluderes i matrisen, kan vi bruke parameteren ngram_range. La oss kun inkludere bigrammer i den resulterende matrisen:

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 brukte parameterne, men dersom du ønsker å utforske flere, kan du se i dokumentasjonen.

question mark

Hvilken scikit-learn-klasse kan brukes for å hente ut TF-IDF-vektorer fra tekstkorpuset?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 3. Kapittel 7

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

Awesome!

Completion rate improved to 3.45

bookImplementering av TF-IDF

Sveip for å vise menyen

Standardimplementasjon

Implementeringen av TF-IDF-modellen i sklearn ligner på den for bag of words-modellen. For å trene denne modellen på et korpus, benyttes klassen TfidfVectorizer, hvor den velkjente metoden .fit_transform() brukes.

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

Bortsett fra bruk av en annen klasse, er resten av implementeringen identisk med bag of words-modellen. Som standard beregnes TF-IDF-matrisen med L2-normalisering.

Tilpasning av TF-IDF

På samme måte som med CountVectorizer, kan vi angi parameterne min_df og max_df for å inkludere kun de termene som forekommer i minst min_df dokumenter og maksimalt max_df dokumenter. Disse kan angis enten som absolutte tall for antall dokumenter eller som en andel av det totale antallet dokumenter.

Her er et eksempel der vi kun inkluderer de termene som forekommer i nøyaktig 2 dokumenter ved å sette 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 å angi hvilke n-grammer som skal inkluderes i matrisen, kan vi bruke parameteren ngram_range. La oss kun inkludere bigrammer i den resulterende matrisen:

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 brukte parameterne, men dersom du ønsker å utforske flere, kan du se i dokumentasjonen.

question mark

Hvilken scikit-learn-klasse kan brukes for å hente ut TF-IDF-vektorer fra tekstkorpuset?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 3. Kapittel 7
some-alt