Uso di n-grammi più lunghi
Finora hai creato feature basate su singole parole in ciascun testo. Questo può essere molto efficace in un modello di Machine Learning, ma potresti temere che, analizzando le parole singolarmente, si perda molto contesto. Per affrontare questo problema nella creazione dei modelli puoi usare gli n-grammi, cioè 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 tupla (n1, n2), in cui sono inclusi tutti gli n-grammi 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 vectorizer e applicalo alla colonna
text_cleanin un solo passaggio. - Stampa i nomi delle feature generati dal vectorizer.
esercizio interattivo pratico
Prova questo esercizio completando questo 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.____)