LoslegenKostenlos loslegen

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

Kurs anzeigen

Anleitung zur Übung

  • Importiere die Klassen StopWordsRemover, HashingTF und IDF.
  • Erstelle ein StopWordsRemover Objekt (Eingabespalte words, Ausgabespalte terms). Bewirb dich bei sms.
  • Erstelle ein HashingTF Objekt (Eingabeergebnisse aus dem vorherigen Schritt, Ausgabespalte hash). Bewirb dich bei wrangled.
  • Erstelle ein IDF Objekt (Eingabeergebnisse aus dem vorherigen Schritt, Ausgabespalte features). Bewirb dich bei wrangled.

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)
Code bearbeiten und ausführen