Stoppwörter und Hashing
Als Nächstes werden wir stopwords und dann den Hash-Trick anzuwenden, um die Ergebnisse in TF-IDF umzuwandeln.
Hier noch mal kurz die wichtigsten Punkte:
- Der Hash-Trick ist eine schnelle und platzsparende Methode, um eine riesige (vielleicht sogar unendliche) Menge von Elementen (in diesem Fall alle Wörter in den SMS-Nachrichten) auf eine kleinere, endliche Anzahl von Werten abzubilden.
- Die TF-IDF-Matrix zeigt, wie wichtig ein Wort für jedes Dokument ist. Dabei wird nicht nur berücksichtigt, wie oft ein Wort in einem Dokument vorkommt, sondern auch, wie oft es in allen Dokumenten der Sammlung auftaucht.
Die tokenisierten SMS-Daten werden in „ sms
” in einer Spalte namens „ words
” gespeichert. Du hast die Leerzeichen in den Daten bereinigt, sodass der tokenisierte Text jetzt übersichtlicher ist.
Diese Übung ist Teil des Kurses
Maschinelles Lernen mit PySpark
Anleitung zur Übung
- Importiere die Klassen „
StopWordsRemover
“, „HashingTF
“ und „IDF
“. - Erstell ein „
StopWordsRemover
“-Objekt (Eingabespalte „words
“, Ausgabespalte „terms
“). Bewirb dich beisms
. - Erstell ein „
HashingTF
“-Objekt (Eingabeergebnisse aus dem vorherigen Schritt, Ausgabespaltenhash
). Bewirb dich beiwrangled
. - Erstell ein „
IDF
“-Objekt (gib die Ergebnisse vom letzten Schritt rein, gib die Spaltenfeatures
, aus). Bewirb dich beiwrangled
.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
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)