BaşlayınÜcretsiz Başlayın

Bağlam penceresi özellik verisini oluşturma

Hareketli pencere tekniği, bağlam penceresi özellik verisini kullanan Machine Learning algoritmaları ve modelleri için kullanışlıdır.

Çalışma alanında id, word, part, title sütunlarına sahip text adlı bir tablo mevcut. Bu tablo, Sherlock Holmes kitabının 9, 10, 11 ve 12. bölümlerini içerir. Kelimeler önceden işlenmiş ve her satıra bir kelime gelecek şekilde düzenlenmiştir. Her kelimenin id sütunu tarafından sağlanan benzersiz bir tamsayı indeksi vardır. id sütunu, metinde daha erken görünen kelimeler için daha küçük, daha geç görünen kelimeler için daha büyüktür.

  1. bölüm için veri kümesinin ilk 10 satırı konsolda Table1 olarak yazdırılmıştır. İstenen sonucun, yalnızca part 12'yi (Bölüm 12) gösterecek şekilde kısıtlanmış ilk on satırı ise konsolda Table2 olarak yazdırılmıştır. Table2'de, satır için "verilen" kelime w3 sütununda yer alır. w1 ve w2 sütunları, verilen kelimenin hemen önceki iki kelimesini verir. w4 ve w5 sütunları ise verilen kelimenin hemen sonraki iki kelimesini verir.

İlk satırda w1 ve w2 değerlerinin null olduğuna dikkat et. Bunun nedeni, w3'ten (burada "xii") önce, part 12 içinde kalan herhangi bir kelime olmamasıdır.

Videoda bir şeyin nasıl yapıldığını unutursan, konsolun sağında bulunan slaytlara bakmaktan çekinme.

Bu egzersiz

Python ile Spark SQL'e Giriş

kursunun bir parçasıdır
Kursu Görüntüle

Egzersiz talimatları

  • Her satır için kelimeyi, önceki iki kelimeyle ve sonraki iki kelimeyle birlikte al.

Uygulamalı interaktif egzersiz

Bu örnek kodu tamamlayarak bu egzersizi bitirin.

# 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)
Kodu Düzenle ve Çalıştır