Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Personalizzazione del Bag of Words | Modelli di Testo di Base
Introduzione alla NLP

bookPersonalizzazione del Bag of Words

Il modello Bag of Words, in particolare la sua implementazione tramite la classe CountVectorizer, offre diversi parametri di personalizzazione. Questo consente di adattarlo alle esigenze specifiche di vari compiti di analisi del testo, migliorando significativamente l'efficacia del modello.

Frequenza Minima e Massima del Documento

Il parametro min_df definisce il numero minimo di documenti in cui un termine deve apparire per essere incluso nel vocabolario, sia come numero assoluto che come proporzione. Aiuta a escludere termini rari, spesso meno informativi.

Analogamente, max_df determina la frequenza massima che un termine può avere tra i documenti per rimanere nel vocabolario, anch'essa specificabile come numero assoluto o proporzione. Filtra i termini troppo comuni che non contribuiscono a distinguere tra i documenti.

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

Impostando max_df=3 si escludono le parole che compaiono in più di 3 documenti. Nel nostro corpus, queste includono parole come "quick" e "brown". Poiché compaiono in tutti o quasi tutti i documenti, non aiutano realmente a distinguere tra i documenti. In alternativa, si potrebbe impostare max_df=0.6, poiché il 60% di 5 documenti corrisponde a 3 documenti.

Intervallo N-gram

Il parametro ngram_range consente di definire l'intervallo delle dimensioni degli n-gram da includere nel vocabolario.

Note
Definizione

Un n-gram è una sequenza contigua di n elementi da un dato campione di testo. Questi elementi sono tipicamente parole (nel nostro caso), sillabe o lettere.

Per impostazione predefinita, CountVectorizer considera solo unigrammi (singole parole). Tuttavia, includere bigrammi (coppie di parole), trigrammi (terzine di parole) o n-grammi di dimensioni maggiori può arricchire il modello catturando più contesto e informazioni semantiche, migliorando potenzialmente le prestazioni.

Questo si ottiene passando una tupla (min_n, max_n) al parametro ngram_range, dove min_n rappresenta la dimensione minima di n-grammi da includere e max_n rappresenta la dimensione massima.

Ora concentriamoci esclusivamente sui trigrammi che compaiono in due o più documenti all'interno del nostro corpus:

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

Questi sono i parametri più comunemente utilizzati; tuttavia, nel caso si desideri esplorarne altri, è possibile consultare la documentazione.

1. Cosa controlla il parametro min_df in CountVectorizer?

2. Qual è lo scopo del parametro ngram_range in CountVectorizer?

question mark

Cosa controlla il parametro min_df in CountVectorizer?

Select the correct answer

question mark

Qual è lo scopo del parametro ngram_range in CountVectorizer?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 3. Capitolo 4

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

bookPersonalizzazione del Bag of Words

Scorri per mostrare il menu

Il modello Bag of Words, in particolare la sua implementazione tramite la classe CountVectorizer, offre diversi parametri di personalizzazione. Questo consente di adattarlo alle esigenze specifiche di vari compiti di analisi del testo, migliorando significativamente l'efficacia del modello.

Frequenza Minima e Massima del Documento

Il parametro min_df definisce il numero minimo di documenti in cui un termine deve apparire per essere incluso nel vocabolario, sia come numero assoluto che come proporzione. Aiuta a escludere termini rari, spesso meno informativi.

Analogamente, max_df determina la frequenza massima che un termine può avere tra i documenti per rimanere nel vocabolario, anch'essa specificabile come numero assoluto o proporzione. Filtra i termini troppo comuni che non contribuiscono a distinguere tra i documenti.

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

Impostando max_df=3 si escludono le parole che compaiono in più di 3 documenti. Nel nostro corpus, queste includono parole come "quick" e "brown". Poiché compaiono in tutti o quasi tutti i documenti, non aiutano realmente a distinguere tra i documenti. In alternativa, si potrebbe impostare max_df=0.6, poiché il 60% di 5 documenti corrisponde a 3 documenti.

Intervallo N-gram

Il parametro ngram_range consente di definire l'intervallo delle dimensioni degli n-gram da includere nel vocabolario.

Note
Definizione

Un n-gram è una sequenza contigua di n elementi da un dato campione di testo. Questi elementi sono tipicamente parole (nel nostro caso), sillabe o lettere.

Per impostazione predefinita, CountVectorizer considera solo unigrammi (singole parole). Tuttavia, includere bigrammi (coppie di parole), trigrammi (terzine di parole) o n-grammi di dimensioni maggiori può arricchire il modello catturando più contesto e informazioni semantiche, migliorando potenzialmente le prestazioni.

Questo si ottiene passando una tupla (min_n, max_n) al parametro ngram_range, dove min_n rappresenta la dimensione minima di n-grammi da includere e max_n rappresenta la dimensione massima.

Ora concentriamoci esclusivamente sui trigrammi che compaiono in due o più documenti all'interno del nostro corpus:

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

Questi sono i parametri più comunemente utilizzati; tuttavia, nel caso si desideri esplorarne altri, è possibile consultare la documentazione.

1. Cosa controlla il parametro min_df in CountVectorizer?

2. Qual è lo scopo del parametro ngram_range in CountVectorizer?

question mark

Cosa controlla il parametro min_df in CountVectorizer?

Select the correct answer

question mark

Qual è lo scopo del parametro ngram_range in CountVectorizer?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 3. Capitolo 4
some-alt