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
Instructions
- Veuillez importer les classes
StopWordsRemover
,HashingTF
etIDF
. - Créez un objet d'
StopWordsRemover
(colonne d'entréewords
, colonne de sortieterms
). Veuillez postuler à l'adressesms
. - 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'adressewrangled
. - Créez un objet d'
IDF
(résultats de l'étape précédente,features
de colonne de sortie). Veuillez postuler à l'adressewrangled
.
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)