TF-IDF資訊檢索和文本挖掘的權重計算




TF-IDE主要就是用於計算字詞之間誰相對屬於比較重要的,而字詞的重要性隨著 在文本出現的頻率越高則越高;在不同文本檔案間出現的次數越高則反而降低。





TF (Term Frequency):衡量詞語在文檔中的出現頻率

TF(t,d)=文檔 d 中的詞語總數詞語 t 在文檔 d 中的出現次數





IDF (Inverse Document Frequency):衡量詞語的罕見程度。
如果一個詞語在許多文檔中都出現,那麼它對於區分文檔的能力就較弱,因此應該給予較低的權重。相反,如果一個詞語只在少數文檔中出現,那麼它就更具區分性,應該給予較高的權重。

不同的 IDF 公式模式
最原始公式其實是長成以下模式

IDF(t)=log(包含詞語 t 的文檔數文檔總數 N)

但在實際應用中,為了避免某些邊緣情況或改善模型的性能,經常會對此公式進行一些變化。

為何要取 log?
取對數可以作為一種縮放因子,使 IDF 值落在一個較小的範圍內。這有助於避免 IDF 值過大,導致某些詞語的權重過高。

從統計層面切入探討,對數轉換也經常被用於處理偏態分佈,使其更接近正態分佈。在 IDF 的情境中,取對數可以使權重分佈更均勻。

此外,可以捕捉到詞語在文檔中出現的非線性關係。
例如,一個詞語出現在 1,000 篇文檔中和出現在 10,000 篇文檔中的區別,從絕對數量上看是 10 倍,但從區分性的角度看,這兩者的差異可能不是那麼大。取對數可以反映這種非線性關係。




 
(加 1 是為了避免分母為零的情況)




TF-IDF
TF-IDF(t,d)=TF(t,d)×IDF(t)


假設我們有以下三篇文檔:

  • 文檔1:apple banana
  • 文檔2:apple orange
  • 文檔3:banana orange

想要計算 "apple" 這個詞在文檔1中的 TF-IDF 值

Step1.計算 TF

"apple" 在文檔1中出現了 1 次。
文檔1總共有 2 個詞語。

TF("apple",文檔1)=21=0.5



Step2.計算 IDF

總共有 3 篇文檔。
"apple" 出現在文檔1和文檔2中,所以有 2 篇文檔包含 "apple"。

IDF("apple")=log(1+23)=log(1)=0

Step3. 計算 TF-IDF

TF-IDF("apple",文檔1)=0.5×0=0

所以,"apple" 這個詞在文檔1中的 TF-IDF 值為 0。這意味著,儘管 "apple" 在文檔1中出現了,但由於它在其他文檔中也經常出現,所以它的重要性被認為是較低的。


留言

這個網誌中的熱門文章

何謂淨重(Net Weight)、皮重(Tare Weight)與毛重(Gross Weight)

Architecture(架構) 和 Framework(框架) 有何不同?_軟體設計前的事前規劃的藍圖概念

經得起原始碼資安弱點掃描的程式設計習慣培養(五)_Missing HSTS Header