Stoppord och hashning
Nästa steg är att ta bort stopwords och sedan använda hashningstricket för att omvandla resultaten till en TF-IDF-matris.
En kort påminnelse om dessa begrepp:
- Hashningstricket ger ett snabbt och utrymmeseffektivt sätt att avbilda en mycket stor (potentiellt oändlig) mängd objekt – i det här fallet alla ord i SMS-meddelandena – på ett mindre, ändligt antal värden.
- TF-IDF-matrisen återspeglar hur viktig ett ord är för varje dokument. Den tar hänsyn till både hur ofta ordet förekommer i det enskilda dokumentet och hur vanligt det är i hela dokumentsamlingen.
De tokeniserade SMS-data lagras i sms i en kolumn som heter words. Du har städat upp hanteringen av blanksteg i datan så att den tokeniserade texten är snyggare.
Den här övningen är en del av kursen
Maskininlärning med PySpark
Övningsinstruktioner
- Importera klasserna
StopWordsRemover,HashingTFochIDF. - Skapa ett
StopWordsRemover-objekt (indatakolumnwords, utdatakolumnterms). Applicera det påsms. - Skapa ett
HashingTF-objekt (indata från föregående steg, utdatakolumnhash). Applicera det påwrangled. - Skapa ett
IDF-objekt (indata från föregående steg, utdatakolumnfeatures). Applicera det påwrangled.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
from pyspark.ml.____ import ____, ____, ____
# Remove stopwords
wrangled = ____(inputCol=____, outputCol=____)\
.____(sms)
# Apply the hashing trick
wrangled = ____(____, ____, numFeatures=1024)\
.____(wrangled)
# Convert hashed symbols to TF-IDF
tf_idf = ____(____, ____)\
.____(wrangled).____(wrangled)
tf_idf.select('terms', 'features').show(4, truncate=False)