句読点、数字、そしてトークン
前のチャプターの最後で、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)