在文本分類的過程中,特征(也可以簡單的理解為“詞”)從人類能夠理解的形式轉(zhuǎn)換為計算機能夠理解的形式時,實際上經(jīng)過了兩步驟的量化——特征選擇階段的重要程度量化和將具體文本轉(zhuǎn)化為向量時的特征權(quán)重量化。初次接觸文本分類的人很容易混淆這兩個步驟使用的方法和各自的目的,因而我經(jīng)常聽到讀者有類似“如何使用TFIDF做特征選擇”或者“卡方檢驗量化權(quán)重后每篇文章都一樣”等等困惑。

文本分類本質(zhì)上也是一個模式識別的問題,因此我想借用一個更直觀的例子來說說特征選擇和權(quán)重量化到底各自是什么東西,當(dāng)然,一旦解釋清楚,你馬上就會覺得文本分類這東西實在白癡,實在沒什么技術(shù)含量,你也就不會再繼續(xù)看我的技術(shù)博客,不過我不擔(dān)心,因為你已經(jīng)踏上了更光明的道路(笑),我高興還來不及。

想想通過指紋來識別一個人的身份,只看一個人的指紋,當(dāng)然說不出他姓甚名誰,識別的過程實際上是比對的過程,要與已有的指紋庫比較,找出相同的,或者說相似到一定程度的那一個。

首要的問題是,人的指紋太復(fù)雜,包含太多的位置和幾何形狀,要完全重現(xiàn)一個人的指紋,存儲和計算都是大麻煩。因此第一步總是一個特征選擇的問題,我們把全人類的指紋都統(tǒng)計一下,看看哪幾個位置能夠最好的區(qū)分不同的人。顯然不同的位置效果很不一樣,在有的位置上,我的指紋是是什么形狀,其他人也大都是這個形狀,這個位置就不具有區(qū)分度,或者說不具有表征性,或者說,對分類問題來說,它的重要程度低。這樣的位置我們就傾向于在識別的時候根本不看它,不考慮它。

那怎么看誰重要誰不重要呢?這就依賴于具體的選擇方法如何來量化重要程度,對卡方檢驗和信息增益這類方法來說,量化以后的得分越大的特征就越重要(也就是說,有可能有些方法,是得分越小的越重要)。

比如說你看10個位置,他們的重要程度分別是:

   1 2   3   4   5 6   7 8 9  10

20,5,102030154,3,7 3

顯然第1,第3,45,6個位置比其他位置更重要,而相對的,第1個位置又比第3個位置更重要。

識別時,我們只在那些重要的位置上采樣。當(dāng)今的指紋識別系統(tǒng),大都只用到人指紋的5個位置(驚訝么?只要5個位置的信息就可以區(qū)分60億人),這5個位置就是經(jīng)過特征選擇過程而得以保留的系統(tǒng)特征集合。假設(shè)這個就是剛才的例子,那么該集合應(yīng)該是:

(第1個位置,第3個位置,第4個位置,第5個位置,第6個位置)

當(dāng)然,具體的第3個位置是指紋中的哪個位置你自己總得清楚。

確定了這5個位置之后,就可以把一個人的指紋映射到這個只有5個維度的空間中,我們就把他在5個位置上的幾何形狀分別轉(zhuǎn)換成一個具體的值,這就是特征權(quán)重的計算。依據(jù)什么來轉(zhuǎn)換,就是你選擇的特征權(quán)重量化方法,在文本分類中,最常用的就是TFIDF。

我想一定是“權(quán)重“這個詞誤導(dǎo)了所有人,讓大家以為TFIDF計算出的值代表的是特征的重要程度,其實完全不是。例如我們有一位男同學(xué),他的指紋向量是:

10,3,420,5

你注意到他第1個位置的得分(10)比第3個位置的得分(3)高,那么能說第1個位置比第3個位置重要么?如果再有一位女同學(xué),她的指紋向量是:

10,20,4,20,5

看看,第1個位置得分(10)又比第3個位置(20)低了,那這兩個位置到底哪個更重要呢?答案是第1個位置更重要,但這不是在特征權(quán)重計算這一步體現(xiàn)出來的,而是在我們特征選擇的時候就確定了,第1個位置比第3個位置更重要。

因此要記住,通過TFIDF計算一個特征的權(quán)重時,該權(quán)重體現(xiàn)出的根本不是特征的重要程度!

那它代表什么?再看看兩位同學(xué)的指紋,放到一起:

10, 3,4,20,5

1020,4,20,5

在第三個位置上女同學(xué)的權(quán)重高于男同學(xué),這不代表該女同學(xué)在指紋的這個位置上更“優(yōu)秀“(畢竟,指紋還有什么優(yōu)秀不優(yōu)秀的分別么,笑),也不代表她的這個位置比男同學(xué)的這個位置更重要,320這兩個得分,僅僅代表他們的”不同“。

在文本分類中也是如此,比如我們的系統(tǒng)特征集合只有兩個詞:

(經(jīng)濟,發(fā)展)

這兩個詞是使用卡方檢驗(特征選擇)選出來的,有一篇文章的向量形式是

2,5

另一篇

3,4

這兩個向量形式就是用TFIDF算出來的,很容易看出兩篇文章不是同一篇,為什么?因為他們的特征權(quán)重根本不一樣,所以說權(quán)重代表的是差別,而不是優(yōu)劣。想想你說“經(jīng)濟這個詞在第二篇文章中得分高,因此它在第二篇文章中比在第一篇文章中更重要“,這句話代表什么意義呢?你自己都不知道吧(笑)。

所以,當(dāng)再說起使用TFIDF來計算特征權(quán)重時,最好把“權(quán)重“這個字眼忘掉,我們就把它說成計算得分好了(甚至”得分“也不太好,因為人總會不自覺的認(rèn)為,得分高的就更重要),或者就僅僅說成是量化。

如此,你就再也不會拿TFIDF去做特征選擇了。

Tips:為什么有的論文里確實使用了TFIDF作特征選擇呢?

嚴(yán)格說來并不是不可以,而且嚴(yán)格說來只要有一種方法能夠從一堆特征中挑出少數(shù)的一些,它就可以叫做一種特征選擇方法,就連“隨機選取一部分“都算是一種,而且效果并沒有差到驚人的地步哦!還是可以分對一大半的哦!所以有的人就用TFIDF的得分來把特征排排序,取得分最大的幾個進入系統(tǒng)特征集合,效果也還行(畢竟,連隨機選取效果也都還行),怎么說呢,他們愿意這么干就這么干吧。就像咱國家非得實行戶口制度,這個制度說不出任何道理,也不見他帶來任何好處,但不也沒影響二十一世紀(jì)成為中國的世紀(jì)么,呵呵。