殷功俊
(四川大學計算機學院,成都 610065)
在文本分類的領域中,需要處理大量的文本數據,由于數據規模的龐大,通常用計算機來學習與處理文本數據。與視頻、圖像等數據的不同,文字是人類認知過程中產生的高層認知抽象實體,計算機難以獲取其文本特征,不能準確地表達文本語義。文本表示是文本分類中非常重要的一個環節,通過文本表示可以將大量的非結構化或半結構化的字符集合信息轉換成為一個簡潔的、統一的、能夠被計算機所識別的結構化形式,使計算機能夠在接下來的任務中得到更好地效果。文本表示的好壞能很大程度上影響到整個文本分類任務的性能。
Saltont等人[1]于1975年提出的向量空間模型(Vector Space Model,VSM)是目前使用最普通的一種文本表示模型,它將文本表征為一組特征項的集合,每一個特征項都有權值信息,表征該特征項對于文本的重要程度。特征項的權值通過TF-IDF(Term Frequency-Inverse Document Frequency)[2]來計算。TF-IDF 是一種統計方法,是用來評估一個特征詞對于一個文本集或一個語料庫中的其中一份文本的重要程度,它隨著在文件中出現的次數增加而增加,隨著它在語料庫中出現的次數增加而減少。
雖然基于TF-IDF的向量空間模型在傳統的分類器上有著不錯的分類效果,依然存在以下幾個缺陷[3]:①文本向量的維度較高,文本向量的維度取決于文本的特征詞個數,極容易造成“維數災難”的問題,不僅會消耗更多的計算資源、降低文本分類的精確度,而且容易引起過擬合的問題;②不能準確表示文本的語義,向量空間模型的前提是假設特征詞之間相互獨立的,但在實際中詞與詞之間會有一定的關聯;③不能準確辨別自然語義模糊性,它是基于TF-IDF來計算權值,即主要依靠詞頻信息,導致文檔的相似度也主要依賴于共同詞匯的數量。針對以上幾個不足,很多研究人員也做了很多研究進行改進且都取得了不錯的效果。鄧曉衡[4]等人提出了提出一種多義詞判別優化的同義詞聚類方法來優化向量空間模型,該方法大大降低了文本向量的維度,提高了文章特征提取的準確性;Konstantinos等[5]提出用無向圖來表示文本特征詞之前的關聯,通過結點中心性來替換TF-IDF中的TF,產生更多的判別性特征權重;George Forman等[6]用雙正態分離(Bi-Normal Separation,BNS)來代替 TF-IDF 中的 IDF,提高了分類的準確性。上述的研究都是在優化特征項權值的計算方法,通過特征項對文本的重要性來表達文本,卻無法將文本特征詞的上下文語義與句法信息考慮到模型之中。
詞向量是用向量來描述一個詞,最常見的是獨熱表示(One-Hot Representation),它將詞用一個很長向量來表示,向量的維度代表詞的個數,向量中只有一個維度是1,其他全是0。獨熱表示有兩個明顯的缺點,一是詞與詞之間是孤立的,會造成“語義鴻溝”現象;二是如果詞的個數較多,很容易產生維數災難問題。而本文提到的詞向量并不是獨熱表示,而是神經網絡在自然語言處理領域中的一種應用——詞的分布式表示(Distributed Representation),這種方法常被稱為詞向量。詞向量有很多優秀的特性,如維度低、包含詞語語義信息、包含上下文信息[7]等。這些特性在一定程序上能彌補VSM的缺陷。近年來,有很多研究都在嘗試詞向量在文本分類中的應用,并取得了很好的效果。像唐明、朱磊[8]等提出了一種基于詞向量的TF-IDF加權計算文本向量算法;周順先等[9]使用詞向量優化TFIDF算法;郭宏運[10]將詞向量與主題向量結合;Piotr Sembereck[11]等將詞向量與卷積神經網絡結合應用在文本分類中。
本文在唐明和周順先的研究基礎上改進了向量空間模型:①將特征詞詞向量聚類,聚類質心代表該類的其他特征詞,求聚類質心的TF-IDF權值;②將聚類質心的TF-IDF與其詞向量相結合來生成文本表示向量。
向量空間模型假設詞與詞之間是相互獨立的,忽略其出現的次序,將文本表示為一個向量,其中向量的每一維代表著文本特征集中的一個特征,每一維的值代表著這個特征項在文本的權重,因此可以通過文本向量的相似度可以衡量文本之間的相似度。在VSM中,文本d可以由二元特征組組成的特征向量來表達,如d={(t1,w1),(t2,w3),…,(tn,wn)},其中 ti表示特征項,wi表示ti特征項在文本中的權重,文檔可簡化的表示為d={w1,w2,…,wn}。權重一般通過 TF-IDF 公式計算,特征t在文檔d中的權重計算公式如公式(1)所示:

其中,tf(t,d)表示特征項t在文檔中出現的頻次,計算公式如下:

nt,d表示特征項t在文檔中出現的頻次代表文檔d中所有特征項出現次數的總和。公式(1)中idf(t)計算公式如下:

其中,N為訓練集的文本數量,nt為訓練集中出現特征t的文本數量。
雖然向量空間模型表示文本簡單高效,但依然有著維度較高、無法有效表達詞語語義等缺點。
本文研究的詞向量默認為基于神經網絡的分布式表示(Distributed Representation)。Mikolov[12]在 2013 年提出了Word2Vec,該方法能方便、高效地獲取詞義的向量化特征且包含詞語之間相似度的優良特性,引起了業界的巨大關注。Word2Vec是一個神經網絡模型,是神經網絡在自然語言領域突破性的應用。它提供了兩種模型來訓練詞向量,即連續詞袋模型(Continuous Bag-Of-Words,CBOW)和Skip-Gram模型。由于篇幅有限,CBOW和Skip-Gram算法的原理本文不在詳細闡述,可參考來斯惟博士論文[13]。通過Word2Vec訓練學習出的詞向量可把對文本內容的處理簡化為向量空間中的向量運算,而向量空間上的相似度可以用來表示詞語或者文本語上的相似度,因此本文嘗試通過詞向量優化向量空間模型。
本文提出的模型從兩方面改進了傳統的向量空間模型:①將特征詞的詞向量聚類,用TF-IDF計算聚類之后質心的權值;②生成文本表示向量時將聚類質心的權值與其詞向量結合。具體流程如圖1(b)所示:


圖1 傳統向量空間模型和新模型文本表示流程圖
傳統求解TF-IDF權值是在文本預處理、文本分詞得到特征集后直接計算。而在我們提出的模型中,得到特征集后先訓練特征詞獲取其對應詞向量,再對得到的詞向量進行聚類,用聚類質心代表該類其他的特征詞,最后對聚類質心進行TF-IDF計算,這種改進的優點:①能解決求TF-IDF權值時一詞多義和同義詞的問題;②能夠一定程度上緩解維度過高和表達稀疏的問題。本文訓練詞向量的方法是采用Google開源了Mikolov提出的詞向量訓練方法Word2Vec[14]。具體的步驟如下:
(1)對文本進行文本預處理、文本分詞,得到詞語集合G。
(2)將集合G中詞語通過Word2Vec訓練得到對應的詞向量,得到詞向量集合W。
(3)對詞向量集合W用K-means方法聚類,根據最終的聚類結果將詞向量所屬聚類劃分的質心S代替表聚類劃分內的詞語,即將一個類別內所有特征詞語義特征跟質心語義特征一致。
(4)與求特征項的TF-IDF不同的是,這里是求聚類質心的TF-IDF。計算公式與公式(1)一樣,但代表含義稍許變化,其中tf(s,d)代表“質心s所代表的詞語”在文檔d中出現的頻率;idf(d)為質心s的逆向文件頻率。
根據基于TF-IDF的向量空間模型,此時可以把文檔向量 d 初步表示為 {s1,s2,…,sm},其中 si代表著第 i個聚類質心的TF-IDF權值,m代表著聚類后的類別數量。通過第一節我們知道向量空間模型雖然應用比較廣泛,但也有不少的缺陷,例如表示的文本向量維度過高、文本表示稀疏和無法有效提取語義信息等。維度過高和文本表示稀疏的問題在上一節中在得到一定程度的緩解。而不能有效提取語義信息這一問題不能得到很好的解決,這主要來源于向量空間模型自身的局限,因為它假設詞與詞之間是獨立的,沒有考慮詞與詞之間的聯系。而詞向量卻能很好地表示特征詞的語義信息,并可以通過常見的距離或相似度度量操作衡量它們之間的語義相似度,因此本小節嘗試將詞向量與向量空間模型融合,得到最終的文本表示向量:

其中,S為質心的集合,Ws為質心s的詞向量,m為聚類后類別的個數,tfidf(s,d)是上一小節中求的質心s的權值。
為了驗證本文報出的模型的有效性,在搜狗語料庫基礎上進行實驗,選取了語料庫中7種類別進行實驗,相關類別及包含的數量如表1所示:

表1 實驗數據類別及數量
需要對語料庫進行預處理:①去除停用詞、標點符號、助詞等;②分詞,用清華大學的THULAC分詞工具對語料庫文本進行分詞。
設計實驗將本文提出的模型與基于TF-IDF的向量空間模型,Doc2Vec模型和LDA主題模型進行對比。詞向量訓練采用Google開源的Word2Vec工具,Doc2Vec采用gensim工具。聚類采用K-means方法。分類器采用NB(樸素貝葉斯算法)、KNN(K最近鄰算法,K=20)、SVM(支持向量機算法)。采用的評估分類效果指標為準確率(Precision)、召回率(Recall)和F1-measure。計算公式如下:

其中,e是錯誤地劃分到該類別的文本個數,r是分類正確的文本個數,u是屬于該類別但未被區分出來的文本個數。
為了保證實驗可靠性,每個實驗采用10折交叉驗證,最后取平均值作為最終結果。具體實驗結果如下:

表2 實驗分類結果(%)
從表2可以看出,本文提出的新模型在NB、SVM和KNN三種分類器下分類效果皆好于傳統的向量空間模型,例如在NB分類器上準確率從79.33%增加到82.52%,召回率從 72.42%增加到 75.07%,F1值從73.04%增加到75.84%,這說明本文提出的模型比傳統的向量空間模型具體更好地表達文本的效果。同時該模型與Doc2Vec和LDA模型在準確率、召回率和F1值上差別不是很大,這也證明了本文提出的模型的有效性。
針對傳統的向量模型表達文本有維度較高、文本表示稀疏和無法有效表示特征詞語義等缺點,本文提出一個新模型——借助詞向量優化TF-IDF求解方法并在生成文本表示向量時將VSM與詞向量融合,該模型在一定程度上優化了傳統向量空間模型的缺陷。通過實驗證明本文提出的文本表示模型較傳統的向量空間模型有著更好的分類效果。今后將進一步優化特征向量的生成,考慮引入注意力機制用于文本表示。