Aan de slagGa gratis aan de slag

Leestekens, cijfers en tokens

Aan het einde van het vorige hoofdstuk heb je een gegevensset met sms-berichten geladen die gelabeld waren als "spam" (label 1) of "ham" (label 0). Je gaat die data nu gebruiken om een classifier-model te bouwen.

Maar eerst moet je de sms-berichten als volgt voorbereiden:

  • leestekens en cijfers verwijderen
  • tokenizen (opsplitsen in losse woorden)
  • stopwoorden verwijderen
  • de hashing trick toepassen
  • omzetten naar TF-IDF-representatie.

In deze oefening verwijder je leestekens en cijfers en tokeniseer je daarna de berichten.

De sms-data zijn beschikbaar als sms.

Deze oefening maakt deel uit van de cursus

Machine Learning met PySpark

Cursus bekijken

Oefeninstructies

  • Importeer de functie om reguliere expressies te vervangen en de feature om te tokenizen.
  • Vervang alle leestekens in de kolom text door een spatie. Doe hetzelfde voor alle cijfers in de kolom text.
  • Splits de kolom text in tokens. Noem de uitvoerkolom words.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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)
Code bewerken en uitvoeren