(四)訓練Part 1 zz

訓練,顧名思義,就是training(汗,這解釋),簡單的說就是讓計算機從給定的一堆文檔中自己學習分類的規則(如果學不對的話,還要,打屁屁?)。

  開始訓練之前,再多說幾句關於VSM這種文檔表示模型的話。

  舉個例子,假設說把我正在寫的“文本分類入門”系列文章的第二篇抽出來當作一個需要分類的文本,則可以用如下的向量來表示這個文本,以便於計算機理解和處理。

  w2=(文本,5,統計學習,4,模型,0,……)

  這個向量表示在w2所代表的文本中,“文本”這個詞出現了5次(這個信息就叫做詞頻),“統計學習”這個詞出現了4次,而“模型”這個詞出現了0次,依此類推,後面的詞沒有列出。

  而系列的第三篇文章可以表示爲

  w3=(文本,9,統計學習,4,模型,10,……)

  其含義同上。如果還有更多的文檔需要表示,我們都可以使用這種方式。

  只通過觀察w2和w3我們就可以看出實際上有更方便的表示文本向量的方法,那就是把所有文檔都要用到的詞從向量中抽離出來,形成共用的數據結構(也可以仍是向量的形式),這個數據結構就叫做詞典,或者特徵項集合。

  例如我們的問題就可以抽離出一個詞典向量

  D=(文本,統計學習,模型,……)

  所有的文檔向量均可在參考這個詞典向量的基礎上簡化成諸如

  w2=(5,4,0,……)

  w3=(9,4,10,……)

  的形式,其含義沒有改變。

  5,4,10這些數字分別叫做各個詞在某個文檔中的權重,實際上單單使用詞頻作爲權重並不多見,也不十分有用,更常見的做法是使用地球人都知道的TF/IDF值作爲權重。(關於TF/IDF的詳細解釋,Google的吳軍研究員寫了非常通俗易懂的文章,發佈於Google黑板報,鏈接地址是http://googlechinablog.com/2006/06/blog-post_27.html,有興趣不妨一讀)TF/IDF作爲一個詞對所屬文檔主題的貢獻程度來說,是非常重要的度量標準,也是將文檔轉化爲向量表示過程中的重要一環。

  在這個轉化過程中隱含了一個很嚴重的問題。注意看看詞典向量D,你覺得它會有多大?或者說,你覺得它會包含多少個詞?

  假設我們的系統僅僅處理漢語文本,如果不做任何處理,這個詞典向量會包含漢語中所有的詞彙,我手頭有一本商務印書館出版的《現代漢語詞典》第5版(2005年5月出版),其中收錄了65,000個詞,D大致也應該有這麼大,也就是說,D是一個65,000維的向量,而所有的文本向量w2,w3,wn也全都是65,000維的!(這是文本分類這一問題本身的一個特性,稱爲“高維性”)想一想,大部分文章僅僅千餘字,包含的詞至多幾百,爲了表示這樣一個文本,卻要使用65,000維的向量,這是對存儲資源和計算能力多大的浪費呀!(這又是文本分類問題的另一個特性,稱爲“向量稀疏性”,後面會專門有一章討論這些特性,並指出解決的方法,至少是努力的方向)

  中國是一個人口衆多而資源稀少的國家,我們不提倡一味發展粗放型的經濟,我們所需要的可持續發展是指資源消耗少,生產效率高,環境污染少……跑題了……

  這麼多的詞彙當中,諸如“體育”,“經濟”,“金融”,“處理器”等等,都是極其能夠代表文章主題的,但另外很多詞,像“我們”,“在”,“事情”,“裏面”等等,在任何主題的文章中都很常見,根本無法指望通過這些詞來對文本類別的歸屬作個判斷。這一事實首先引發了對文本進行被稱爲“去停止詞”的預處理步驟(對英文來說還有詞根還原,但這些與訓練階段無關,不贅述,會在以後講述中英文文本分類方法區別的章節中討論),與此同時,我們也從詞典向量D中把這些詞去掉。

  但經過停止詞處理後剩下的詞彙仍然太多,使用了太多的特徵來表示文本,就是常說的特徵集過大,不僅耗費計算資源,也因爲會引起“過擬合問題”而影響分類效果[22]。

  這個問題是訓練階段要解決的第一個問題,即如何選取那些最具代表性的詞彙(更嚴格的說法應該是,那些最具代表性的特徵,爲了便於理解,可以把特徵暫時當成詞彙來想象)。對這個問題的解決,有人叫它特徵提取,也有人叫它降維。

  特徵提取實際上有兩大類方法。一類稱爲特徵選擇(Term Selection),指的是從原有的特徵(那許多有用無用混在一起的詞彙)中提取出少量的,具有代表性的特徵,但特徵的類型沒有變化(原來是一堆詞,特徵提取後仍是一堆詞,數量大大減少了而已)。另一類稱爲特徵抽取(Term Extraction)的方法則有所不同,它從原有的特徵中重構出新的特徵(原來是一堆詞,重構後變成了別的,例如LSI將其轉爲矩陣,文檔生成模型將其轉化爲某個概率分佈的一些參數),新的特徵具有更強的代表性,並耗費更少的計算資源。(特徵提取的各種算法會有專門章節討論)

  訓練階段,計算機根據訓練集中的文檔,使用特徵提取找出最具代表性的詞典向量(仍然是不太嚴格的說法),然後參照這個詞典向量把這些訓練集文檔轉化爲向量表示,之後的所有運算便都使用這些向量進行,不再理會原始的文本形式的文檔了(換言之,失寵了,後後)。

  下一章繼續訓練,咱們之間還沒完。(怎麼聽着像要找人尋仇似的)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章