CommencerCommencer gratuitement

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

Afficher le cours

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