從文本分類系統的處理流程來看,無論待分類的文本是中文還是英文,在訓練階段之前都要經過一個預處理的步驟,去除無用的信息,減少后續步驟的復雜度和計算負擔。
對中文文本來說,首先要經歷一個分詞的過程,就是把連續的文字流切分成一個一個單獨的詞匯(因為詞匯將作為訓練階段“特征”的最基本單位),例如原文是“中華人民共和國今天成立了”的文本就要被切分成“中華/人民/共和國/今天/成立/了”這樣的形式。而對英文來說,沒有這個步驟(更嚴格的說,并不是沒有這個步驟,而是英文只需要通過空格和標點便很容易將一個一個獨立的詞從原文中區分出來)。中文分詞的效果對文本分類系統的表現影響很大,因為在后面的流程中,全都使用預處理之后的文本信息,不再參考原始文本,因此分詞的效果不好,等同于引入了錯誤的訓練數據。分詞本身也是一個值得大書特書的問題,目前比較常用的方法有詞典法,隱馬爾科夫模型和新興的CRF方法。
預處理中在分詞之后的“去停止詞”一步對兩者來說是相同的,都是要把語言中一些表意能力很差的輔助性文字從原始文本中去除,對中文文本來說,類似“我們”,“在”,“了”,“的”這樣的詞匯都會被去除,英文中的“ an”,“in”,“the”等也一樣。這一步驟會參照一個被稱為“停止詞表”的數據(里面記錄了應該被去除的詞,有可能是以文件形式存儲在硬盤上,也有可能是以數據結構形式放在內存中)來進行。
對中文文本來說,到此就已初審合格,可以參加訓練了(笑)。而英文文本還有進一步簡化和壓縮的空間。我們都知道,英文中同一個詞有所謂詞形的變化(相對的,詞義本身卻并沒有變),例如名詞有單復數的變化,動詞有時態的變化,形容詞有比較級的變化等等,還包括這些變化形式的某種組合。而正因為詞義本身沒有變化,僅僅詞形不同的詞就不應該作為獨立的詞來存儲和和參與分類計算。去除這些詞形不同,但詞義相同的詞,僅保留一個副本的步驟就稱為“詞根還原”,例如在一篇英文文檔中,經過詞根還原后,“computer”,“compute”,“computing”,“computational”這些詞全都被處理成“compute”(大小寫轉換也在這一步完成,當然,還要記下這些詞的數目作為compute的詞頻信息)。
經過預處理步驟之后,原始文檔轉換成了非常節省資源,也便于計算的形式,后面的訓練階段大同小異(僅僅抽取出的特征不同而已,畢竟,一個是中文詞匯的集合,一個是英文詞匯的集合嘛)。
下一章節侃侃分類問題本身的分類。