前言 - 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()
來統計單詞頻率的方法。