1. 程式人生 > >使用字串核函式進行文字分類

使用字串核函式進行文字分類

摘要:
特徵空間為所有長度為k的子串集合,核函式定義為其上的內積操作,注意這裡的k不要求連續(權值隨長度遞減,因此會重點關注那些鄰接的項),由於組合爆炸,直接計算是無法接受的,該篇文章所述方法和詞特徵向量核方法(stardard word feature space kernel)相比較有顯著效果提升;

1 introduction
一般的學習系統(比如神經網路和決策樹)都直接作用於特徵向量空間之上,但有時候某些物件無法轉化到顯示的特徵向量空間中,比如生物資訊序列、影象、文字;這時特徵提取器的複雜度和建模好壞對於問題的解將起到決定性作用,但通過核方法來解決問題是另外一條值得研究的方向;
基於核的學習方法定義隱式地把輸入資料對映到一個高維特徵空間中,即僅使用原空間內積資訊就可以得到高維空間資料點內積;這樣學習的過程可只在原空間發生;最有代表性的例子就是SVM;


核方法甚至不需要知道具體要用哪些特徵,本文將研究基於字串alignment核的文字分類問題;

文字分類的標準方法是利用所謂的bagofwords表達方式,把文件對映為無位置關係僅保留頻次資訊的詞集合,當然同時會剔除stopword、會把變形詞歸為主幹形式,這個簡單的技術在有監督SVM中獲得了很大的成功(Textcategorizationwithsupportvectormachines:Learning withmanyrelevantfeatures),本文提出了一個完全不同的方法,它把文件視做符號序列,利用特定形式的核。其是完全subsymbolic,即把文章看做一個大長句子,可以承載領域資訊。方法最顯著地特性是把文件對映為向量,而不用顯式地表達它們,通過序列alignment技術 (the most remarkable property of such methods is that they map documents to vectors without explicitly representing them, by means of sequence alignmeng techniques). 

令人驚奇的是,這樣一個完全不同的策略,僅僅抽取了alignment資訊,卻能達到和特定問題相關的效能:某種意義上可以理解為文件語義資訊可以部分地被特定子串所表達;

SVM是在核特徵空間上的線性分類器。核函式K(x,y)=f(x)*f(y). blabla...

2 文字序列核
衡量兩篇文章的相似度:直觀想法,把文章看做長字串,兩者公共子串越多,則相似度越高。注意,子串不要求連續,但作用權重由子串的連續程度確定;
例如,card和custard中都包含子串c-a-r,但權重不同,權重取決於在長串中出現的頻次和緊密程度,因而引入了一個衰減因子;
然後舉了一個例子如何計算核:未歸一化核就是內積,歸一化核則要除以其中最大一項的自內積;

定義 : 
定義一節太過繁冗,bla....留待細看

3 演算法

費了挺大勁找到一個實用工具包...
http://users.cecs.anu.edu.au/~chteo/SASK.html