TF-IDF資訊檢索和文本挖掘的權重計算
https://www.oreilly.com/library/view/machine-learning-for/9781788629355/de866b38-ab97-4086-8755-238a795f2a27.xhtml TF-IDE主要就是用於計算字詞之間誰相對屬於比較重要的,而字詞的重要性隨著 在文本出現的頻率越高則越高;在不同文本檔案間出現的次數越高則反而降低。 TF (Term Frequency) :衡量詞語在文檔中的出現頻率 TF ( t , d ) = 文檔 d 中的詞語總數 詞語 t 在文檔 d 中的出現次數 IDF (Inverse Document Frequency) :衡量詞語的罕見程度。 如果一個詞語在許多文檔中都出現,那麼它對於區分文檔的能力就較弱,因此應該給予較低的權重。相反,如果一個詞語只在少數文檔中出現,那麼它就更具區分性,應該給予較高的權重。 不同的 IDF 公式模式 最原始公式其實是長成以下模式 IDF ( t ) = lo g ( 包含詞語 t 的文檔數 文檔總數 N ) 但在實際應用中,為了避免某些邊緣情況或改善模型的性能,經常會對此公式進行一些變化。 為何要取 log? 取對數可以作為一種縮放因子,使 IDF 值落在一個較小的範圍內。這有助於避免 IDF 值過大,導致某些詞語的權重過高。 從統計層面切入探討,對數轉換也經常被用於處理偏態分佈,使其更接近正態分佈。在 IDF 的情境中,取對數可以使權重分佈更均勻。 此外,可以捕捉到詞語在文檔中出現的非線性關係。 例如,一個詞語出現在 1,000 篇文檔中和出現在 10,000 篇文檔中的區別,從絕對數量上看是 10 倍,但從區分性的角度看,這兩者的差異可能不是那麼大。取對數可以反映這種非線性關係。 IDF ( t ) = lo g ( 1 + 包含詞語 t 的文檔數 文檔總數 N ) (加 1 是為了避免分母為零的情況) TF-IDF TF-IDF ( t , d ) = TF ( t , d ) × IDF ( t ) 假設我們有以下三篇文檔: 文檔1:apple banana 文檔2:apple o...