始める無料で始める

コンテキストウィンドウ特徴量データの作成

移動ウィンドウ手法は、コンテキストウィンドウ特徴量データを使う Machine Learning のモデルに有用です。

作業スペースには、idwordparttitle の列をもつ text テーブルがあります。シャーロック・ホームズの書籍の第9〜12章が含まれています。語はすでに前処理され、1行に1語の形式で整理されています。各語には、列 id によって一意の整数インデックスが付与されています。id 列は、本文中で早く現れる語ほど小さく、後に現れる語ほど大きくなります。

第12章のデータセットの最初の10行は、コンソール上で Table1 として表示されています。目的とする結果の最初の10行(第12章のデータに限定)は、コンソール上で Table2 として表示されています。Table2 では、その行の「対象」となる語が列 w3 に示されています。列 w1w2 には対象語の直前2語、列 w4w5 には対象語の直後2語が入ります。

最初の行で w1w2null になっている点に注目してください。これは、対象語 w3(この場合は "xii")の前に、第12章(part 12)内に含まれる語が存在しないためです。

動画の内容を思い出す必要があるときは、コンソール右側のスライドを遠慮なく参照してください。

この演習はコースの一部です

Pythonで学ぶ Spark SQL 入門

コースを見る

演習の手順

  • 各行について、その語と直前2語、および直後2語を取得します。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# 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)
コードを編集して実行