CommencerCommencer gratuitement

Mots vides et hachage

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

Petit rappel concernant ces concepts :

  • La technique du hachage offre un moyen rapide et peu encombrant de mapper un ensemble très volumineux (voire infini) d'éléments (dans ce cas, tous les mots contenus dans les SMS) sur un nombre plus restreint et fini de valeurs.
  • La matrice TF-IDF reflète l'importance d'un mot dans chaque document. Il prend en compte à la fois la fréquence du mot dans chaque document, mais également la fréquence du mot dans 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 amélioré le traitement des espaces dans les données afin que le texte tokenisé soit plus clair.

Cet exercice fait partie du cours

Apprentissage automatique avec PySpark

Afficher le cours

Instructions

  • Veuillez importer les classes StopWordsRemover, HashingTF et IDF.
  • Créez un objet d'StopWordsRemover (colonne d'entrée words, colonne de sortie terms). Veuillez postuler à l'adresse sms.
  • Créez un objet d'HashingTF (résultats de l'étape précédente en entrée, hash de colonne en sortie). Veuillez postuler à l'adresse wrangled.
  • Créez un objet d'IDF (résultats de l'étape précédente, features de colonne de sortie). Veuillez postuler à l'adresse 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