始める無料で始める

句読点、数字、そしてトークン

前のチャプターの最後で、SMS メッセージのデータセットを読み込みました。各メッセージには「spam」(ラベル 1)または「ham」(ラベル 0)が付いています。ここからは、このデータを使って分類器モデルを作成します。

その前に、SMS メッセージを次の手順で前処理します。

  • 句読点と数字を削除する
  • トークン化する(単語に分割する)
  • ストップワードを削除する
  • ハッシングトリックを適用する
  • TF-IDF 表現に変換する

この演習では、句読点と数字を削除し、その後にメッセージをトークン化します。

SMS データは sms として利用できます。

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

Machine Learning with PySpark

コースを見る

演習の手順

  • 正規表現で置換する関数と、トークン化するための機能をインポートします。
  • text 列に含まれるすべての句読点をスペースに置き換えます。数字についても同様に、text 列のすべての数字をスペースに置き換えます。
  • text 列をトークンに分割し、出力列名を words とします。

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

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

# Import the necessary functions
from pyspark.sql.functions import ____
from pyspark.ml.feature import ____

# Remove punctuation (REGEX provided) and numbers
wrangled = sms.withColumn('text', ____(sms.text, '[_():;,.!?\\-]', ____))
wrangled = wrangled.withColumn(____, ____(____, ____, ____))

# Merge multiple spaces
wrangled = wrangled.withColumn('text', regexp_replace(wrangled.text, ' +', ' '))

# Split the text into words
wrangled = ____(inputCol='text', outputCol=____).____(wrangled)

wrangled.show(4, truncate=False)
コードを編集して実行