吳龍峰



摘要:針對短文本的文本分類出現的特征維度高和數據稀疏性的問題,本文提出了一種結合神經網絡語言模型word2vec和文檔主題模型LDA的文本特征表示模型,并使用表示矩陣模型,矩陣模型不僅可以有效地表示單詞的語義特征,還可以表達上下文特征,增強模型的特征表達能力。將特征矩陣輸入卷積神經網絡(CNN)進行卷積池化,并進行文本分類實驗。
關鍵詞:文本分類;Word2vec;LDA;CNN
中圖分類號:TP311? ? ?文獻標識碼:A
文章編號:1009-3044(2019)22-0203-02
開放科學(資源服務)標識碼(OSID):
1 引言
近年來,隨著互聯網技術的飛速發展,主流社交平臺不斷產生大量的文本信息。其中,短文占據著很大比例,短文分類作為自然語言處理領域的基本任務,受到研究人員的密切關注。因此,有效和準確的文本分類方法對于數據挖掘,信息處理和網絡維護具有重要意義。文本的特征表示和分類算法是文本分類工作的重要組成部分,它直接影響文本分類效果。傳統的機器學習分類算法包括樸素貝葉斯,支持向量機(SVM),K近鄰算法等。這些分類算法通常使用人工設計的特征選擇算法,如TF-IDF,信息增益(IG),卡方統計(CHI)等等。這些特征選擇算法存在諸多問題,比如特征表示不足、容易忽略類別之間的關系。
深度學習是機器學習研究領域的熱門話題。卷積神經網絡(CNN)最初應用于計算機視覺領域[1]。目前,CNN在自然語言處理領域也取得了很好的成績,Kim將單詞向量與CNN結合起來,并將其應用于主題分類和語義分析,以取得良好的效果[2]。CNN輸入矩陣僅提取單詞粒度級別的單詞向量矩陣,忽略文本粒度級別的整體語義特征表達,導致文本特征表示的不準確,影響文本分類的準確性。本文試圖將word2vec模型與LDA模型相結合,形成一個新的文本特征表示矩陣,然后傳遞給CNN進行文本分類,取得了良好的分類效果。
2 相關工作
2.1 文本預處理
文本預處理的過程一般包括以下步驟:將從互聯網上爬取的文本數據進行統一編碼;然后利用分詞程序進行將文本切分成一個個單詞[3];最后利用停用詞表去除對文本分類無用的詞語。
2.2 文本表示
文本通常是一種非結構的信息,由文字和符號共同組成。利用計算機進行文本分類時,必須將文本轉換成結構化的信息才能被計算機識別和處理。常用的文本表示模型有空間向量模型、LDA模型等,其中,LDA模型包含單詞、主題和文檔結構,通過簡要描述文檔并保留基本特征信息[4]。Word2vec模型可以快速有效地訓練單詞向量,訓練之后,Word2vec模型可用于將每個單詞映射到向量以表示單詞和單詞之間的關系。
2.3 文本分類
文本分類模型一般分為兩類:機器學習模型和深度學習模型[5]。由于CNN卷積神經網絡模型對文本分類任務有很好的適應性,文本表示特征提取方法的應用比較成熟,但很容易導致高維數據和不完整的特征表達。LDA模型提取語義特征并忽略語義特征。Word2vec模型訓練單詞矢量模型并忽略語義特征。如果將這兩個表示特征用作CNN的輸入矩陣,則分類效果將令人滿意。
3 Word2vec和LDA組合模型
3.1 構建CNN輸入矩陣
(1)訓練詞向量
Word2vec主要包含兩個重要的模型,連續詞袋(CBOW)模型和Skip-gram模型。兩種模型都包括輸入層,隱藏層和輸出層。本文使用Skip-gram模型進行訓練詞向量,文檔的N維向量表示如下:
[M=M11M12…M1NM21M22…M2N????Mk1Mk2…MkN]? ? ? ? ? ? ? ?(1)
其中:M是數據集的任一文檔,[MkN]是詞的權重。
(2)訓練主題向量
LDA模型將文檔視為單詞向量的集合。該過程如下:對于文檔,文檔和主題滿足多項式分布,并且主題和詞匯中的單詞也滿足多項式分布。兩個多項式分別是具有超參數α和β的Dirichlet先驗分布。因此,文檔d處理流程為:從文檔主題分布θ中提取主題,然后從與提取的主題相對應的單詞分布φ中提取單詞,重復以上步驟,形成包含N個字的文章。完成LDA模型后,數據集的任意數據的主題分布矩陣如下:
[Z=Z11Z12…Z1NZ21Z22…Z2N????Zk1Zk2…ZkN]? ? ? ? ? ? ? ? ? (2)
其中:[ZMN]是對應于文本M的主題概率向量,N是語料庫大小,k是向量維度,并且數字與單詞向量維度相同。
(3)矢量拼接
改進的文本表示方法是疊加通過訓練上述兩個模型得到的矩陣,形成一個新的特征矩陣。
[Mnew=M⊕Z=M11M12…M1NM21M22…M2N??…?Mk1Mk2…MkNZl1Zl2…ZlN]? ? ? ? ? ? ? ?(3)
其中:⊕是矢量拼接操作,完成拼接后獲得新的矩陣[Mnew],用于CNN的輸入矩陣。
3.2 卷積神經網絡模型
CNN是一種優化的卷積神經網絡,核心在于輸入矩陣和不同卷積核之間的卷積運算。卷積神經網絡主要由卷積層,池化層和分類層組成。
輸入層是句子中單詞的單詞矢量矩陣。假設有n個單詞且單詞向量維度是d,則輸入矩陣的大小為n[×]d。在訓練模型期間,可以固定或優化單詞矢量的值作為參數。
隱藏層包括卷積層和池化層。卷積本質是輸入信號的加權疊加,它是卷積內核(濾波器)的不同大小的文本體積h[×]d(h是卷積內核窗口中包含的字數,d代表每個單詞的向量維度)。實驗卷積核設計為三種尺寸,即3[×]d,4[×]d,5[×]d,CNN卷積運算公式如下所示:
[ci=f(W1?Xi:i+h-1+b1)]? ? ? ? ? ? ? ? ? (4)
其中[ci]表示卷積運算的結果,即輸出矩陣和卷積核的點乘以及偏移后的激活輸出。h是窗口大小,[Xi:i+h-1]是輸入的i到i+h-1窗口中的字向量矩陣,[W1]是卷積核或權重矩陣,[b1]是偏移量,f是激活函數。在通過卷積獲得特征之后提取特征以簡化網絡的計算復雜性,在池化層處壓縮特征。池化操作有兩種類型:平均池和最大池。文本分類通常使用最大池來選擇最重要的信息。池化操作如下:
[c=max{c1,c2…cn-h+1}]? ? ? ? ? ? ? ? ? (5)
其中:[c]是最大合并操作的結果,并且[ci(i=1,2…,n-h+1}]是卷積操作的結果。
輸出層將池化層作為輸入,并通過Softmax函數執行分類計算。分類計算公式如下:
[f(x)ρ=11+exp(-ρTx)]? ? ? ? ? ? ? ? ? ?(6)
exp表示以e為基數的指數函數,[ρ]是評估參數,該值由最小成本函數J([ρ])估計。公式如下:
[J(ρ)=i=1My(i)logfρ(x(i))]? ? ? ? ? ? ? ? ?(7)
函數的返回值是C分量的概率值,并且每個分量對應于輸出類別的概率,從而劃分文本的類型信息并完成分類。
4 實驗
4.1 實驗環境和數據
實驗環境:CPU:I7,內存:8G,實驗編程語言為Python3.6,開發工具為Pycharm,深度學習框架為Tensor flow1.0.0。實驗數據來源于搜狗實驗室的文本語料庫。包含體育,軍事,旅游,金融,IT,房地產,教育,娛樂等八個類別,每個類別選取1000篇文檔共8000篇文檔,將該數據集的80%作為訓練集,20%作為測試集。數據通過十折交叉驗證進行驗證。
4.2 實驗設置
本文中的數據以UTF-8編碼格式統一,用Python調用Jieba分詞組件進行分詞,并使用哈爾濱工業大學的停用詞表來停用單詞。創建文本要素表示矩陣并輸入CNN進行文本分類。CNN模型參數的具體設置如表1所示:
4.3 評估指標
對于分類結果,采用國際公認的評估指標:精確率P,召回率R和F1值。其計算公式如下:
[P=XX+Y]? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (8)
[R=XX+Z]? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (9)
[F1=2PRP+R]? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (10)
其中X表示某種類型的文本被正確識別為類的樣本數,Y表示某種類型的文本被識別為其他類別的樣本數,Z表示其他類別的文本是被確認為該類別的樣本數。為了驗證改進的輸入特征矩陣的有效性,將基于word2vec的CNN文本分類方法與本文的實驗進行了比較。 比較精確度P和召回率R和F1值。
實驗數據如表2所示:從表中可以看出,傳統的基于CNN的word2vec文本分類方法的平均準確度、召回率和F1分別為:0.835、0833和0.834。本文的方法是:0.920、0.922和0.921。相比之下,改進的方法具有更好的分類效果,原因在于改進的文本表示矩陣具有很強的特征表示能力,更具代表性,可以為文本分類提供更多的類別信息。
5 結論
本文改進的文本分類方法解決了傳統CNN輸入矩陣特征未充分表示并影響文本分類效果的問題。提出了一種基于詞粒度的單詞向量和一種基于語義粒度的特定改進方法。單詞矢量矩陣和主題矢量矩陣被疊加以形成可以反映詞性特征和語義特征的新矩陣。卷積神經網絡的輸入矩陣特征使其更好地用于文本表示并提高分類性能。
參考文獻:
[1] Luong, M., Pham, H., Manning, C.D.: Effective approaches to attention-based neural machine translation[C]. In: Proceedings of the 2015 Conference on Empirical Methods in Natural Language Processing,2015: 1412–1421.
[2] Kim, Y.: Convolutional neural networks for sentence classi?cation[C].The 2014 Conference on Empirical Methods in Natural Language Processing (EMNLP), 2014:1746–1751.
[3] 梁喜濤,顧磊.中文分詞與詞性標注研究[J].計算機技術與發展,2015,25(2):175-180.
[4]楊萌萌,黃浩,程露紅,等.基于LDA主題模型的短文本分類[J].計算機工程與設計,2016,37(12):3371-3377.
[5] 周飛燕,金林鵬,董軍.卷積神經網絡研究綜述[J].計算機學報,2017,40(6):1229-1251.
【通聯編輯:梁書】