變更頻率權重
到目前為止,你只是在 DocumentTermMatrix 或 TermDocumentMatrix 中計算文件裡各詞彙的出現次數。在本練習中,你會學到使用 TfIdf 權重來取代單純的詞頻。TfIdf 是「term frequency-inverse document frequency(詞頻-逆文件頻率)」的縮寫,適用於詞彙多樣性有限、但語料庫很大的情境。
TfIdf 會先計算詞頻(也就是 Tf),再依文件長度正規化,接著當某個字在多份文件中出現越頻繁時,就對其分數施加越大的懲罰。這其實很直覺:常見的字雖然重要,卻不一定有洞見。這個懲罰效果就是逆文件頻率(也就是 Idf)。
例如,檢視客服紀錄時,可能會用「cu」作為「customer」的縮寫。有一筆紀錄寫「the cu has a damaged package」,另一筆是「cu called with question about delivery」。用「文件頻率」加權時,「cu」出現了 2 次,因此看起來很具資訊量。然而在 TfIdf 中,由於「cu」在所有文件都出現,因此會被懲罰。結果是,「cu」不被視為新穎詞,其分數會被壓低接近 0,讓其他詞在分析中擁有較高的分數。
本練習屬於課程
R 的 Bag-of-Words 文本探勘
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Create a TDM
tdm <- ___
# Convert it to a matrix
tdm_m <- ___
# Examine part of the matrix
tdm_m[___, ___]