Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer TF-IDF Implementeren | Basis Tekstmodellen
Introductie tot NLP

bookTF-IDF Implementeren

Standaardimplementatie

De implementatie van het TF-IDF-model in sklearn is vergelijkbaar met die van het bag of words-model. Om dit model op een corpus te trainen, wordt de klasse TfidfVectorizer gebruikt, waarbij de bekende .fit_transform()-methode wordt toegepast.

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

Afgezien van het gebruik van een andere klasse is de rest van de implementatie identiek aan die van het bag of words-model. Standaard wordt de TF-IDF-matrix berekend met L2-normalisatie.

TF-IDF aanpassen

Net als bij CountVectorizer kunnen we de parameters min_df en max_df opgeven om alleen termen op te nemen die in ten minste min_df documenten en in maximaal max_df documenten voorkomen. Deze kunnen worden opgegeven als absolute aantallen documenten of als een proportie van het totale aantal documenten.

Hier is een voorbeeld waarbij we alleen die termen opnemen die in precies 2 documenten voorkomen door zowel min_df als max_df op 2 te zetten:

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

Om de n-grammen te specificeren die we in onze matrix willen opnemen, kunnen we de parameter ngram_range gebruiken. Laten we alleen bigrams opnemen in de 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

Dit zijn de meest gebruikte parameters. Indien u echter meer wilt verkennen, kunt u terecht in de documentatie.

question mark

Welke scikit-learn klasse kan worden gebruikt om de TF-IDF vectoren uit de tekstcorpus te verkrijgen?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 3. Hoofdstuk 7

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

bookTF-IDF Implementeren

Veeg om het menu te tonen

Standaardimplementatie

De implementatie van het TF-IDF-model in sklearn is vergelijkbaar met die van het bag of words-model. Om dit model op een corpus te trainen, wordt de klasse TfidfVectorizer gebruikt, waarbij de bekende .fit_transform()-methode wordt toegepast.

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

Afgezien van het gebruik van een andere klasse is de rest van de implementatie identiek aan die van het bag of words-model. Standaard wordt de TF-IDF-matrix berekend met L2-normalisatie.

TF-IDF aanpassen

Net als bij CountVectorizer kunnen we de parameters min_df en max_df opgeven om alleen termen op te nemen die in ten minste min_df documenten en in maximaal max_df documenten voorkomen. Deze kunnen worden opgegeven als absolute aantallen documenten of als een proportie van het totale aantal documenten.

Hier is een voorbeeld waarbij we alleen die termen opnemen die in precies 2 documenten voorkomen door zowel min_df als max_df op 2 te zetten:

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

Om de n-grammen te specificeren die we in onze matrix willen opnemen, kunnen we de parameter ngram_range gebruiken. Laten we alleen bigrams opnemen in de 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

Dit zijn de meest gebruikte parameters. Indien u echter meer wilt verkennen, kunt u terecht in de documentatie.

question mark

Welke scikit-learn klasse kan worden gebruikt om de TF-IDF vectoren uit de tekstcorpus te verkrijgen?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 3. Hoofdstuk 7
some-alt