前言 - Prologue
文字處理是很常見的需求,其中一項常見的任務是統計單詞頻率。透過統計單詞頻率可以了解一段文字中哪些單詞出現次數較高,進而獲得有關該段文字的更多資訊。
在 JavaScript 中,可以使用字典 (Object) 來統計單詞出現次數。在本文將會介紹如何使用 JavaScript 來統計單詞頻率。
正文 - Main text
接下來將會介紹兩種方式關於如何使用 JavaScript 來統計單詞頻率。
- 使用句子輸入統計單詞頻率
- 使用單個字詞的陣列計算頻率
使用句子輸入統計單詞頻率
範例: (輸出可以至 CodePen 內的 console 查看輸出結果)
countNum 函數第一個步驟是利用正則表達式,去除 sentence 中的標點符號。cleanedSentence 變數存儲打理過的句子。接著使用 split() 將 cleanedSentence 拆分為單詞陣列,並且將所有單詞轉化為小寫字母。
接下來,建立一個空字典 wordCount,用於儲存每個單詞及其出現的次數。使用 forEach() 迴圈遍歷單詞陣列,如果 word 在 wordCount 中已經存在,則將其對應值加 1,否則在 wordCount 中新增一個新鍵值對,將其值設置為 1。
最後,回傳 wordCount 這個儲存單詞與出現次數的字典物件。可以將 sentence 字串作為參數傳入 countNum(),並將返回的 wordCount 儲存在變數中,最後遍歷這個字典物件,並顯示每個單詞及其出現次數。
使用單個字詞的陣列計算頻率
範例: (輸出可以至 CodePen 內的 console 查看輸出結果)
函數開頭會建立一個空物件 wordCount,用來儲存每個單詞出現的次數。
接下來是 sentence 的 forEach 迴圈,遍歷每個單詞 word,並將其轉為小寫的 lowercaseWord。如果 lowercaseWord 在 wordCount 中已經存在,就將其對應的值加 1;否則就在 wordCount 中建立一個新的屬性,初始值為 1。
最後,再開遍歷逐一輸出 wordCount 中每個單詞及其出現次數。
後記 - Epilogue
因為部落格 Tag 分類有使用到~ 填一下之前的學習坑,有機會在補上使用 reduce() 來統計單詞頻率的方法。