Usare n-gram più lunghi
Finora hai creato feature basate sulle singole parole presenti in ciascun testo. Questo può essere molto efficace in un modello di Machine Learning, ma potresti preoccuparti che, analizzando le parole isolatamente, si perda gran parte del contesto. Per gestire questo aspetto durante la creazione dei modelli puoi usare gli n-gram, ovvero sequenze di n parole raggruppate. Per esempio:
- bigrammi: sequenze di due parole consecutive
- trigrammi: sequenze di tre parole consecutive
Questi possono essere creati automaticamente nel tuo insieme di dati specificando l’argomento ngram_range come una tupla (n1, n2), includendo tutti gli n-gram nell’intervallo da n1 a n2.
Questo esercizio fa parte del corso
Feature Engineering per il Machine Learning in Python
Istruzioni dell'esercizio
- Importa
CountVectorizerdasklearn.feature_extraction.text. - Istanzia
CountVectorizerconsiderando solo i trigrammi. - Esegui il fit del vettorizzatore e applicalo alla colonna
text_cleanin un solo passaggio. - Stampa i nomi delle feature generati dal vettorizzatore.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# Import CountVectorizer
from sklearn.feature_extraction.text import ____
# Instantiate a trigram vectorizer
cv_trigram_vec = CountVectorizer(max_features=100,
stop_words='english',
____)
# Fit and apply trigram vectorizer
cv_trigram = ____(speech_df['text_clean'])
# Print the trigram features
print(cv_trigram_vec.____)