Punctuație, cifre și tokenuri
La sfârșitul capitolului anterior ai încărcat un set de date cu mesaje SMS etichetate fie ca „spam" (eticheta 1), fie ca „ham" (eticheta 0). Acum vei folosi aceste date pentru a construi un model de clasificare.
Înainte de asta, trebuie să pregătești mesajele SMS parcurgând următorii pași:
- eliminarea punctuației și a cifrelor
- tokenizarea (împărțirea în cuvinte individuale)
- eliminarea cuvintelor de legătură (stop words)
- aplicarea tehnicii de hashing
- conversia în reprezentare TF-IDF.
În acest exercițiu vei elimina punctuația și cifrele, apoi vei tokeniza mesajele.
Datele SMS sunt disponibile ca sms.
Acest exercițiu face parte din cursul
Machine Learning cu PySpark
Instrucțiuni pentru exercițiu
- Importă funcția pentru înlocuirea expresiilor regulate și caracteristica pentru tokenizare.
- Înlocuiește toate caracterele de punctuație din coloana
textcu un spațiu. Fă același lucru pentru toate cifrele din coloanatext. - Împarte coloana
textîn tokenuri. Denumește coloana de ieșirewords.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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)