IniziaInizia gratis

Punteggiatura, numeri e token

Alla fine del capitolo precedente hai caricato un insieme di dati di messaggi SMS etichettati come "spam" (etichetta 1) o "ham" (etichetta 0). Ora userai questi dati per costruire un modello di classificazione.

Ma prima devi preparare i messaggi SMS come segue:

  • rimuovere punteggiatura e numeri
  • tokenizzare (suddividere in singole parole)
  • rimuovere le stop word
  • applicare l'hashing trick
  • convertire nella rappresentazione TF-IDF.

In questo esercizio rimuoverai punteggiatura e numeri, quindi tokenizzerai i messaggi.

I dati degli SMS sono disponibili come sms.

Questo esercizio fa parte del corso

Machine Learning con PySpark

Visualizza il corso

Istruzioni dell'esercizio

  • Importa la funzione per sostituire usando espressioni regolari e la feature per tokenizzare.
  • Sostituisci tutti i caratteri di punteggiatura nella colonna text con uno spazio. Fai lo stesso per tutti i numeri nella colonna text.
  • Suddividi la colonna text in token. Assegna alla colonna di output il nome words.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# Import the necessary functions
from pyspark.sql.functions import ____
from pyspark.ml.feature import ____

# Remove punctuation (REGEX provided) and numbers
wrangled = sms.withColumn('text', ____(sms.text, '[_():;,.!?\\-]', ____))
wrangled = wrangled.withColumn(____, ____(____, ____, ____))

# Merge multiple spaces
wrangled = wrangled.withColumn('text', regexp_replace(wrangled.text, ' +', ' '))

# Split the text into words
wrangled = ____(inputCol='text', outputCol=____).____(wrangled)

wrangled.show(4, truncate=False)
Modifica ed esegui il codice