開始使用免費開始

Stopwords 與雜湊

下一步要先移除 stopwords,再套用雜湊技巧(hashing trick),並將結果轉換為 TF-IDF。

先快速複習一下這些概念:

  • 雜湊技巧提供一種快速且節省空間的方式,能把非常大的(甚至是無限的)項目集合(此處為所有 SMS 訊息中的單字)映射到較小且有限的數值範圍。
  • TF-IDF 矩陣反映每個單字對各文件的重要性。它同時考量單字在各文件內的出現頻率,以及該單字在整個文件集合中出現的頻率。

分詞後的 SMS 資料存放在 sms,欄位名稱為 words。你已經清理了資料中的空白處理,因此分詞後的文字更整齊。

本練習屬於課程

使用 PySpark 的機器學習

檢視課程

練習說明

  • 匯入 StopWordsRemoverHashingTFIDF 類別。
  • 建立 StopWordsRemover 物件(輸入欄位為 words,輸出欄位為 terms)。套用至 sms
  • 建立 HashingTF 物件(輸入為前一步的結果,輸出欄位為 hash)。套用至 wrangled
  • 建立 IDF 物件(輸入為前一步的結果,輸出欄位為 features)。套用至 wrangled

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

from pyspark.ml.____ import ____, ____, ____

# Remove stopwords
wrangled = ____(inputCol=____, outputCol=____)\
      .____(sms)

# Apply the hashing trick
wrangled = ____(____, ____, numFeatures=1024)\
      .____(wrangled)

# Convert hashed symbols to TF-IDF
tf_idf = ____(____, ____)\
      .____(wrangled).____(wrangled)
      
tf_idf.select('terms', 'features').show(4, truncate=False)
編輯並執行程式碼