CommencezCommencez gratuitement

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

Voir le cours

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 text par un espace. Faites de même pour tous les nombres dans la colonne text.
  • Divisez la colonne text en jetons. Nommez la colonne de sortie words.

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)
Modifier et exécuter le code