TF-IDF 是文字探勘中很重要的觀念,可以從某個領域的文本中挑出重要的字。
TF 就是前面提到的詞頻 Term Frequency,在文本分析中,我們會關心哪些詞彙在這些文本是重要的,例如我們爬了某段時期的新聞,我們可能會想知道這些新聞都在關心什麼字,很直覺的想法就是把所有文章斷詞,然後統計詞頻。
但是如果只以詞頻作為判斷依據,會發現有些不重要的字,像是我、的、一、要、…跑到很前面,這些字之所以出現頻率很高,是因為這些是所謂的「日常生活」的用字,我們不希望這些字輩我們 count 成重要的字,所以出現了 IDF 的概念。
IDF 是 Inverse Document Frequency 的縮寫,概念就是某一個字出現在越多文本中,它的 IDF 值就會越低。例如現在有 10 篇新聞,每篇都有出現「我」這個字,所以他的 IDF 值就會很低;相對的,如果只有其中兩篇出現「資料分析」這個詞,它的 IDF 值就會很高,可以參考這個公式:

|{j : t_i ∈d_j}|表示這個字出現在幾篇文本中
而 TFIDF 值就是 TF 乘上 IDF,每個詞在每篇文本都有各自的 TFIDF 值,可以看出那個詞在那篇文本中是不是一個重要的詞。
TF-IDF
TF-IDF in R / Python
- 中文文本探勘初探:TF-IDF in R Language
- github example
- [python] 使用scikit-learn工具计算文本TF-IDF值
- How to process textual data using TF-IDF in Python