TF-IDF 文字探勘常用加權演算法

衡量字詞在一份文本內的重要程度之演算法

Posted by Young on 2022-11-15
Estimated Reading Time 4 Minutes
Words 1.1k In Total

什麼是 TF-IDF?

tf-idf_ex1
開始之前有幾個關鍵字可以稍微記住,之後會很常提到,_加權、逆頻率加權、逆向檔案頻率、詞頻、文本向量_

TF-IDF(Term Frequency-Inverse Document Frequency)是一種文本特徵提取演算法,用於評估一個字詞在文檔集合中的重要性。

  • 「字詞頻率(Term Frequency,TF)」是指一個字詞在一篇文檔中的出現頻率。
  • 「逆文檔頻率(Inverse Document Frequency,IDF)」則是指一個字詞在文檔集合中的罕見程度。

根據這兩個指標,TF-IDF 演算法將字詞在文檔中的重要性定義為:$TF \times IDF$ 。這樣,一個字詞在一篇文檔中頻繁出現,但在整個文檔集合中罕見的字詞,其 TF-IDF 值將會較高。

TF-IDF 演算法常用於文本分類、關鍵字提取、搜尋引擎優化等領域,因為它能夠有效的捕捉文本的主題和結構信息。
簡而言之,TF-IDF 就是個能快速找出文章大意的公式

📄 文本特徵提取方法比較:從 Bag of Words 到 TF-IDF

文本特徵提取是自然語言處理 (NLP) 的關鍵步驟,目的是將非結構化的文本數據轉換為機器可理解的數值向量

一、常見方法概述與比較 🛠️

方法 基本原理 關注點 缺點/限制
Bag of Words (BoW) 統計每個單詞在文檔中的出現頻率 單詞出現頻率 忽略單詞的語義和上下文。
N-Grams 提取連續 $n$ 個單詞(n-grams)的序列,並統計其頻率。 局部上下文信息 維度爆炸(詞彙量隨 $n$ 增大而急劇增加)。
TF-IDF 結合單詞頻率 (TF) 與逆文檔頻率 (IDF)。 關鍵詞識別 容易受高頻但無意義的停用詞影響。

二、TF-IDF 的核心原理與公式 📐

TF-IDF (Term Frequency-Inverse Document Frequency) 是一種統計方法,用來評估一個詞語對於一個文件集中的其中一份文件的重要性。

1. TF-IDF 總體計算公式:

  • $t$ 是詞語 (Term),$d$ 是特定文檔 (Document),$D$ 是文檔集合 (Corpus)。

2. 詞頻 (Term Frequency, TF):
衡量一個詞 $t$ 在文檔 $d$ 中出現的頻率。我們使用您提供的標準化公式:

  • $n_{t,d}$: 詞語 $t$ 在文檔 $d$ 中出現的次數。
  • $\sum_{k}n_{k,d}$: 文檔 $d$ 中所有詞語的總數。

3. 逆文檔頻率 (Inverse Document Frequency, IDF):
衡量一個詞 $t$ 在整個語料庫 $D$ 中的稀有程度

  • $N$: 文檔集合 $D$ 中的文檔總數
  • $\text{DF}(t)$: 包含詞語 $t$ 的文檔數量(Document Frequency)。
  • +1: 避免分母為零,確保計算穩定性。

三、TF-IDF 的優勢與應用 🚀

  • 🔑 準確識別關鍵詞: 透過 IDF 權重,有效降低 “的”、”是” 等高頻詞的重要性,突出只在少數文檔中出現的特色詞彙
  • 📈 高效率與實用性: 算法簡單、計算效率高,在大規模文本數據處理中應用廣泛。
主要應用領域 應用說明
文本分類 作為輸入特徵,輔助模型判斷文本類別。
關鍵詞提取 直接選取 TF-IDF 值高的詞作為文檔的關鍵詞。
信息檢索 根據詞語的重要性計算文檔與查詢之間的相關性。

四、TF-IDF 的限制與進階方法 ⚙️

1. 限制:停用詞問題

高頻但無實際意義的詞(Stop Words)由於在每篇文檔中出現頻率都很高,可能會影響 TF-IDF 值的準確性。

  • 解決方法:
    • 預處理: 在計算前使用停用詞列表將其過濾。
    • 採用進階算法: 例如 BM25。

2. 進階改進:BM25 算法

BM25 (Best Match 25) 是一種改進型的信息檢索排名算法,在 TF-IDF 框架上進行了優化。

  • 主要優勢:

    • 考慮文檔長度: 對文檔長度進行正規化,避免長文檔天生具有更高的相關性得分。
    • 詞頻飽和 (Saturation): 對詞頻採用非線性函式處理,使詞頻的影響達到一定程度後趨於飽和,避免單個詞在文檔中過度重複導致權重過高。
  • 性能: 在搜索引擎和文本檢索領域,BM25 通常比標準的 TF-IDF 算法具有更優秀的準確性。


若您覺得這篇文章對您有幫助,歡迎分享出去讓更多人看到⊂◉‿◉つ~


留言版