Zacznij terazZacznij za darmo

Stopwords i haszowanie

Kolejne kroki to usunięcie stopwords i zastosowanie techniki haszowania, a następnie przekształcenie wyników w macierz TF-IDF.

Krótkie przypomnienie tych pojęć:

  • Technika haszowania zapewnia szybki i oszczędny pamięciowo sposób odwzorowania bardzo dużego (potencjalnie nieskończonego) zbioru elementów (w tym przypadku wszystkich słów z wiadomości SMS) na mniejszy, skończony zestaw wartości.
  • Macierz TF-IDF odzwierciedla, jak ważne jest dane słowo dla każdego dokumentu. Uwzględnia zarówno częstość występowania słowa w obrębie danego dokumentu, jak i jego częstość we wszystkich dokumentach w kolekcji.

Stokenizowane dane SMS są zapisane w sms w kolumnie o nazwie words. Dane zostały już oczyszczone pod kątem obsługi spacji, dzięki czemu stokenizowany tekst jest bardziej uporządkowany.

To ćwiczenie jest częścią kursu

Uczenie maszynowe z PySpark

Zobacz kurs

Instrukcje do ćwiczenia

  • Zaimportuj klasy StopWordsRemover, HashingTF i IDF.
  • Utwórz obiekt StopWordsRemover (kolumna wejściowa words, kolumna wyjściowa terms). Zastosuj go do sms.
  • Utwórz obiekt HashingTF (kolumna wejściowa – wyniki poprzedniego kroku, kolumna wyjściowa hash). Zastosuj go do wrangled.
  • Utwórz obiekt IDF (kolumna wejściowa – wyniki poprzedniego kroku, kolumna wyjściowa features). Zastosuj go do wrangled.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

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)
Edytuj i uruchom kod