Ponctuation, chiffres et jetons
À la fin du chapitre précédent, vous avez chargé un ensemble de données de messages SMS qui avaient été classés comme « spam » (étiquette 1
) ou « ham » (étiquette 0
). Vous allez maintenant utiliser ces données pour construire un modèle de classification.
Cependant, vous devrez d'abord préparer les messages SMS comme suit :
- Supprimer la ponctuation et les chiffres
- tokeniser (diviser en mots individuels)
- supprimer les mots vides
- appliquer l'astuce du hachage
- convertir en représentation TF-IDF.
Dans cet exercice, vous allez supprimer la ponctuation et les chiffres, puis tokeniser les messages.
Les données SMS sont disponibles à l'adresse sms
.
Cet exercice fait partie du cours
Apprentissage automatique avec PySpark
Instructions
- Importez la fonction permettant de remplacer les expressions régulières et la fonctionnalité permettant de tokeniser.
- Remplacez tous les caractères de ponctuation de la colonne «
text
» par un espace. Veuillez répéter cette opération pour tous les numéros de la colonne «text
». - Divisez la colonne d'
text
s en jetons. Nommez la colonne de sortie «words
».
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)