Stopwoorden en hashing
De volgende stappen zijn het verwijderen van stopwords en daarna het toepassen van de hashing-truc, waarna je de resultaten omzet naar een TF-IDF.
Even een korte opfrisser van deze concepten:
- De hashing-truc biedt een snelle en ruimte-efficiënte manier om een zeer grote (mogelijk oneindige) verzameling items (in dit geval alle woorden in de sms-berichten) af te beelden op een kleinere, eindige set waarden.
- De TF-IDF-matrix laat zien hoe belangrijk een woord is voor elk document. Hierbij wordt zowel rekening gehouden met de frequentie van het woord binnen elk document als met de frequentie van het woord over alle documenten in de verzameling.
De getokenizeerde sms-gegevens staan in sms in een kolom met de naam words. Je hebt de spaties in de data netjes opgeschoond, zodat de getokenizeerde tekst netter is.
Deze oefening maakt deel uit van de cursus
Machine Learning met PySpark
Oefeninstructies
- Importeer de classes
StopWordsRemover,HashingTFenIDF. - Maak een
StopWordsRemover-object (invoerkolomwords, uitvoerkolomterms). Pas toe opsms. - Maak een
HashingTF-object (invoer is het resultaat van de vorige stap, uitvoerkolomhash). Pas toe opwrangled. - Maak een
IDF-object (invoer is het resultaat van de vorige stap, uitvoerkolomfeatures). Pas toe opwrangled.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
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)