ÎncepețiÎncepe gratuit

Crearea datelor de caracteristici pentru fereastra de context

Tehnica ferestrei mobile este utilă pentru modelele de algoritmi de învățare automată care folosesc date de caracteristici bazate pe o fereastră de context.

În spațiul tău de lucru este disponibilă o tabelă text cu coloanele id, word, part, title. Aceasta conține capitolele 9, 10, 11 și 12 din cartea Sherlock Holmes. Cuvintele sunt deja procesate și organizate câte unul pe rând. Fiecare cuvânt are un index întreg unic, furnizat de coloana id. Valorile din coloana id sunt mai mici pentru cuvintele care apar mai devreme în text și mai mari pentru cele care apar mai târziu.

Primele 10 rânduri din setul de date pentru capitolul 12 sunt afișate în consolă sub numele Table1. Primele zece rânduri ale rezultatului dorit, filtrate pentru a afișa partea 12 (Capitolul 12), sunt afișate în consolă sub numele Table2. În Table2, cuvântul „de referință" al rândului este furnizat în coloana w3. Coloanele w1 și w2 conțin cele două cuvinte imediat anterioare cuvântului de referință. Coloanele w4 și w5 conțin cele două cuvinte imediat următoare.

Observă că w1 și w2 sunt null pentru primul rând. Aceasta se întâmplă deoarece nu există niciun cuvânt anterior față de w3 (în acest caz, „xii") în cadrul părții 12.

Nu ezita să consulți slide-urile disponibile în dreapta consolei dacă ai nevoie să îți amintești cum s-a procedat în video.

Acest exercițiu face parte din cursul

Introducere în Spark SQL în Python

Vezi cursul

Instrucțiuni pentru exercițiu

  • Obține cuvântul pentru fiecare rând, împreună cu cele două cuvinte anterioare și cele două cuvinte următoare.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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)
Editează și rulează codul