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
Instructions
- Importez les classes
StopWordsRemover,HashingTFetIDF. - Créez un objet
StopWordsRemover(colonne d'entréewords, colonne de sortieterms). Postulez àsms. - Créez un objet
HashingTF(entrée des résultats de l'étape précédente, sortie de la colonnehash). Postulez àwrangled. - Créez un objet
IDF(résultats de l'étape précédente, colonne de sortiefeatures). 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)