Contextvenster-featuredata maken
De moving window-techniek is handig voor Machine Learning-algoritmes die contextvenster-featuredata gebruiken.
Er is een tabel text met kolommen id, word, part, title beschikbaar in je workspace. Deze bevat hoofdstukken 9, 10, 11 en 12 van het boek over Sherlock Holmes. De woorden zijn al verwerkt en georganiseerd als één woord per rij. Elk woord heeft een unieke geheelgetalindex in de kolom id. De id-kolom is lager voor woorden die eerder in de tekst voorkomen en hoger voor woorden die later voorkomen.
De eerste 10 rijen van de gegevensset voor hoofdstuk 12 zijn in de console afgedrukt als Table1. De eerste tien rijen van het gewenste resultaat, beperkt tot part 12 (Hoofdstuk 12), zijn in de console afgedrukt als Table2. In Table2 staat het “gegeven” woord voor de rij in kolom w3. De kolommen w1 en w2 geven de twee woorden direct vóór het gegeven woord. De kolommen w4 en w5 geven de twee woorden direct na het gegeven woord.
Let op dat w1 en w2 null zijn voor de eerste rij. Dat komt omdat er binnen part 12 geen woorden vóór w3 (hier, "xii") staan.
Aarzel niet om de dia's rechts van de console te raadplegen als je niet meer weet hoe iets in de video is gedaan.
Deze oefening maakt deel uit van de cursus
Introductie tot Spark SQL in Python
Oefeninstructies
- Haal voor elke rij het woord op, samen met de twee voorgaande woorden en de twee daaropvolgende woorden.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# Word for each row, previous two and subsequent two words
query = """
SELECT
part,
LAG(word, 2) OVER(PARTITION BY ____ ORDER BY ____) AS w1,
LAG(word, ____) OVER(____ BY part ____ BY id) AS w2,
word AS w3,
____(word, 1) OVER(____ BY part ____ BY id) AS w4,
LEAD(word, 2) OVER(____ BY part ____ BY id) AS w5
FROM text
"""
spark.sql(query).where("part = 12").show(10)