Interpunkcja, liczby i tokeny
Pod koniec poprzedniego rozdziału wczytałeś zbiór danych z wiadomościami SMS, opatrzonymi etykietami „spam" (etykieta 1) lub „ham" (etykieta 0). Teraz wykorzystasz te dane do zbudowania modelu klasyfikacyjnego.
Najpierw jednak musisz odpowiednio przygotować wiadomości SMS:
- usuń interpunkcję i liczby
- dokonaj tokenizacji (podziel na pojedyncze słowa)
- usuń stop words
- zastosuj hashing trick
- przekształć dane do reprezentacji TF-IDF.
W tym ćwiczeniu usuniesz interpunkcję i liczby, a następnie przeprowadzisz tokenizację wiadomości.
Dane SMS są dostępne jako sms.
To ćwiczenie jest częścią kursu
Uczenie maszynowe z PySpark
Instrukcje do ćwiczenia
- Zaimportuj funkcję do zastępowania wyrażeń regularnych oraz narzędzie do tokenizacji.
- Zastąp wszystkie znaki interpunkcyjne w kolumnie
textspacją. Zrób to samo z wszystkimi liczbami w kolumnietext. - Podziel kolumnę
textna tokeny. Nazwij kolumnę wyjściowąwords.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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)