Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Implementazione di TF-IDF | Modelli di Testo di Base
Introduzione alla NLP

bookImplementazione di TF-IDF

Implementazione Predefinita

L'implementazione del modello TF-IDF in sklearn è simile a quella del modello bag of words. Per addestrare questo modello su un corpus, si utilizza la classe TfidfVectorizer, sfruttando il noto metodo .fit_transform().

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

A parte l'utilizzo di una classe diversa, il resto dell'implementazione è identico a quello del modello bag of words. Per impostazione predefinita, la matrice TF-IDF viene calcolata con la normalizzazione L2.

Personalizzazione di TF-IDF

Ancora una volta, analogamente a CountVectorizer, è possibile specificare i parametri min_df e max_df per includere solo i termini che compaiono in almeno min_df documenti e al massimo in max_df documenti. Questi possono essere specificati sia come numeri assoluti di documenti sia come proporzione rispetto al numero totale di documenti.

Ecco un esempio in cui vengono inclusi solo i termini che compaiono esattamente in 2 documenti impostando sia min_df che max_df a 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

Per specificare gli n-grammi da includere nella nostra matrice, è possibile utilizzare il parametro ngram_range. Includiamo solo bigrammi nella matrice risultante:

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

Questi sono i parametri più comunemente utilizzati; tuttavia, se desideri esplorarne altri, puoi fare riferimento alla documentazione.

question mark

Quale classe di scikit-learn può essere utilizzata per ottenere i vettori TF-IDF dal corpus di testo?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 3. Capitolo 7

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Awesome!

Completion rate improved to 3.45

bookImplementazione di TF-IDF

Scorri per mostrare il menu

Implementazione Predefinita

L'implementazione del modello TF-IDF in sklearn è simile a quella del modello bag of words. Per addestrare questo modello su un corpus, si utilizza la classe TfidfVectorizer, sfruttando il noto metodo .fit_transform().

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

A parte l'utilizzo di una classe diversa, il resto dell'implementazione è identico a quello del modello bag of words. Per impostazione predefinita, la matrice TF-IDF viene calcolata con la normalizzazione L2.

Personalizzazione di TF-IDF

Ancora una volta, analogamente a CountVectorizer, è possibile specificare i parametri min_df e max_df per includere solo i termini che compaiono in almeno min_df documenti e al massimo in max_df documenti. Questi possono essere specificati sia come numeri assoluti di documenti sia come proporzione rispetto al numero totale di documenti.

Ecco un esempio in cui vengono inclusi solo i termini che compaiono esattamente in 2 documenti impostando sia min_df che max_df a 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

Per specificare gli n-grammi da includere nella nostra matrice, è possibile utilizzare il parametro ngram_range. Includiamo solo bigrammi nella matrice risultante:

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

Questi sono i parametri più comunemente utilizzati; tuttavia, se desideri esplorarne altri, puoi fare riferimento alla documentazione.

question mark

Quale classe di scikit-learn può essere utilizzata per ottenere i vettori TF-IDF dal corpus di testo?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 3. Capitolo 7
some-alt