天天看點

文本分類 -- 追根究底特征提取如何計算特征的權重分類器選擇分類器的性能評估

特征提取

樣本如何量化

    在對文本進行分類之前,首先要在文本裡面找到特征,特征是什麼呢,通常會憑着業務直覺加以選擇,比如說要找垃圾郵件,根據我對垃圾郵件的認識,可能出現了一些特别的詞就是垃圾郵件,比如“代考”、“淘寶”這些很可能是垃圾郵件,正常的郵件很少出現這些詞,當然這些特征合不合理,需要通過資料的粗分析才能決定,選擇好特征之後可以加上權重,就是說使用一個數值來描述特征強烈的程度,以及跟其他特征相比應該占有什麼位置,比如說垃圾郵件包含“代考”、“淘寶”這些詞,這些都是特征,這些權重可以選什麼呢,可以選擇布爾型的權重,有沒有出現這個特征,或者使用頻率作為特征,這個也是可以看做一個權重,關于權重的選擇等一下會講的,還有其他的方法等一下講解,有了特征相當于有了次元,權重相當于是将文本看成一個樣本的話,就相當于樣本在相關的次元裡面的取值,于是我們形成了一個向量,這個向量的每一個元素就是在每一個特征上面的權值,這個向量的話就是樣本空間裡面的樣本點,可以了解為向量空間裡面的向量,這樣就将文本量化了,剩下的事情我們就在向量空間或者樣本空間裡面建構适當的分類器來做分類,這個分類器可能是支援向量機或者是線性分類器,貝葉斯或者神經網絡等等。

    可以使用夾角餘弦的方法來計算文本的相似度,如果向量重疊的話,這兩個樣本就很接近,夾角就非常接近于0,餘弦值就會接近于1,等一下可以使用内積來描述夾角餘弦的計算方法。

    如果是樣本空間中的兩個點,怎麼說兩個點很接近或者相似的呢,可以使用歐式距離或者馬氏距離來判斷相差多遠。

如何選擇文本的特征

    業務不是很懂的時候,怎麼選文本特征呢,首先将郵件進行分詞,将每一個詞當做一個特征,實在不知道垃圾郵件裡面應該出現什麼詞,分詞是基本的工作,如果不分詞的話,對漢字文本就沒辦法做下去了,包括垃圾郵件分類這麼簡單的事情。

    分詞之後有很多詞和是不是垃圾郵件這個事情的關系不是很大,垃圾郵件中會出現,不是垃圾郵件中也會出現,能不能将不能區分的詞淘汰掉呢,隻剩下一部分像“偉哥”這樣明顯的詞呢,下面講講文本特征選擇方法。

1、基于文本頻率的特征選擇方法

    首先看頻率統計,就是這個詞在特征文檔裡面出現了多少次,如果出現的太少的話,這個特征就沒有什麼用處,因為這個特征出現的太少的話,就沒有代表性,因為很稀疏,資料很稀疏,就淘汰掉,比如說垃圾郵件裡面出現了“偉哥”這個詞,但是隻出現了一次,但是這個特征出現的太低了,沒有什麼意思,是以出現頻率太低的特征我們需要将他淘汰掉,但是有一些特征出現的頻率很高,但是幾乎在每一個郵件裡面都出現了,比如說“我們”這個詞,這種特征也沒有什麼意思,因為出現的頻率太高,沒有區分度,這種特征也要淘汰。

2、資訊增益法

    資訊增益其實在機器學習裡面講決策樹的時候講過,我們沒有使用特征分類的時候,我們統計一下熵,後面就是我們利用這個進行分類之後,分成了兩小類,有序程度增加了,這個熵應該會降低,我們計算一下兩個熵的差别,這個就是獲得的資訊增益,熵減少了,就意味着有序性增強了,有序性增強的越多,就說明這個特征特别有意義。

文本分類 -- 追根究底特征提取如何計算特征的權重分類器選擇分類器的性能評估

上面的公式計算資訊增益,具體的解釋如上所述。

     如果現在手頭上有很多詞,相當于有很多個ti,這個i可能是從1到10000,一共提取出10000個詞,這就是對垃圾郵件分詞得到的,計算一下資訊增益,算完之後哪一些資訊增益比較高的,可以篩選出一批出來,高于多少的留下來,沒有高于這個數的就不要了,剩下的就是你需要的詞,文本分類的特征肯定不是幾個或者是幾十個,一般是成千上萬的。

3、卡方統計量                 

文本分類 -- 追根究底特征提取如何計算特征的權重分類器選擇分類器的性能評估
文本分類 -- 追根究底特征提取如何計算特征的權重分類器選擇分類器的性能評估
文本分類 -- 追根究底特征提取如何計算特征的權重分類器選擇分類器的性能評估

    卡方統計量統計的是什麼呢,用來計算ti和Cj之間的關聯程度有多高,關聯程度越高的話,卡的統計量就越大,是以如果有很多候選的詞,判斷一下和垃圾郵件有沒有關系,就計算他們之間的卡統計量,比較大小就知道了,留下大的,小的就去掉,這個和資訊增益差不多。

    Cj和~Cj表示屬于Cj和不屬于Cj的頻次,A B C D都表示頻次,出現的個數,ti就是一個特征項,~ti就是不出現這個特征項,例如Cj是垃圾郵件,~Cj就不是垃圾郵件,ti是“偉哥”這個詞出現了, ~ti就是不出現“偉哥”這個詞,上面的表格的意思就是“偉哥”這個詞在垃圾郵件中出現了A次,别的類推,這些頻率很容易通過分詞數出來。

文本分類 -- 追根究底特征提取如何計算特征的權重分類器選擇分類器的性能評估

     卡方名額就按照這個上面的公式計算出來了,N表示的是訓練語料裡面文檔的總數,就是有多少封郵件,包括垃圾的和非垃圾的,A D越大,結果越大,C D越大,結果越小,當結果很大的時候,說明這個特征和這個類别的關聯程度很高,我們需要将特征留下來當做依據。

文本分類 -- 追根究底特征提取如何計算特征的權重分類器選擇分類器的性能評估

13-5和13-6是關于多分類的情況下卡方應該怎麼計算,體育,女性,等一堆分類,特征應該跟那個分類的聯系最密切呢,很簡單就是将每一個卡方值計算完,然後取一個max就搞定了。

4、互資訊法

文本分類 -- 追根究底特征提取如何計算特征的權重分類器選擇分類器的性能評估

    特征和文本類别的共現程度,一起出現或者一起不出現,是以這兩個關系很密切,表達的就是這個意思,通過這個進行特征的淘汰。

    大概就是上面四種方法,要不就是你的業務嗅覺很敏銳,能觀察出那些特征是最重要的, 如果你的業務感覺不是很敏銳的話,可以收集一大堆特征,将每一個詞都保留下來,然後通過機器計算這些特征,将特征值比較小的特征去掉,保留增益值等比較大的特征,特征選取就是這麼一個樣子。

   上面就是特征的選取,下面講一下如何計算特征的權重。

如何計算特征的權重

    選取出有效的特征之後,看一下特征的權重是如何計算的。

文本分類 -- 追根究底特征提取如何計算特征的權重分類器選擇分類器的性能評估
文本分類 -- 追根究底特征提取如何計算特征的權重分類器選擇分類器的性能評估

      上标列舉了一些常用的計算權重的方法,可以選擇布爾權重,如果這一項特征出現了就記錄為1,如果特征沒有出現就記錄為0。

     絕對詞頻就是這個特征在文本裡面出現了多少次,比如說電話号碼在文本裡面出現了多少次,出現了100次記錄為100。

文本分類 -- 追根究底特征提取如何計算特征的權重分類器選擇分類器的性能評估
文本分類 -- 追根究底特征提取如何計算特征的權重分類器選擇分類器的性能評估
文本分類 -- 追根究底特征提取如何計算特征的權重分類器選擇分類器的性能評估

     倒排文檔計算特征權重,比如“偉哥”這個詞,一共有100封郵件,出現“偉哥”的有20封,這裡就是log(100/20),倒排文檔就是稀有的特征更加有用,一般來說不是特征出現的越頻繁越重要的麼,為什麼倒過來,等一下可以看看引發的另一種名額。

文本分類 -- 追根究底特征提取如何計算特征的權重分類器選擇分類器的性能評估

tf-idf方法計算權重,

文本分類 -- 追根究底特征提取如何計算特征的權重分類器選擇分類器的性能評估
文本分類 -- 追根究底特征提取如何計算特征的權重分類器選擇分類器的性能評估

,就是說某一項特征在某一個頻當裡面出現的頻率,乘以特征的倒排頻率,前一項是針對某一個文檔的,後一個特征是針對所有的文檔的,然後相乘,這個說明什麼意思呢,首先這個特征在某一個文檔裡面出現的越多就說明越重要,但是這個特征如果在所有文檔裡面都出現的話就要将這個特征倒扣回來,就是說我們重視的特征要兩者均衡,一個特征要在一個文檔裡面出現的多,但是如果在所有的文檔裡面都出現的話就沒有什麼意義了,是以這個tf-idf是兼顧了兩者個均衡。

基于word2vec的方法對特征進行向量化,這個比較複雜,另外開一片文章講,核心就是講特征詞輸入訓練好的word2vec模型中,輸出是一個向量,并且近義詞向量之間的距離是很近的,能夠展現詞與詞之間的關系。

後面的TFC和ITC是tf-idf的變形,無非就是将計算做一些更加精細的調整,簡單常用的就是前面的幾種,後面的變形是在精細的時候使用。

有了這些方法之後就能将向量裡面的每一個值都計算出來,于是文檔就完成量化了。

分類器選擇

量化好之後怎麼設計分類器呢,各種分類器都可以使用,包括支援向量機,神經網絡,貝葉斯等等,愛用什麼用什麼,至于哪一種效果好呢,還需要看怎麼調參以及适應的分類場景,隻要效果好就可以了,具體的這些模型的使用以及原理等有空的時候具體講解一下。

分類器的性能評估

文本分類 -- 追根究底特征提取如何計算特征的權重分類器選擇分類器的性能評估
文本分類 -- 追根究底特征提取如何計算特征的權重分類器選擇分類器的性能評估

繼續閱讀