Ponctuation, nombres et jetons
À la fin du chapitre précédent, vous avez chargé un jeu de données de messages SMS étiquetés comme « pourriel » (étiquette 1) ou « légitime » (étiquette 0). Vous allez maintenant utiliser ces données pour créer un classifieur.
Mais d'abord, vous devez préparer les messages SMS comme suit :
- retirer la ponctuation et les nombres
- tokeniser (découper en mots individuels)
- retirer les mots vides
- appliquer le « hashing trick »
- convertir en représentation TF-IDF.
Dans cet exercice, vous retirerez la ponctuation et les nombres, puis vous tokeniserez les messages.
Les données SMS sont disponibles sous le nom sms.
Cette activité fait partie du cours
Machine Learning avec PySpark
Instructions de l’exercice
- Importez la fonction pour remplacer selon une expression régulière et la fonctionnalité pour tokeniser.
- Remplacez tous les caractères de ponctuation de la colonne
textpar un espace. Faites de même pour tous les nombres dans la colonnetext. - Divisez la colonne
texten jetons. Nommez la colonne de sortiewords.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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)