Stopwords 與雜湊
下一步要先移除 stopwords,再套用雜湊技巧(hashing trick),並將結果轉換為 TF-IDF。
先快速複習一下這些概念:
- 雜湊技巧提供一種快速且節省空間的方式,能把非常大的(甚至是無限的)項目集合(此處為所有 SMS 訊息中的單字)映射到較小且有限的數值範圍。
- TF-IDF 矩陣反映每個單字對各文件的重要性。它同時考量單字在各文件內的出現頻率,以及該單字在整個文件集合中出現的頻率。
分詞後的 SMS 資料存放在 sms,欄位名稱為 words。你已經清理了資料中的空白處理,因此分詞後的文字更整齊。
本練習屬於課程
使用 PySpark 的機器學習
練習說明
- 匯入
StopWordsRemover、HashingTF與IDF類別。 - 建立
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)