陳慧 田大鋼 馮成剛



摘 要:為彌補目前國內學者只做單一算法研究且語料單一的缺陷,使用Word2vec詞向量模型結合支持向量機(SVM)、卷積神經網絡(CNN)和長短期記憶網絡(LSTM)3種不同分類算法,研究了不同中文文本分類問題,包括微博語料的多維細粒度情感分類、酒店評價的傾向性分析和新聞文本的主題分類。將3種分類模型在不同文本中的分類效果進行對比,結果顯示這3種算法對于不同的中文分類效果各有不同:不同維度的詞向量對準確率等評價指標影響很大;支持向量機模型更適合于細粒度的微博情感分類;卷積神經網絡、長短期記憶網絡算法更適合于噪聲小、文本長且規范的新聞主題分類任務。分類粒度會對算法準確性產生影響,粒度越細、任務越復雜,算法準確性越低。
關鍵詞:文本分類;Word2vec;支持向量機;卷積神經網絡;長短期記憶網絡
DOI:10. 11907/rjdk. 182489
中圖分類號:TP3-0 文獻標識碼:A 文章編號:1672-7800(2019)005-0073-06
Abstract:In order to make up for the shortcomings of a single algorithm and a single corpus, this paper uses Word2vec combined with support vector machine (SVM), convolutional neural network (CNN) and long short-term memory (LSTM) to study the classification of different Chinese text, including multi-dimensional fine-grained emotional classification of micro-blog corpus, tendentiousness analysis of hotel evaluation and thematic classification of news text. Finally, the classification effects of the three classification models in different texts are compared. The results show that word vectors of different dimensions have significant effects on accuracy and other evaluation indicators; support vector machine model is more suitable for fine grained micro-blog sentiment classification; convolutional neural network and long short-term memory are more suitable for news topic classification tasks with low noise, long text and standard; classification granularity will also affect the accuracy of the algorithm, including the finer granularity, the more complex task, the lower the accuracy of the algorithm.
Key Words:text classification;Word2vec;SVM;CNN;LSTM
0 引言
隨著互聯網技術的發展,網絡逐漸成為人們獲取信息的重要途徑。但正因為網上信息的爆炸式增長,用戶想要從海量信息中高效且準確地獲取需要的信息反而變得更加困難。如何從這些浩瀚的文本中抽取出有價值的信息成為研究熱點。文本分類利用自然語言處理、數據挖掘和機器學習等技術,有效地對不同類型的文本進行自動分類,發現其中的規律[1]。文本分類是文本挖掘的重要組成部分,其主要任務是將給定的文本集合劃分到已知的一個或多個類別集合中[2],例如將新聞文本根據主題分配到其所屬的頻道,將產品評論文本根據情感傾向分為積極和消極兩部分。
目前,文本分類任務已應用到許多領域,如情感分析(Sentiment Analysis)、主題分類(Topic Classification)、垃圾郵件檢測(Spam Detection)等[3]。文本分類的核心問題是文本表示和分類模型。在自然語言處理和文本分析問題中,詞袋(Bag of Words)和詞向量(Word Embedding)是兩種最常用的模型。傳統的文本表示利用詞袋模型將詞無序地表示到一個高維的向量空間模型中,這種做法拋棄了原文本中的語法和詞序等結構信息。Google[4]發布的一款Word2vec工具,將詞表示為K維實數向量,使用向量空間上的相似度表示文本語義上的相似度。
目前,文本分類研究主要是基于機器學習的方法[5],且主要研究同一算法在相同語料下的分類效果。唐曉波等[6]提出的一種基于旋進原則的回歸SVM情感分類模型,魏勇[7]提出一種結合關聯語義和卷積神經網絡(CNN)的文本分類方法等,均只研究了單一算法對文本分類的效果;趙明等[8]比較了SVM、CNN和LSTM模型對飲食健康文本的分類效果,只針對飲食健康文本分類,語料單一,結論不具有普適性。本文使用支持向量機(SVM)、卷積神經網絡(CNN)和長短期記憶網絡(LSTM)3種算法研究不同的中文文本分類問題,包括微博語料多維細粒度的情感分類,酒店評價的傾向性分析和新聞文本的主題分類,彌補了只做單一算法研究且語料單一的缺陷。筆者首先通過 Word2vec 模型將不同中文文本訓練成詞向量,然后將訓練成的詞向量分別輸入到支持向量機模型(SVM)和長短期記憶網絡(LSTM)、卷積神經網絡(CNN)中,3種模型通過學習得到詞向量中隱藏的分類信息并給出文本分類結果,對3種模型在不同中文文本中的分類效果進行對比。
1 文本分類技術
1.1 文本分類過程
文本分類(Text Categorization)指將未標明類別的文本分類到各自對應的類別中。基本步驟如下:①確定分類類別,即文本共分為哪幾類;②對文本作清洗、分詞等準備工作,并將人工分類過的文本作為訓練集;③確定文本表示方法;④應用具體分類模型訓練文本分類器;⑤評價分類器性能并進行文本分類。本文文本分析流程如圖1所示。
1.2 文本表示技術
文本分類的核心問題之一是文本表示。Zhang等[9]利用One-hot把文本表示為向量,即將單詞看作一個原子符號,這種表示方式容易造成維度災難且不能展示詞語之間的語義關系。Paccanaro等[10]提出了Distributed representation概念,統稱為詞向量(Word embedding)。該方法將詞語表示成一個定長連續的稠密向量,使用詞語之間的“距離”概念表示詞語的語義關系。
本文采用Word2vec工具中的CBOW模型,將中心詞窗口大小k內的詞作為上下文,求中心詞出現的概率。使用長度[m=2k]定義上下文長度,系統輸入為m個上下文單詞,用[w1,w2,?wm]表示。用[w]表示目標(輸出)單詞,將[w]可以看作d維向量,其中d是字典長度,模型的目的就是計算概率[P(w|w1,w2,?wm)]并使這些結果在訓練集上達到最大。由圖2可知模型包含輸入層、隱藏層和輸出層。輸入層有[m×d]個節點,輸入m個上下文單詞的d維one-hot向量,one-hot向量的分量只有一個為1,其余全為0,1所對應的位置就是該詞在字典中的索引。因此,可用對應于上下文位置和單詞索引表示一個輸入[xij]。具體就是輸入[xij∈{0,1}]包含兩個索引i和j,其中[i∈{1,2,?,m}]表示上下文位置,[j∈{1,2,?d}]是單詞標識符。隱藏層有p個節點,則Word2vec詞向量的維度即為p。用[h1,h2,?hp]表示隱藏節點的輸出。經多次試驗發現,在p為300時效果達到最優。輸入層和隱藏層通過[d×p]的共享權重矩陣u連接,其中[ujq]表示字典中第j個單詞到第q個隱層節點的連接。
3.2 實驗設計
如圖4所示,首先從網絡上下載和爬取NLPCC2017微博數據集、譚松波教授收集整理的酒店評價情感語料和搜狐新聞數據,然后對原始數據進行降噪清洗,并對剩余數據進行分詞處理。分詞后的數據輸入到Word2vec工具中進行訓練,輸出的詞向量構成訓練集和測試集數據。本文選取支持向量機模型(SVM)、長短期記憶網絡模型(LSTM)和卷積神經網絡模型(CNN)對數據進行訓練與測試。最后根據精度(Precision)、召回率(Recall)和F1值分別判定這3種算法的分類效果。本研究所有實驗均使用Python語言實現。
3.3 數據來源與清洗
本文數據來源:①微博數據來源于第六屆自然語言處理與中文計算會議(NLPCC2017)中的微博語料數據集,該語料主要用于識別整條微博所表達的情緒,不同于簡單的褒貶分類,它將情感分為喜、怒、哀、樂、惡5個細粒度情緒類別,屬于細粒度的情感分類問題。經過刪除重復語料、小于12字符的語句和空語句等數據清洗、降噪工作,最后選擇30 294條語料,并按4∶1比例分為訓練集和測試集;②酒店評價語料來源于譚松波教授搜集整理的酒店評價情感語料。該語料主要用于識別評價中所表達的情緒是積極還是消極的,屬于二分類問題。經過語料清洗降噪,最后選擇10 000條語料,按4∶1分為訓練集和測試集;③新聞語料來源于搜狐新聞數據(SogouCS)。搜狗新聞數據沒有直接提供分類,需要通過新聞來源網址的URL查詢其對應分類。由于新聞分布不均,所以需要去除新聞數量較少的類別,最后選取汽車、財經、IT、健康、體育、旅游、教育、軍事、文化、娛樂、時尚11個類,每個類分別抽取2 000條新聞。考慮到新聞標題意義重大,將新聞標題和新聞內容連接到一起,然后截取每條新聞前 100個字作為一條語料,將所有語料按4∶1分成訓練集與測試集。
3.4 預訓練詞向量
中文文本和英文文本在語法和分詞處理時具有較大差異,中文文本需要經歷一個分詞過程,即把連續的文字分成單獨的詞匯,而英文文本只需通過空格和標點便可將獨立的詞從原文中分離出來。因此,首先將各中文語料用jieba分詞工具進行分詞處理,然后使用Word2vec工具訓練詞向量庫,訓練參數設置如表1所示,Word2vec工具包括CBOW和Skip-Gram模型。試驗表明:3種語料中CBOW模型訓練效果較好。因此,本文采用CBOW模型進行詞向量訓練,即根據已知中心詞的上下文預測該詞出現的概率,同時本實驗設置丟棄詞頻少于3的單詞不訓練。上下文窗口設置為5,即當前詞與預測詞在一個句子中的最大距離是5。高頻詞匯的隨機降采樣配置閾值為1e-3。
試驗結果表明,不同維度的詞向量對準確率影響效果很大。在詞向量維度增加過程中,詞向量包含的語義和語法特征信息越來越多,各算法在語料中的分類準確率、召回率和F1值3個指標都出現遞增趨勢。以SVM算法微博語料分類為例,從圖5可以看出,當詞向量從50維變化到300維時,準確率、召回率、F1三個指標均增加10%以上。但隨著詞向量維度增加到400維、500維時,訓練難度和時間越來越大,準確率等評價指標卻增加緩慢,因此本實驗采用300維訓練語料的詞向量。
3.5 實驗結果及分析
將微博語料、酒店評價語料和新聞文本語料訓練成的詞向量分別輸入到支持向量機(SVM)、卷積神經網絡(CNN)和長短期記憶網絡(LSTM)中,分別通過3種模型學習得到詞向量中隱藏的情感信息并給出情感分類結果,如表2所示。
根據實驗結果統計模型的準確率、召回率等模型性能評估指標,得出如下結論:
(1)支持向量機模型(SVM)更適合于細粒度的微博情感分類。圖6、圖7給出了詞向量為300維時各分類模型對微博語料和酒店評價的分類結果。由圖可知:①在微博情感細分類任務和酒店評價二分類任務中,卷積神經網絡(CNN)和長短期記憶網絡(LSTM)的分類效果不如支持向量機(SVM)。在微博語料情感多分類任務中,由于微博語料噪聲大、文本短、口語化嚴重等原因,卷積神經網絡的卷積效果較差,長短期記憶網絡儲存遠距離信息的優勢發揮不明顯,導致分類效果不理想,準確率等評價指標遠低于SVM模型;②在酒店評價傾向性二分類任務中,雖然酒店評價和微博語料一樣具有噪聲大、口語化嚴重的特點,但由于是簡單的二分類問題,復雜程度不高,CNN和LSTM的分類效果只是略低于SVM模型。由此可見,支持向量機模型(SVM)更適合于細粒度的微博情感分類。
(2)分類粒度會對算法的準確性產生影響。對比圖4、圖5可以看出:粒度越細、任務越復雜,算法的準確性會越低。因此,酒店評價二分類任務的準確性遠高于多維細粒度的微博情感分析。原因有兩點:①在二分類問題中,積極和消極情感區分度較大,而在細粒度情感分析中,有些情感粒度之間區別度并不是很高。例如,本微博細粒度情感細分為喜、怒、哀、樂、惡5維粒度,其中喜與樂、怒與惡這類情感彼此之間會有情感交叉,區分度不是很高;②一條語料往往不只包含一種情感,大多數文本會包含幾種情感,給微博文本情感分析造成了難度。
(3)卷積神經網絡(CNN)、長短期記憶網絡(LSTM)更適合于噪聲小、文本較長且規范的新聞主題分類任務。圖8給出了詞向量為300維時各分類模型對新聞主題分類的評價結果。實驗結果表明:新聞主題多分類任務中,3種分類模型都達到了良好的分類效果,分類準確率都在82%以上。其中,CNN和LSTM的分類效果最優,均達到了85%以上,具體原因如下:不同于微博語料和酒店評價語料的噪聲大、文本短、口語化嚴重,新聞語料具有噪聲小、文本長、用詞規范的特點。與SVM模型相比,LSTM 能夠存儲遠距離信息,CNN 能夠提取不同維度的特征,這些功能能夠更好地挖掘出新聞語料詞向量中隱藏的分類信息。而SVM模型在挖掘詞向量中隱藏的分類信息時,損失了詞與詞之間的語義信息,這是在新聞主題分類任務中SVM模型性能不如CNN和LSTM模型的主要原因。
4 結語
本文使用Word2vec詞向量工具和多種算法結合,研究了不同中文文本分類問題,包括微博語料的多維細粒度情感分類、酒店評價的傾向性分析和新聞文本的主題分類。將支持向量機模型(SVM)、卷積神經網絡(CNN)和長短期記憶網絡(LSTM)3種算法在各領域文本中的分類效果進行了對比。研究表明:①不同維度的詞向量對正確率影響效果顯著,當詞向量從50維變化到300維時,準確率、召回率、F1三個指標均增加10%以上;②支持向量機模型(SVM)除燥能力更強,更適合于細粒度的微博情感分類;③卷積神經網絡(CNN)和長短期記憶網絡(LSTM)更適合于噪聲小、文本規范的新聞主題分類任務;④分類粒度會對算法的準確性產生影響。粒度越細,任務越復雜,算法的準確性會越低。今后的工作是改進Word2vec詞向量模型,使其在分類效果上得到進一步提升,以及改進機器學習算法,使其對不同領域的文本分類具有普適性。
參考文獻:
[1] RIVERO L. Encyclopedia of database technologies and applications[M]. IGI Publishing, 2005.
[2] 張彪. 文本分類中特征選擇算法的分析與研究[D]. 合肥:中國科學技術大學, 2010.
[3] 劉婷婷,朱文東,劉廣一. 基于深度學習的文本分類研究進展[J]. 電力信息與通信技術, 2018(3):59-63.
[4] 唐曉麗,白宇,張桂平,等. 一種面向聚類的文本建模方法[J]. 山西大學學報:自然科學版, 2014, 37(4):595-600.
[5] PIAO S,WHITTLE J. A feasibility study on extracting twitter users' interests using NLP tools for serendipitous connections[C].IEEE Third International Conference on Privacy, Security, Risk and Trust. IEEE, 2012:910-915.
[6] 唐曉波,嚴承希. 基于旋進原則和支持向量機的文本情感分析研究[J]. 情報理論與實踐,2013,36(1):98-103.
[7] 魏勇. 關聯語義結合卷積神經網絡的文本分類方法[J]. 控制工程,2018(2):167-172.
[8] 趙明,杜會芳,董翠翠,等. 基于Word2vec和LSTM的飲食健康文本分類研究[J]. 農業機械學報, 2017, 48(10):202-208.
[9] ZHANG W,TANG X,YOSHIDA T. Text classification with support vector machine and back propagation neural network[M].Computational Science-ICCS 2007. Springer Berlin Heidelberg,2007:150-157.
[10] PACCANARO A,HINTON G E. Learning distributed representations of concepts using linear relational embedding[J]. IEEE Transactions on Knowledge & Data Engineering, 2002, 13(2):232-244.
[11] 何躍,鄧唯茹,張丹. 中文微博的情緒識別與分類研究[J]. 情報雜志,2014(2):136-139.
[12] 劉勇,全廷偉. 基于DAG-SVMS的SVM多分類方法[J]. 統計與決策,2007(20):146-148.
[13] SANTOS C N D,GATTIT M. Deep convolutional neural networks for sentiment analysis of short texts[C].International Conference on Computational Linguistics,2014.
[14] KIM Y. Convolutional neural networks for sentence classification[J]. Eprint Arxiv, 2014(5):215-219.
[15] ELMAN J L. Finding structure in time[J]. Cognitive science,1990,14(2):179-211.
[16] HOCHREITER S,SCHMIDHUBER J. Long short-term memory[J]. Neural Computation, 1997, 9(8):1735-1780.
(責任編輯:杜能鋼)