Stoppwörter und Hashing
Die nächsten Schritte sind das Entfernen stopwords und dann den Hashing-Trick anwenden, um die Ergebnisse in eine TF-IDF zu konvertieren.
Eine kurze Erinnerung an diese Konzepte:
- Der Hashing-Trick bietet eine schnelle und platzsparende Möglichkeit, eine sehr große (möglicherweise unendliche) Menge von Elementen (in diesem Fall alle in den SMS-Nachrichten enthaltenen Wörter) auf eine kleinere, endliche Anzahl von Werten abzubilden.
- Die TF-IDF-Matrix spiegelt wider, wie wichtig ein Wort in jedem Dokument ist. Dabei wird sowohl die Häufigkeit des Wortes in jedem Dokument als auch die Häufigkeit des Wortes in allen Dokumenten der Sammlung berücksichtigt.
Die tokenisierten SMS-Daten werden in sms in einer Spalte namens words gespeichert. Du hast die Behandlung von Leerzeichen in den Daten bereinigt, damit der tokenisierte Text übersichtlicher ist.
Diese Übung ist Teil des Kurses
Maschinelles Lernen mit PySpark
Anleitung zur Übung
- Importiere die Klassen
StopWordsRemover,HashingTFundIDF. - Erstelle ein
StopWordsRemoverObjekt (Eingabespaltewords, Ausgabespalteterms). Bewirb dich beisms. - Erstelle ein
HashingTFObjekt (Eingabeergebnisse aus dem vorherigen Schritt, Ausgabespaltehash). Bewirb dich beiwrangled. - Erstelle ein
IDFObjekt (Eingabeergebnisse aus dem vorherigen Schritt, Ausgabespaltefeatures). 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)