張 偉,石 倩,何 霄,王 晨,李禾香,李驥然
(1.中國石油工程技術研究院有限公司 北京石油機械有限公司,北京102206;2.中國人民大學 信息學院,北京100872)
TF-IDF算法結構簡單,類別區分力強,且容易實現,被廣泛應用于信息檢索、文本挖掘、文本分類、信息抽取等領域中。但是,該算法僅考慮詞頻方面的因素,沒有考慮詞語出現的位置、詞性、樣本分布等信息,存在一定局限性。對此很多研究者都提出過改進算法,王小林在傳統TF-IDF算法基礎上,提出利用段落標注技術,對處于不同位置的詞語給予不同的位置權重,并對分詞結果中詞頻較高的同詞性詞語進行相似度計算,合并相似度較高的詞語,改進傳統算法中忽視特征詞位置因素和語義對相似度的問題[1]。覃世安針對傳統TF-IDF算法在分類文本類的數量分布不均時提取特征值效果差的問題,提出使用特征值在類間出現的概率比代替特征值在類間出現次數的改進TF-IDF算法[2]。葉雪梅認為傳統的特征詞權重TF-IDF算法未考慮到網絡新詞,針對特征項中的新詞對分類結果的影響給予不同權重值,提出基于網絡新詞改進文本分類TF-IDF算法[3]。這些改進算法都有效提高了模型性能,優化分類結果,取得了不錯的實驗效果。但以往改進算法研究主要集中在通過完善算法本身的缺陷以實現詞條在文本中更加準確的權重賦值,忽略了其他類別區分特征因子。
在對企業日常經營活動文本的數字化處理中,包含信息抽取和文本分類的多任務應用場景,信息抽取結果蘊含大量文本信息,是文本重要的類別區分特征。對此,本文提出一種改進的TF-IDF算法,將文本信息抽取結果作為文本重要類別區分特征,引入信息增益方法得到改進的權重計算公式,進而得到改進的文本特征向量空間表示,再構建文本分類模型。實驗結果顯示,改進的TF-IDF算法可以有效提高分類器文本分類的正確率。
文本分類問題包括學習和分類兩個過程,學習過程的目標是根據已知的訓練數據構建分類模型得到分類器;分類過程的任務是利用得到的分類器,預測新數據的類別。假設{(x1,y1),(x2,y2),…,(xn,yn)}表示已作類別標注的文本訓練數據集,n表示文本個數,xi表示文本實例,yi表示xi對應的類別標號,學習系統以訓練數據集為基礎,從中學習到分類器y=f(x),分類器對新輸入實例xn+1進行分類,以預測其輸出的類標記yn+1[4]。分類問題描述如圖1所示。

圖1 分類問題描述圖
中文文本分類問題包含文本預處理、文本預處理、文本表示、特征降維、分類算法等。其流程圖和關鍵應用技術如圖2所示。

圖2 文本分類關鍵技術
1.2.1 中文文本預處理
中文文本不同于英文文本,詞與詞之間沒有明顯的區分,需要使用分詞器對中文文本分詞。具體到實際應用中,因為不同行業都有較多屬于自己行業內不常用的專業術語、特殊詞匯,并且不同類型文本中常用詞的表達也有差異,單使用分詞器的通用詞庫獲得的分詞結果錯誤率較高,會直接影響文本特征的表示效果。所以通過加入自定義行業詞典和文本關鍵詞詞典,來有效提高分詞器對中文文本分詞的準確率。
文本預處理時還需要過濾掉常見停用詞和標點符號,這類詞和符號往往對文本類別區分沒有什么作用,但會占用大量文本特征向量維度空間,增加計算復雜度。通過載入停用詞表,除去分詞結果中不重要的詞條,保留重要的詞條。
1.2.2 文本表示
文本預處理結果為多詞條集合的文本數據,分類算法無法直接處理文本數據,需要把文本數據表示為計算機能處理的數值型數據[5],目前常用的文本表示方法有:布爾模型、向量空間模型(Vector Space Model)、概率模型、圖空間模型[6]、詞嵌入模型[7]。
向量空間模型(簡稱VSM)是目前應用最廣泛的文本表示方法,VSM把每篇文檔都表示為特征詞-權重向量形式,把文本看作是一系列特征項t的集合,對每個特征項賦予對應的權值。如表1所示,其中t1,t2,…,tn可以看作文本中的詞條,w1,w2,…,wn表示詞條對應的權重值,d1,d2,…,dm表示每篇文本映射的一個特征向量。特征項權重值的計算方法有:TF-IDF權重法、布爾權重法、熵權重法[8]。

表1 文本特征向量空間
1.2.3 特征降維
在使用VSM模型時,如果訓練文本集較大,文本特征向量的維度可能過大,十分浪費計算機的資源,不利于計算,同時,特征的冗余以及缺乏有效關聯也會影響分類性能[9]。因此,對文本特征降維尤為重要。
特征降維的方法包括特征選擇和特征抽取兩種,特征選擇指不改變原始特征空間的性質,只是從原始特征空間中選擇一部分重要的特征,組成一個新的低維空間,常用的特征選擇方法有互信息、信息增益法,卡方檢驗法,文檔頻次(Document Frequency)法等。特征抽取則通過將原始高維度特征空間進行映射(或變換),生成低維度的特征空間[10]。常用的特征抽取方法有主成分分析(Principle Component Analysis)、特征聚類等。
1.2.4 分類算法
得到了文本的數值型向量空間表示后,可以使用分類算法構建分類模型、訓練分類器。常用的傳統機器學習分類算法有:樸素貝葉斯、K最近鄰、支持向量機、決策樹等。通常情況下,作為有監督學習,其分類準確率高于無監督和半監督方法[11]。
文本分類任務結果包含4種情況,TP表示屬于該類別的文本,被正確分類為該類的文本數;FN表示屬于該類的文本,被錯誤分類為其他類目;FP屬于其他類的文本,被錯誤分類到該類目;TN表示屬于其他類的文本,被正確分類到其他類目;一般以精確率P、召回率R和F值作為文本分類性能的評價指標,其計算公式如式(1)~式(3)所示[12]。

式中:P(Precision)為精確率,它表示在所有被分類為該類的文本中分類正確的概率;R(Recall)為召回率,它表示在所有屬于該類的文本中分類正確的概率;F值為精確率和召回率的調和平均值。
2.1.1 權重值計算
TF-IDF(Term Frequency and Inverted Document Frequency)是最常用的權重值的計算方法,用以評估某一詞條對于整個文件集或語料庫中的某一份文檔的重要程度。詞頻tf表示該詞項在文檔中出現的頻率;逆向文件頻率idf反映該詞項在文檔數據集中的重要程度[13],主要計算公式如式(4)~式(6)所示。

tfdt值通常需要被歸一化,一般是特征項t在文本d中出現的頻次mdt除以文本d中總詞數Md,以防止它偏向長的文件。idft由總文件數N除以包含特征項t的的文件數nt(加0.1是為了避免分母為0的情況),再將得到的商取對數得到。wdt表示特征項t在文本d中的權重值。
2.1.2 歸一化
為使各特征項權重值都處于[0,1]區間內,使用余弦歸一化的方式進行歸一化處理,得到新的權重計算公式如式(7)所示,k為文本d中特征項個數。

2.2.1 定義文本關鍵詞集合
信息抽取任務是指從自然語言文本中抽取指定類型的實體、關系、事件等信息,其中包含大量文本特有內容,對文本具有很好的類別區分能力。在使用基于規則的信息抽取任務中,通過識別文中觸發抽取任務的關鍵詞來定位要抽取信息所在的位置[14]。構建與信息抽取結果直接關系的文本關鍵詞集合。
2.2.2 信息增益方法
信息增益(InformationGain,IG),定義為數據集D的信息熵H(Y)與條件X給定條件下Y的條件熵H(Y|X)之差[15]。信息增益值越大,說明特征項對數據類別區分能力越強。具體公式如式(8)~式(10)所示。

在分類問題中,通過統計某一特征項xi在類別yi中出現與否,來計算信息增益值。其計算公式如式(11)所示,pyi表示yi類別文本在語料中出現的概率,即yi類別文本數除以總的文本數;pxi表示語料中包含特征項xi的文本的概率,即包含特征項xi的文本數除以總的文本數;xˉi表示不包含特征項xi的文本;p(yi|xi)表示文本包含特征項xi時屬于yi類別的條件概率,即包含特征項xi且屬于類別yi的文本數除以包含特征xi的文本數。

2.3.3 改進的權重計算公式
改進的TF-IDF算法將信息抽取結果項與對文本類別的信息增益值φ,融入到權重計算公式中,以增加特征項對類別區分能力,得到改進的權重計算公式如式(12)所示。

在文本表示過程中,識別文中與信息抽取結果直接關系的關鍵詞,如關鍵詞對應信息抽取結果為真,則使用改進的權重計算公式計算特征項權重值,否則按傳統權重計算公式wdt計算。文本特征項權重賦值如式(13)所示。t表示文本中特征項;T表示與抽取結果直接關系的文本關鍵詞集合;R表示對應信息抽取結果為真。

數據集使用包含信息抽取結果的石油行業中文文本2 006條,文本中包含油服日報、完鉆簡報、其他3類。本實驗編程語言使用Python 3.6;主要運行環境包括Jupyter Noetbook軟件、Windows 10系統、8 GB內存。
實驗使用結巴分詞器加載自定義石油行業和文本關鍵詞詞典、去除常見停用詞和標點符號,實現對石油行業中文文本分詞預處理。使用傳統TF-IDF算法和改進的TF-IDF算法在K最近鄰、支持向量機、決策樹3種不同分類模型下進行對比試驗,得到F1-score結果如圖3所示。

圖3 改進的TF-IDF算法在不同分類模型F1值比較
使用準確率P、召回率R、F值等評價指標對油服日報、完鉆簡報、其他3類文本分類實驗結果進行評估,結果如表2所示。

表2 分類效果評價
(1)使用相同TF-IDF算法在不同分類模型下對樣本數據的分類效果略有不同,其中K 最近鄰分類模型相比于其他兩種分類模型分類效果更好。
(2)改進的TF-IDF算法在K最近鄰、支持向量機、決策樹3種不同分類模型下分類結果都要優于傳統TF-IDF算法。
(3)改進的TF-IDF算法對樣本數據中不同類別文本的準確率P、召回率R、F值都得到了明顯提高。
本文針對在包含信息抽取和文本分類的多任務應用場景下,提出一種改進的TF-IDF算法,將文本信息抽取結果也作為文本重要類別區分特征,引入信息增益方法得到改進的權重計算公式,進而得到改進的文本特征向量空間表示,再構建文本分類模型。通過對比實驗結果表明,改進的TF-IDF算法具有更好的文本分類效果,可以有效提高分類器文本分類的正確率。但使用基于TF-IDF的向量空間模型,前提是假設特征詞之間相互獨立的,但在實際中詞與詞之間會有一定的關聯,因而會忽略文本上下文關系,無法表征特征詞的語義信息。后期研究可以使用包含語義關系的詞向量來替代TF-IDF算法實現文本向量空間表示。