Interpunktion, Zahlen und Token
Am Ende des vorherigen Kapitels hast du einen Datensatz mit SMS-Nachrichten geladen, die entweder als "Spam" (Label 1) oder als "Ham" (Label 0) gekennzeichnet wurden. Du wirst diese Daten nun nutzen, um ein Klassifizierungsmodell zu erstellen.
Aber zuerst musst du die SMS-Nachrichten wie folgt vorbereiten:
- Interpunktion und Zahlen entfernen
- tokenisieren (in einzelne Wörter aufteilen)
- Stoppwörter entfernen
- den Hashing-Trick anwenden
- in die TF-IDF-Darstellung umwandeln.
In dieser Übung entfernst du Satzzeichen und Zahlen und tokenisierst dann die Nachrichten.
Die SMS-Daten sind als sms verfügbar.
Diese Übung ist Teil des Kurses
Maschinelles Lernen mit PySpark
Anleitung zur Übung
- Importiere die Funktion zum Ersetzen regulärer Ausdrücke und die Funktion zum Tokenisieren.
- Ersetze alle Interpunktionszeichen in der Spalte
textdurch ein Leerzeichen. Mache dasselbe für alle Zahlen in der Spaltetext. - Teile die Spalte
textin Token auf. Benenne die Ausgabespaltewords.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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)