總起

TF-IDF,聽起來很高大上啊,其實(shí)理解起來相當(dāng)簡單,他實(shí)際上就是TF*IDF,兩個(gè)計(jì)算值的乘積,用來衡量一個(gè)詞庫中的詞對每一篇文檔的重要程度。下面我們分開來講這兩個(gè)值,TF和IDF。

TF

TF,是Term Frequency的縮寫,就是某個(gè)關(guān)鍵字出現(xiàn)的頻率,具體來講,就是詞庫中的某個(gè)詞在當(dāng)前文章中出現(xiàn)的頻率。那么我們可以寫出它的計(jì)算公式:

其中:

TF(i,j):關(guān)鍵詞j在文檔i中的出現(xiàn)頻率。

n(i,j):關(guān)鍵詞j在文檔i中出現(xiàn)的次數(shù)。

 

比如,一篇文章一共100個(gè)詞匯,其中“機(jī)器學(xué)習(xí)”一共出現(xiàn)10次,那么他的TF就是10/100=0.1。

這么看來好像僅僅是一個(gè)TF就能用來評估一個(gè)關(guān)鍵詞的重要性(出現(xiàn)頻率越高就越重要),其實(shí)不然,單純使用TF來評估關(guān)鍵詞的重要性忽略了常用詞的干擾。常用詞就是指那些文章中大量用到的,但是不能反映文章性質(zhì)的那種詞,比如:因?yàn)?、所以、因此等等的連詞,在英文文章里就體現(xiàn)為and、the、of等等的詞。這些詞往往擁有較高的TF,所以僅僅使用TF來考察一個(gè)詞的關(guān)鍵性,是不夠的。這里我們要引出IDF,來幫助我們解決這個(gè)問題。

IDF

IDF,英文全稱:Inverse Document Frequency,即“反文檔頻率”。先看什么是文檔頻率,文檔頻率DF就是一個(gè)詞在整個(gè)文庫詞典中出現(xiàn)的頻率,就拿上一個(gè)例子來講:一個(gè)文件集中有100篇文章,共有10篇文章包含“機(jī)器學(xué)習(xí)”這個(gè)詞,那么它的文檔頻率就是10/100=0.1,反文檔頻率IDF就是這個(gè)值的倒數(shù),即10。因此得出它的計(jì)算公式:

其中:

IDF(i):詞語i的反文檔頻率

|D|:語料庫中的文件總數(shù)

|j:t(i)屬于d(j)|出現(xiàn)詞語i的文檔總數(shù)

+1是為了防止分母變0。

 

于是這個(gè)TF*IDF就能用來評估一個(gè)詞語的重要性。

還是用上面這個(gè)例子,我們來看看IDF是怎么消去常用詞的干擾的。假設(shè)100篇文檔有10000個(gè)詞,研究某篇500詞文章,“機(jī)器學(xué)習(xí)”出現(xiàn)了20次,“而且”出現(xiàn)了20次,那么他們的TF都是20/500=0.04。再來看IDF,對于語料庫的100篇文章,每篇都出現(xiàn)了“而且”,因此它的IDF就是log1=0,他的TF*IDF=0。而“機(jī)器學(xué)習(xí)”出現(xiàn)了10篇,那么它的IDF就是log10=1,他的TF*IDF=0.04>0,顯然“機(jī)器學(xué)習(xí)”比“而且”更加重要。

 

總結(jié)

這算法看似簡單,實(shí)際上在SEO搜索引擎優(yōu)化啊,文本分類方面用的挺多的,面試時(shí)也常常作為信息論知識儲(chǔ)備來出題。

 

•END•