CommencerCommencer gratuitement

Mots vides et hachage

Les étapes suivantes consisteront à supprimer stopwords puis d'appliquer l'astuce du hachage, en convertissant les résultats en TF-IDF.

Un petit rappel sur ces concepts :

  • L'astuce du hachage offre un moyen rapide et peu encombrant de faire correspondre un très grand ensemble (éventuellement infini) d'éléments (dans le cas présent, tous les mots contenus dans les messages SMS) à un nombre plus petit et fini de valeurs.
  • La matrice TF-IDF reflète l'importance d'un mot dans chaque document. Il tient compte à la fois de la fréquence du mot dans chaque document et de la fréquence du mot dans l'ensemble des documents de la collection.

Les données des SMS à jetons 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 net.

Cet exercice fait partie du cours

Apprentissage automatique avec PySpark

Afficher le cours

Instructions

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

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

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