開始使用免費開始

標點符號、數字與權標

在上一章的最後,你載入了一個 SMS 訊息的資料集,這些訊息已被標註為「spam」(標籤 1)或「ham」(標籤 0)。現在你要用這些資料來建立一個分類器模型。

不過在此之前,你需要先把 SMS 訊息做以下前處理:

  • 移除標點符號與數字
  • 權標化(切分成單字)
  • 移除停用字
  • 套用 hashing trick
  • 轉換為 TF-IDF 表示法。

在本練習中,你會先移除標點符號與數字,然後對訊息進行權標化。

SMS 資料可由 sms 取得。

本練習屬於課程

使用 PySpark 的機器學習

檢視課程

練習說明

  • 匯入用於以正規表示式進行取代的函式,以及用於權標化的特徵轉換器。
  • text 欄位中的所有標點符號取代為空白。對 text 欄位中的所有數字也做相同處理。
  • text 欄位切分為權標(tokens)。將輸出欄位命名為 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)
編輯並執行程式碼