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
Instrukcje do ćwiczenia
- Zaimportuj klasy
StopWordsRemover,HashingTFiIDF. - Utwórz obiekt
StopWordsRemover(kolumna wejściowawords, kolumna wyjściowaterms). Zastosuj go dosms. - Utwórz obiekt
HashingTF(kolumna wejściowa – wyniki poprzedniego kroku, kolumna wyjściowahash). Zastosuj go dowrangled. - Utwórz obiekt
IDF(kolumna wejściowa – wyniki poprzedniego kroku, kolumna wyjściowafeatures). Zastosuj go dowrangled.
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)