但唐朋 許天成 張姝涵
(華中師范大學計算機學院 武漢 430079)
隨著當下移動互聯網技術的高速發展,網絡用戶的身份由單一的信息獲取者轉變成為雙向的信息產生者和傳遞者。這一身份的改變加快了信息的傳播速度,擴大了信息傳播廣度。與此同時,大量的文本信息也出現在網絡當中。作為數據收集的重要步驟,在錄入文本信息時往往需要對應其類別。然而不是每一個信息來源都會標注原始數據的類別。所以就需要設計一種自動文本分類系統來進行分類。更進一步說,如果對某一個用戶所發布的信息進行分類處理,研究者們就可以探尋該用戶對網絡信息的關注程度,同時將其感興趣的部分應用到信息推送等應用當中。總體而言,文本的分類研究擁有廣泛的應用前景。
目前國內外已有不少學者在進行相關領域的研究,如魏芳芳等[1]基于支持向量機對農業文本進行分類,其缺點是分類的范圍被限定在了農業領域不具備常規性和通用性。劉懷亮等[2]利用知網語義相似度進行中文文本的分類,提升了中文文本分類的準確度,但在進行向量模型構建時僅通過評論篩選維度沒有考慮不同維度間可能存在的內在聯系。李鋒剛等[3]將 LDA 主題模型與傳統 SVM 分類模型相結合解決了傳統分類問題中相似性度量和主題單一的問題,但LDA 主題模型[4]的效能會跟隨所設置參數而變化,通過模型不一定能夠建立起完全匹配文本的向量集。為了解決上述問題,不僅需要在通用性質的類別下進行分類,還需要充分考慮文本中各個維度特征之間的關系。徐明等[5]針對微博短本文特征選擇提出了一種改進的卡方統計算法,其能夠增加分類的準確度但還是不能挖掘文本間的潛在聯系。為了提高中文文本分類的準確度,本文采用 BOW 模型[6~7]進行文本向量化操作,并利用 TF-IDF 策略[8~9]進行向量維度的權重計算以保證最終向量化的結果能夠對應原始文字數據。其后對傳統TF-IDF策略進行改進并聯合基于SVM 模型機器學習算法完成自動化文本分類系統的設計。
BOW 模型是一種文本向量化模型,將文檔表示成特征矢量。它的基本思想是對于任何一個文本,不考慮其詞序、語法以及句法,僅僅將其看作是各個不同詞匯的集合,而文本的每個詞匯都是獨立的。通過對不同語句中不同詞匯的提取構建空間向量集。BOW的構造原理如下所示:
文本內容:不錯不錯
他去了北京讀書
文本1:不錯
文本2:去了、北京、讀書
對文本1、文本2構建向量:

表1 BOW向量集的構建方法
傳統 TF-IDF(Term Frequency-Inverse Document Frequency)即詞頻-反文檔頻率是一種用于文本挖掘的常用技術。其中DF指的是文本集中所含有該特征的文檔數目。IDF 反文檔頻率則反應了特征詞在整個文檔集合中的分步,可以在一定程度上體現這個特征的區分能力。某一個特定詞語的IDF 可以由總文檔數除以包含該詞語的文檔數再取商對數獲得。即

其中N指所有文檔總數,dft表示含有特征詞t的文檔數目。
TF 為詞頻,指的是某一個給定詞語在該文件中出現的頻率。所以可以通過推導得到計算公式。

歸一化計算公式為

其中tfij表示特征詞tj在文本中出現的次數,即為詞頻。在完成權值計算之后,將得到擁有如下性質的矩陣。
1)列是所有文檔總共詞的集合。
2)每一行代表每一個評論文本。
3)每行是一個向量,這個向量代表了詞的權重。
若僅使用BOW 模型對文本進行向量化處理會導致所得文本向量過于龐大,所得的維度也越高,高緯度的向量組不利于文本分類,所以本文引入TF-IDF 策略進行處理,在降低維度的同時也能得到盡可能符合原文的向量組。
SVM 分類器[10]是一種經典的機器學習分類模型,它能夠準確地對高緯度信息進行分類,將文本的待處理數據表示為空間中的向量xi。通過在這個空間中創建一個超平面來達到將不同向量分類的目的,超平面的法向量表示為w。yi表示對應數據xi的類別且yi∈{- 1,1} 。下面分別給出其目標函數和對應最優解。
目標函數:

最優解:

其中αi表示拉格朗日算子,大于0的拉格朗日算子被稱為支持向量,其余的拉格朗日算子等于0,SVM分類器根據計算待測數據并以超平面為界劃分類別。本文將利用SVM 分類器對已經處理好的文本信息就行類別分類。
運用傳統的TF-IDF特征對文本進行向量構建時只考慮了特征項在各個文本中的分布情況,而忽略了特征項詞語間的近義、同義情況。不同于英文文本,中文文本中往往含有大量近同義詞,這些詞語的存在勢必會影響到文本分類器的分類效能。如果僅使用傳統特征計算方法反而會丟失文本關鍵特征,文獻[11~12]通過知識語言分析提出了詞語級的相似度分析方法,并采用“知網”相似度算法來計算詞語間的相似程度進一步提高詞語相似度計算的準確程度。所以為了解決傳統TF-IDF特征不能解決文本中含有近義詞、同義詞的情況,本文將相似度計算應用到TF-IDF特征計算方法中。并以此來增加特征項的權重。使其能夠反應整個文本的特征。為了規范對于同義詞、近義詞的判斷。我們規定相似度計算大于0.8的兩個詞可以被認為是同義詞或近義詞,并定義相似度因子α。α代表文本中一個特征項的數量與其相似特征之和在所有特征項總數中的占比情況。我們將使用相似度因子α來調節TF-IDF特征計算公式。相關公式如下所示:
1)相似度計算

其中x和y分別表示文本向量中的兩組特征。
2)相似度因子

其中P表示某一文本中特征項t的個數,Q表示與特征項t相似度大于0.8 的特征項的個數,我們認為這部分特征詞與原提特征詞能夠表示相似的文本特征。U是所有特征的數量。
3)融合語義的TF-IDF策略

其中Wij表示某一特征詞的權重,tfij表示特征詞tj在文本中出現的次數,即詞頻。N是整個文本的總數量,dft表示含有特征詞t的文檔數目。
文本的分類系統[13~15]主要由以下幾個部分構成:1)文本獲取器,主要通過網絡爬蟲技術定向從互聯網自動獲得文本信息;2)分類訓練器,使用一定量的訓練數據來訓練機器學習模型以達到進行文本分類的目的;3)分類器,與訓練器相似,不同的是分類器將直接對所收集到的未標記數據進行分類。本文將重點介紹分類訓練器的構建。
分類訓練器由5 個步驟完成:1)原始文本信息;2)預處理,由于文本中含有大量無用信息,如人稱“我”、助詞“的”等對文本類別意義沒有幫助的字詞所以需要對原始信息進行分詞與去停用詞處理;3)降維和向量化,分別利用第二部分所介紹的BOW 模型、TF-IDF 策略對文本信息進行向量化操作和降維處理;4)構建Bunch 庫使組成的向量能夠被SVM 分類器所訓練。5)利用機器學習算法中的SVM分類器對數據元素進行學習,使其能夠對中文文本進行分類。分類器的步驟由圖1所示。

圖1 分類訓練器工作流程
Bunch 類庫用來存儲進行降維和向量化后的文本數據同時對應其標簽。在Bunch類庫中有4個成員:對象名稱、標簽、文件名與文本內容。這4 個成員之間含有兩層映射:一是對象名稱與文件名的映射;二是標簽類與文本內容的映射。構建Bunch類主要是利用其機理來規范化機器學習訓練的操作。Bunch類如表2所示。

表2 Bunch類庫說明
為了更加便利地構建文本分類系統,本文在如下平臺進行實驗,CPU:Intel Core i7 6700,內存:DDR4 8G,硬盤:固態硬盤120G,操作系統:Windows 7,開發環境:python 3.4.4,sklearn 機器學習庫。且訓練數據選擇了復旦大學中文文本分類語料庫進行訓練。文本分類普遍使用的評價標準有準確度、召回率、F1值,具體定義如下:

上述公式中,TP表示某特征被正確分類的正樣本,FP表示某個特征被錯誤分類的負樣本,FN表示某一特征在分類時被錯誤分類的正樣本。為了說明改進特征的有效性,本文將分別利用傳統TF-IDF 策略和改進TF-IDF 策略進行文本分類實驗實驗結果由表3、表4、圖2、圖3、圖4所示。

表3 傳統TF-IDF策略的實驗結果

表4 基于改進TF-IDF的實驗結果

圖2 不同維度準確度的對比
由實驗結果可知,應對不同緯度下的中文文本分類任務,該文本分類系統的準確度都處于較高水平,說明系統的建立是成功的,且應用改進策略的結果明顯優于應用傳統方法。值得注意的是,當選擇不同維度來表達中文文本時得到了不同的分類準確度。這是因為在較低維度時用于衡量整篇文章的特征向量較少,不利于機器學習進行分類。而較高的維度雖然能夠從各個方面完善的表示文本信息,但過高的緯度會伴隨噪聲,即向量中的無關信息會影響機器學習模型的判斷。從實驗結果來看在維度數為1500~2000 時分類的效果能夠達到最好的情況,但這可能并不是絕對。需要重復試驗找到最優情況。

圖3 不同維度召回率的對比

圖4 不同維度F1值的對比
本文以文本分類為切入點,基于改進TF-IDF特征和機器學習原理設計了一種自動化中文文本分類系統。實驗證明,改進后基于TF-IDF 特征的文本分類性能要優于傳統文本分類方法。在本方法下設計的文本分類系統具有較高的準確度,能夠用于實際應用滿足了研究的需要。值得關注的是當維度提升至一定程度后各項指標不再增長,我們將在后續的研究中繼續相關工作直至解決問題。