TF-IDF(Log 形式)
TF-IDF(Term Frequency-Inverse Document Frequency) 是一种用于衡量文本中单词重要性的统计方法。在 Log 形式 下,TF 和 IDF 可以使用对数变换来平滑数据,减少极端值的影响。
1. TF(Term Frequency)— 词频
TF 衡量单词在文档中的出现频率,常见的对数变换形式为:
T F ( t , d ) = 1 + log 10 ( f t , d ) TF(t, d) = 1 + \log_{10}(f_{t,d}) TF(t,d)=1+log10(ft,d)
其中:
f t , d f_{t,d} ft,d
- 表示词 ( t ) 在文档 ( d ) 中出现的次数。
- 取对数是为了减少频率过大的词对模型的影响。
如果 ( f_{t,d} = 0 ),则通常令 ( TF(t, d) = 0 ) 以避免对数计算问题。
2. IDF(Inverse Document Frequency)— 逆文档频率
IDF 衡量单词在整个语料库中的重要性,公式:
I D F ( t ) = log 10 ( N D F t ) IDF(t) = \log_{10}\left(\frac{N}{DF_t}\right) IDF(t)=log10(DFtN)
或加 1 平滑:
I D F ( t ) = log 10 ( 1 + N D F t ) IDF(t) = \log_{10}\left(1 + \frac{N}{DF_t}\right) IDF(t)=log10(1+DFtN)
其中:
- ( N ) 是文档总数。
- ( DF_t ) 是包含单词 ( t ) 的文档数。
- 取对数是为了降低高频词(如 “the”、“is”)的影响。
3. TF-IDF 计算
T F - I D F ( t , d ) = T F ( t , d ) × I D F ( t ) TF\text{-}IDF(t, d) = TF(t, d) \times IDF(t) TF-IDF(t,d)=TF(t,d)×IDF(t)
带入 Log 形式:
T F - I D F ( t , d ) = ( 1 + log f t , d ) × log ( N D F t ) TF\text{-}IDF(t, d) = \left(1 + \log f_{t,d} \right) \times \log\left(\frac{N}{DF_t}\right) TF-IDF(t,d)=(1+logft,d)×log(DFtN)
或者带 1 平滑:
T F - I D F ( t , d ) = ( 1 + log f t , d ) × log ( 1 + N D F t ) TF\text{-}IDF(t, d) = \left(1 + \log f_{t,d} \right) \times \log\left(1 + \frac{N}{DF_t}\right) TF-IDF(t,d)=(1+logft,d)×log(1+DFtN)
4. 例子
假设有一个包含 1000 篇文章的语料库,某个词 “machine” 在其中 50 篇文章中出现,在某篇文章 ( d ) 里出现了 5 次。
-
计算 TF(取 log 变换)
T F ( "machine" , d ) = 1 + log ( 5 ) = 1 + 0.699 = 1.699 TF(\text{"machine"}, d) = 1 + \log(5) = 1 + 0.699 = 1.699 TF("machine",d)=1+log(5)=1+0.699=1.699 -
计算 IDF
I D F ( "machine" ) = log ( 1000 50 ) = log ( 20 ) = 1.301 IDF(\text{"machine"}) = \log\left(\frac{1000}{50}\right) = \log(20) = 1.301 IDF("machine")=log(501000)=log(20)=1.301 -
计算 TF-IDF
T F - I D F ( "machine" , d ) = 1.699 × 1.301 = 2.21 TF\text{-}IDF(\text{"machine"}, d) = 1.699 \times 1.301 = 2.21 TF-IDF("machine",d)=1.699×1.301=2.21
5. 什么时候用 Log 形式?
- 词频分布通常高度偏斜,log 变换可以减少常见词的影响,使其更加平滑。
- 适用于长文本,避免某些高频词主导评分。
- 防止过拟合,尤其是在使用 TF-IDF 进行文本分类时。
总结
使用 Log 形式的 TF-IDF,可以通过对数缩放降低极端值的影响,使得文档中的常见单词不过度主导评分,从而提高文本表示的质量。