CommencezCommencez gratuitement

Mots vides et hachage

Les prochaines étapes consistent à retirer les stopwords puis à appliquer l'astuce de hachage, pour convertir les résultats en TF‑IDF.

Petit rappel sur ces concepts :

  • L'astuce de hachage offre une façon rapide et économe en mémoire d'associer un très grand ensemble d'éléments (possiblement infini) — ici, tous les mots contenus dans les messages SMS — à un nombre plus restreint et fini de valeurs.
  • La matrice TF‑IDF reflète l'importance d'un mot pour chaque document. Elle tient compte à la fois de la fréquence du mot à l'intérieur de chaque document et de sa fréquence à travers l'ensemble des documents de la collection.

Les données SMS tokenisées sont stockées dans sms dans une colonne nommée words. Vous avez nettoyé la gestion des espaces dans les données afin que le texte tokenisé soit plus propre.

Cette activité fait partie du cours

Machine Learning avec PySpark

Voir le cours

Instructions de l’exercice

  • Importez les classes StopWordsRemover, HashingTF et IDF.
  • Créez un objet StopWordsRemover (colonne d'entrée words, colonne de sortie terms). Appliquez-le à sms.
  • Créez un objet HashingTF (prend en entrée les résultats de l'étape précédente, colonne de sortie hash). Appliquez-le à wrangled.
  • Créez un objet IDF (prend en entrée les résultats de l'étape précédente, colonne de sortie features). Appliquez-le à wrangled.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

from pyspark.ml.____ import ____, ____, ____

# Remove stopwords
wrangled = ____(inputCol=____, outputCol=____)\
      .____(sms)

# Apply the hashing trick
wrangled = ____(____, ____, numFeatures=1024)\
      .____(wrangled)

# Convert hashed symbols to TF-IDF
tf_idf = ____(____, ____)\
      .____(wrangled).____(wrangled)
      
tf_idf.select('terms', 'features').show(4, truncate=False)
Modifier et exécuter le code