前文說到使用統(tǒng)計學習方法進行文本分類就是讓計算機自己來觀察由人提供的訓練文檔集,自己總結(jié)出用于判別文檔類別的規(guī)則和依據(jù)。理想的結(jié)果當然是讓計算機在理解文章內(nèi)容的基礎(chǔ)上進行這樣的分類,然而遺憾的是,我們所說的“理解”往往指的是文章的語義甚至是語用信息,這一類信息極其復(fù)雜,抽象,而且存在上下文相關(guān)性,對這類信息如何在計算機中表示都是尚未解決的問題(往大里說,這是一個“知識表示”的問題,完全可以另寫一系列文章來說了),更不要說讓計算機來理解。
利用計算機來解決問題的標準思路應(yīng)該是:為這種問題尋找一種計算機可以理解的表示方法,或曰建立一個模型(一個文檔表示模型);然后基于這個模型,選擇各方面滿足要求的算法來解決。用譚浩強的話說,程序,就是數(shù)據(jù)+算法。(啥?你不知道譚浩強是誰?上過學么?學過C么?這搗什么亂?)
既然文本的語義和語用信息很難轉(zhuǎn)換成計算機能夠理解的表示形式,接下來順理成章的,人們開始用文章中所包含的較低級別的詞匯信息來表示文檔,一試之下,效果居然還不錯。
統(tǒng)計學習方法進行文本分類(以下就簡稱為“統(tǒng)計學習方法”,雖然這個方法也可以應(yīng)用到除文本分類以外的多個領(lǐng)域)的一個重要前提由此產(chǎn)生,那就是認為:文檔的內(nèi)容與其中所包含的詞有著必然的聯(lián)系,同一類文檔之間總存在多個共同的詞,而不同類的文檔所包含的詞之間差異很大[1]。
進一步的,不光是包含哪些詞很重要,這些詞出現(xiàn)的次數(shù)對分類也很重要。
這一前提使得向量模型(俗稱的VSM,向量空間模型)成了適合文本分類問題的文檔表示模型。在這種模型中,一篇文章被看作特征項集合來看,利用加權(quán)特征項構(gòu)成向量進行文本表示,利用詞頻信息對文本特征進行加權(quán)。它實現(xiàn)起來比較簡單,并且分類準確度也高,能夠滿足一般應(yīng)用的要求。[5]
而實際上,文本是一種信息載體,其所攜帶的信息由幾部分組成:如組成元素本身的信息(詞的信息)、組成元素之間順序關(guān)系帶來的信息以及上下文信息(更嚴格的說,還包括閱讀者本身的背景和理解)[12]。
而VSM這種文檔表示模型,基本上完全忽略了除詞的信息以外所有的部分,這使得它能表達的信息量存在上限[12],也直接導致了基于這種模型構(gòu)建的文本分類系統(tǒng)(雖然這是目前絕對主流的做法),幾乎永遠也不可能達到人類的分類能力。后面我們也會談到,相比于所謂的分類算法,對特征的選擇,也就是使用哪些特征來代表一篇文檔,往往更能影響分類的效果。
對于擴充文檔表示模型所包含的信息量,人們也做過有益的嘗試,例如被稱為LSI(Latent Semantic Index潛在語義索引)的方法,就被實驗證明保留了一定的語義信息(之所以說被實驗證明了,是因為人們還無法在形式上嚴格地證明它確實保留了語義信息,而且這種語義信息并非以人可以理解的方式被保留下來),此為后話。
前文說到(就不能不用這種老舊的說法?換換新的,比如Previously on "Prison Break",噢,不對,是Previously on Text Categorizaiton……)統(tǒng)計學習方法其實就是一個兩階段的解決方案,(1)訓練階段,由計算機來總結(jié)分類的規(guī)則;(2)分類階段,給計算機一些它從來沒見過的文檔,讓它分類(分不對就打屁屁)。
下一章就專門說說訓練階段的二三事。