Interpunkce, čísla a tokeny
Na konci předchozí kapitoly jsi načetl/a dataset SMS zpráv označených buď jako "spam" (label 1), nebo "ham" (label 0). Teď z těchto dat sestavíš klasifikační model.
Nejdřív ale budeš muset SMS zprávy připravit:
- odstraň interpunkci a čísla
- tokenizuj zprávy (rozděl je na jednotlivá slova)
- odstraň stop slova
- aplikuj hashing trick
- převeď na TF-IDF reprezentaci.
V tomto cvičení odstraníš interpunkci a čísla a následně zprávy tokenizuješ.
SMS data jsou dostupná jako sms.
Toto cvičení je součástí kurzu
Machine Learning with PySpark
Pokyny k cvičení
- Importuj funkci pro nahrazení regulárních výrazů a feature pro tokenizaci.
- Nahraď všechny znaky interpunkce ve sloupci
textmezerou. Totéž proveď pro všechna čísla ve sloupcitext. - Rozděl sloupec
textna tokeny. Výstupní sloupec pojmenujwords.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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)