CommencerCommencer gratuitement

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

Afficher le cours

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 text par un espace. Faites de même pour tous les chiffres de la colonne text.
  • Divisez la colonne text 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)
Modifier et exécuter le code