Använda längre n-gram
Hittills har du skapat särdrag baserade på enskilda ord i varje text. Det kan vara mycket effektivt i en maskininlärningsmodell, men om man tittar på ord var för sig riskerar man att missa mycket av sammanhanget. Ett sätt att hantera detta är att använda n-gram – sekvenser av n ord grupperade tillsammans. Till exempel:
- bigram: Sekvenser av två på varandra följande ord
- trigram: Sekvenser av tre på varandra följande ord
Dessa kan skapas automatiskt i din datamängd genom att ange argumentet ngram_range som en tupel (n1, n2), där alla n-gram i intervallet n1 till n2 inkluderas.
Den här övningen är en del av kursen
Särdragshantering för maskininlärning i Python
Övningsinstruktioner
- Importera
CountVectorizerfrånsklearn.feature_extraction.text. - Skapa en instans av
CountVectorizersom enbart tar hänsyn till trigram. - Anpassa vektoriseraren och tillämpa den på kolumnen
text_cleani ett steg. - Skriv ut de särdragsnamn som vektoriseraren har genererat.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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.____)