Ponctuation, chiffres et jetons
À la fin du chapitre précédent, vous avez chargé un ensemble de données de messages SMS étiquetés comme "spam" (étiquette 1) ou "ham" (étiquette 0). Vous allez maintenant utiliser ces données pour construire un modèle de classification.
Mais vous devez d'abord préparer les messages SMS comme suit :
- supprimer la ponctuation et les chiffres
- la tokenisation (découpage en mots individuels)
- supprimer les mots vides
- appliquer l'astuce du hachage
- convertir en représentation TF-IDF.
Dans cet exercice, vous supprimerez la ponctuation et les chiffres, puis vous transformerez les messages en jetons.
Les données SMS sont disponibles à l'adresse sms.
Cet exercice fait partie du cours
Apprentissage automatique avec PySpark
Instructions
- Importez la fonction de remplacement des expressions régulières et la fonction de symbolisation.
- Remplacez tous les caractères de ponctuation de la colonne
textpar un espace. Faites de même pour tous les chiffres de la colonnetext. - Divisez la colonne
texten jetons. Nommez la colonne de sortiewords.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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)