Stopslova a hašování
Dalšími kroky bude odstranění stopwords a následná aplikace hašovacího triku, kdy výsledky převedeme na TF-IDF.
Krátké připomenutí těchto konceptů:
- Hašovací trik nabízí rychlý a paměťově úsporný způsob, jak namapovat velmi velkou (potenciálně nekonečnou) množinu prvků (v tomto případě všechna slova ze SMS zpráv) na menší, konečný počet hodnot.
- Matice TF-IDF vyjadřuje, jak důležité je dané slovo pro každý dokument. Zohledňuje jak četnost slova v rámci jednotlivého dokumentu, tak jeho četnost napříč celou kolekcí dokumentů.
Tokenizovaná SMS data jsou uložena v sms ve sloupci words. Zpracování mezer v datech je už vyčištěno, takže tokenizovaný text je přehlednější.
Toto cvičení je součástí kurzu
Machine Learning with PySpark
Pokyny k cvičení
- Importuj třídy
StopWordsRemover,HashingTFaIDF. - Vytvoř objekt
StopWordsRemover(vstupní sloupecwords, výstupní sloupecterms) a aplikuj ho nasms. - Vytvoř objekt
HashingTF(vstup z předchozího kroku, výstupní sloupechash) a aplikuj ho nawrangled. - Vytvoř objekt
IDF(vstup z předchozího kroku, výstupní sloupecfeatures) a aplikuj ho nawrangled.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
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)