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
text
durch ein Leerzeichen. Mache dasselbe für alle Zahlen in der Spaltetext
. - Teile die Spalte
text
in Token auf. Benenne die Ausgabespaltewords
.
Interaktive Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# 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)