Skiljetecken, siffror och tokens
I slutet av föregående kapitel laddade du en datamängd med SMS-meddelanden som märkts som antingen "spam" (etikett 1) eller "ham" (etikett 0). Nu ska du använda dessa data för att bygga en klassificeringsmodell.
Först behöver du förbereda SMS-meddelandena på följande sätt:
- ta bort skiljetecken och siffror
- tokenisera (dela upp i enskilda ord)
- ta bort stoppord
- tillämpa hashing-tricket
- konvertera till TF-IDF-representation.
I den här övningen tar du bort skiljetecken och siffror, och tokeniserar sedan meddelandena.
SMS-data finns tillgängliga som sms.
Den här övningen är en del av kursen
Maskininlärning med PySpark
Övningsinstruktioner
- Importera funktionen för att ersätta reguljära uttryck och särdragsfunktionen för tokenisering.
- Ersätt alla skiljetecken i kolumnen
textmed ett blanksteg. Gör samma sak för alla siffror i kolumnentext. - Dela upp kolumnen
texti tokens. Ge utdatakolumnen namnetwords.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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)