MulaiMulai sekarang secara gratis

Membuat data fitur jendela konteks

Teknik moving window bermanfaat untuk model algoritme machine learning yang menggunakan data fitur jendela konteks.

Sebuah tabel text dengan kolom id, word, part, title tersedia di ruang kerja Anda. Tabel ini memuat bab 9, 10, 11, dan 12 dari buku Sherlock Holmes. Kata-kata sudah diproses dan diatur menjadi satu kata per baris. Setiap kata memiliki indeks bilangan bulat unik yang disediakan oleh kolom id. Kolom id bernilai lebih kecil untuk kata yang muncul lebih awal dalam teks dan lebih besar untuk kata yang muncul lebih akhir dalam teks.

Sepuluh baris pertama dari himpunan data untuk bab 12 dicetak ke konsol sebagai Table1. Sepuluh baris pertama dari hasil yang diinginkan, dibatasi untuk menampilkan part 12 (Bab 12), dicetak ke konsol sebagai Table2. Dalam Table2, kata "diberikan" untuk baris tersebut disediakan di kolom w3. Kolom w1 dan w2 memberikan dua kata yang tepat sebelum kata yang diberikan. Kolom w4 dan w5 memberikan dua kata yang tepat setelah kata yang diberikan.

Perhatikan bahwa w1 dan w2 bernilai null pada baris pertama. Ini karena tidak ada kata sebelum w3 (di sini, "xii") yang berada dalam part 12.

Jangan ragu merujuk ke slide yang tersedia di sisi kanan konsol jika Anda lupa bagaimana sesuatu dilakukan di video.

Latihan ini adalah bagian dari kursus

Pengantar Spark SQL dalam Python

Lihat Kursus

Petunjuk latihan

  • Dapatkan kata untuk setiap baris, beserta dua kata sebelumnya dan dua kata sesudahnya.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

# 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)
Edit dan Jalankan Kode