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
Oefeninstructies
- Importeer de functie om reguliere expressies te vervangen en de feature om te tokenizen.
- Vervang alle leestekens in de kolom
textdoor een spatie. Doe hetzelfde voor alle cijfers in de kolomtext. - Splits de kolom
textin tokens. Noem de uitvoerkolomwords.
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)