ПочатиПочніть безкоштовно

Створення ознак контекстного вікна

Техніка рухомого вікна корисна для моделей алгоритмів машинного навчання, які використовують дані ознак контекстного вікна.

У вашому середовищі доступна таблиця text зі стовпцями id, word, part, title. Вона містить розділи 9, 10, 11 і 12 книжки про Шерлока Голмса. Слова вже оброблені та впорядковані так, що в кожному рядку одне слово. Кожне слово має унікальний цілий індекс у стовпці id. Значення id менше для слів, що з'являються раніше в тексті, і більше для слів, що з'являються пізніше.

Перші 10 рядків набору даних для розділу 12 виведено в консоль як Table1. Перші десять рядків бажаного результату, обмежені показом частини 12 (Chapter 12), виведено в консоль як Table2. У Table2 «поточне» слово для рядка подано в стовпці w3. Стовпці w1 і w2 містять два слова безпосередньо перед поточним словом. Стовпці w4 і w5 містять два слова безпосередньо після поточного слова.

Зверніть увагу, що w1 і w2 дорівнюють null для першого рядка. Це тому, що немає жодних слів перед w3 (тут «xii») у межах частини 12.

Не соромтеся звертатися до слайдів праворуч від консолі, якщо ви забули, як щось робилося у відео.

Ця вправа є частиною курсу

Вступ до Spark SQL у Python

Переглянути курс

Інструкції до вправи

  • Отримайте слово для кожного рядка разом із двома попередніми та двома наступними словами.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

# 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)
Редагувати та запускати код