IniziaInizia gratis

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

Visualizza il corso

Istruzioni dell'esercizio

  • Importa le classi StopWordsRemover, HashingTF e IDF.
  • Crea un oggetto StopWordsRemover (colonna di input words, colonna di output terms). Applica a sms.
  • Crea un oggetto HashingTF (input dai risultati del passaggio precedente, colonna di output hash). Applica a wrangled.
  • Crea un oggetto IDF (input dai risultati del passaggio precedente, colonna di output features). Applica a wrangled.

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)
Modifica ed esegui il codice