什麼是 TF-IDF 計算機?
TF-IDF(詞頻–逆文件頻率,Term Frequency–Inverse Document Frequency)是資訊檢索、搜尋引擎與文字探勘中常用的一項數值統計,用來衡量某個詞對「單一文件」相對於「整批文件集合」(稱為語料庫,corpus)的重要程度。透過這個計算機,你可以輸入一份文件、一個目標關鍵詞、語料庫中的文件總數,以及其中含有該詞的文件數量,系統就會算出詞頻(TF)、逆文件頻率(IDF),以及兩者相乘後的 TF-IDF 權重分數。
使用方式
- 文件:貼上你想分析的文件內容。
- 關鍵詞:輸入你想評分的單一字詞或片語。
- 語料庫總數:整批文件集合中的文件總數(\(N\))。
- 含該詞的文件數:至少出現過該詞一次的文件有幾份。
計算機會統計該詞在你的文件中出現的次數,除以文件的總字數,再結合該詞在整個語料庫中的稀有程度,得出最終分數。
公式說明
標準的 TF-IDF 公式如下:
- TF=(該詞在文件中出現的次數)÷(文件的總字數)
- IDF=log(\(N\) ÷ 含該詞的文件數)
- TF-IDF=TF × IDF
$$\begin{gathered} \text{TF-IDF} = \text{TF} \times \text{IDF} \\[1.5em] \text{where}\quad \left\{ \begin{aligned} \text{TF} &= \dfrac{\text{count of }\text{Term}\text{ in }\text{Document}}{\text{total words in }\text{Document}} \\[0.6em] \text{IDF} &= \ln\!\left(1 + \dfrac{\text{Corpus Size}}{\text{Docs with Term} + 1}\right) \end{aligned} \right. \end{gathered}$$
TF-IDF 分數越高,代表這個詞在你的文件中頻繁出現,但在整個語料庫中卻很少見——這是個強烈訊號,說明該詞對這份文件具有獨特性與代表性。
實際範例
假設你的文件共有 100 個字,而「行銷」這個詞出現了 5 次。你的語料庫共有 1,000 份文件,其中有 100 份提到「行銷」。
- TF=\(5 \div 100 = 0.05\)
- IDF=\(\log(1000 \div 100) = \log(10) = 1\)(以 10 為底)
- TF-IDF=\(0.05 \times 1 = 0.05\)
如果「行銷」只出現在 10 份文件中,IDF 就會上升到 \(\log(100) = 2\),分數隨之翻倍至 \(0.10\)——這正是 TF-IDF 給越稀有、越具辨識度的詞更高權重的原因。
常見問題
為什麼 IDF 要取對數?取對數能抑制極度稀有詞所造成的過度影響,避免單一次出現就主導整個分數,讓結果更為平衡。
應該用哪一種對數底數?以 10 為底(\(\log\))與自然對數(\(\ln\))都很常見。底數只是把結果做等比例縮放,因此只要在同一個語料庫內比較,結果依然有效。
分數為 0 代表什麼?如果某個詞出現在每一份文件中(\(N\)=含該詞的文件數),IDF 就會變成 \(\log(1) = 0\),使得 TF-IDF 分數歸零——表示這個詞完全沒有辨識價值。