Bắt đầu ngayBắt đầu miễn phí

Tạo dữ liệu đặc trưng cửa sổ ngữ cảnh

Kỹ thuật cửa sổ trượt rất hữu ích cho các mô hình Machine Learning sử dụng dữ liệu đặc trưng từ cửa sổ ngữ cảnh.

Một bảng text với các cột id, word, part, title có sẵn trong không gian làm việc của bạn. Bảng này chứa các chương 9, 10, 11 và 12 của cuốn Sherlock Holmes. Các từ đã được xử lý và tổ chức thành mỗi hàng một từ. Mỗi từ có một chỉ mục số nguyên duy nhất trong cột id. Cột id nhỏ hơn cho các từ xuất hiện sớm hơn trong văn bản và lớn hơn cho các từ xuất hiện muộn hơn.

Mười hàng đầu tiên của tập dữ liệu cho chương 12 được in ra bảng điều khiển dưới dạng Table1. Mười hàng đầu tiên của kết quả mong muốn, giới hạn để hiển thị phần 12 (Chương 12), được in ra bảng điều khiển dưới dạng Table2. Trong Table2, từ "đang xét" cho mỗi hàng được cung cấp ở cột w3. Các cột w1w2 là hai từ ngay trước từ đang xét. Các cột w4w5 là hai từ ngay sau từ đang xét.

Lưu ý w1w2null ở hàng đầu tiên. Điều này là vì không có từ nào trước w3 (ở đây là "xii") nằm trong phần 12.

Nếu quên cách thực hiện trong video, bạn có thể xem lại các slide ở bên phải bảng điều khiển.

Bài tập này là một phần của khóa học

Nhập môn Spark SQL bằng Python

Xem khóa học

Hướng dẫn bài tập

  • Lấy từ cho mỗi hàng, kèm theo hai từ liền trước và hai từ liền sau.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

# 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)
Chỉnh sửa và Chạy Mã