Stopwords e hashing
I prossimi passaggi saranno rimuovere le stopwords e poi applicare l’hashing trick, convertendo i risultati in una TF-IDF.
Un breve promemoria su questi concetti:
- L’hashing trick offre un modo veloce ed efficiente in termini di spazio per mappare un insieme molto grande (potenzialmente infinito) di elementi (in questo caso, tutte le parole contenute negli SMS) su un numero più piccolo e finito di valori.
- La matrice TF-IDF riflette quanto è importante una parola per ciascun documento. Tiene conto sia della frequenza della parola all’interno di ogni documento, sia della frequenza della parola nell’intera collezione di documenti.
I dati degli SMS tokenizzati sono memorizzati in sms in una colonna chiamata words. Hai ripulito la gestione degli spazi nei dati così che il testo tokenizzato sia più ordinato.
Questo esercizio fa parte del corso
Machine Learning con PySpark
Istruzioni dell'esercizio
- Importa le classi
StopWordsRemover,HashingTFeIDF. - Crea un oggetto
StopWordsRemover(colonna di inputwords, colonna di outputterms). Applica asms. - Crea un oggetto
HashingTF(input dai risultati del passaggio precedente, colonna di outputhash). Applica awrangled. - Crea un oggetto
IDF(input dai risultati del passaggio precedente, colonna di outputfeatures). Applica awrangled.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
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)