1、TF-IDF基本概念
? ? ? TF-IDF是Term Frequency - Inverse Document Frequency的縮寫,即“詞頻-逆文本頻率”。它由兩部分組成,TF和IDF。前面的TF也就是我們前面說到的詞頻,我們之前做的向量化也就是做了文本中各個(gè)詞的出現(xiàn)頻率統(tǒng)計(jì),并作為文本特征,這個(gè)很好理解。關(guān)鍵是后面的這個(gè)IDF,即“逆文本頻率”如何理解。我們講到幾乎所有文本都會(huì)出現(xiàn)的"to"其詞頻雖然高,但是重要性卻應(yīng)該比詞頻低的"China"和“Travel”要低。我們的IDF就是來幫助我們來反應(yīng)這個(gè)詞的重要性的,進(jìn)而修正僅僅用詞頻表示的詞特征值。概括來講, IDF反應(yīng)了一個(gè)詞在所有文本中出現(xiàn)的頻率,如果一個(gè)詞在很多的文本中出現(xiàn),那么它的IDF值應(yīng)該低,比如上文中的“to”。而反過來如果一個(gè)詞在比較少的文本中出現(xiàn),那么它的IDF值應(yīng)該高。比如一些專業(yè)的名詞如“Machine Learning”。這樣的詞IDF值應(yīng)該高。一個(gè)極端的情況,如果一個(gè)詞在所有的文本中都出現(xiàn),那么它的IDF值應(yīng)該為0。
? ? ? ?上面是從定性上說明的IDF的作用,那么如何對一個(gè)詞的IDF進(jìn)行定量分析呢?這里直接給出一個(gè)詞x的IDF的基本公式如下:
IDF(x) = log\frac{N}{N(x)}
? ? ? ?其中,N代表語料庫中文本的總數(shù),而N(x)代表語料庫中包含詞x的文本總數(shù)。為什么IDF的基本公式應(yīng)該是是上面這樣的而不是像N/N(x)這樣的形式呢?這就涉及到信息論相關(guān)的一些知識(shí)了。感興趣的朋友建議閱讀吳軍博士的《數(shù)學(xué)之美》第11章。
? ? ?上面的IDF公式已經(jīng)可以使用了,但是在一些特殊的情況會(huì)有一些小問題,比如某一個(gè)生僻詞在語料庫中沒有,這樣我們的分母為0, IDF沒有意義了。所以常用的IDF我們需要做一些平滑,使語料庫中沒有出現(xiàn)的詞也可以得到一個(gè)合適的IDF值。平滑的方法有很多種,最常見的IDF平滑后的公式之一為:
IDF(x) = log\frac{N+1}{N(x)+1} + 1
?有了IDF的定義,我們就可以計(jì)算某一個(gè)詞的TF-IDF值了:
TF-IDF(x) = TF(x) * IDF(x)
?其中TF(x)指詞x在當(dāng)前文本中的詞頻。
2、TF-IDF小結(jié)
? ? ??TF-IDF是非常常用的文本挖掘預(yù)處理基本步驟,但是如果預(yù)處理中使用了Hash Trick,則一般就無法使用TF-IDF了,因?yàn)镠ash Trick后我們已經(jīng)無法得到哈希后的各特征的IDF的值。使用了IF-IDF并標(biāo)準(zhǔn)化以后,我們就可以使用各個(gè)文本的詞特征向量作為文本的特征,進(jìn)行分類或者聚類分析。當(dāng)然TF-IDF不光可以用于文本挖掘,在信息檢索等很多領(lǐng)域都有使用。因此值得好好的理解這個(gè)方法的思想。