컨텍스트 윈도우 특성 데이터 만들기
이동 윈도우 기법은 컨텍스트 윈도우 특성 데이터를 사용하는 Machine Learning 알고리즘 모델에 유용해요.
워크스페이스에는 id, word, part, title 열을 가진 text 테이블이 있어요. 이 테이블에는 셜록 홈즈 책의 9, 10, 11, 12장이 들어 있어요. 단어는 이미 전처리되어 한 행에 한 단어씩 정리되어 있어요. 각 단어에는 id 열에 고유한 정수 인덱스가 제공돼요. id 값은 본문에서 더 일찍 나타나는 단어일수록 작고, 더 나중에 나타나는 단어일수록 커요.
12장에 대한 데이터셋의 처음 10개 행이 콘솔에 Table1로 출력되어 있어요. 원하는 결과의 처음 10개 행(12장(part 12)으로 제한)이 콘솔에 Table2로 출력되어 있어요. Table2에서 각 행의 "기준" 단어는 w3 열에 있어요. w1과 w2 열에는 기준 단어 바로 이전의 두 단어가, w4와 w5 열에는 기준 단어 바로 이후의 두 단어가 담겨 있어요.
첫 번째 행에서 w1과 w2가 null인 점에 주목하세요. 이는 w3(여기서는 "xii") 이전에 있는, part 12 범위의 단어가 없기 때문이에요.
동영상에서 다룬 내용을 잊으셨다면, 콘솔 오른쪽에 있는 슬라이드를 참고하셔도 좋아요.
이 연습은 강의의 일부입니다
Python에서 Spark SQL 입문
연습 안내
- 각 행의 단어와 함께, 바로 이전 두 단어와 바로 이후 두 단어를 가져오세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# 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)