劉測(cè) 韓家新
摘要: 文本分類(lèi)是根據(jù)文檔內(nèi)容將文檔分類(lèi)為預(yù)定義類(lèi)別的過(guò)程。文本分類(lèi)是文本檢索系統(tǒng)的必要要求,文本檢索系統(tǒng)響應(yīng)用戶(hù)的查詢(xún)檢索文本,而文本理解系統(tǒng)以某種方式轉(zhuǎn)換文本,如生成摘要,回答問(wèn)題或提取數(shù)據(jù)[1]。本文中將運(yùn)用樸素貝葉斯、支持向量機(jī)、K最近鄰、fastText這4種方法來(lái)進(jìn)行新聞文本分類(lèi),并比較了各種算法的分類(lèi)性能、復(fù)雜度等方面的優(yōu)缺點(diǎn),最后評(píng)述了精確度和時(shí)間2種分類(lèi)器常用的性能評(píng)價(jià)指標(biāo)[2]。
關(guān)鍵詞: (School of Computer, Xi'an Shiyou University, Xi'an 710065, China)
Abstract: Text classification is the process of classifying documents into predefined categories based on the content of the documents. Text classification is a necessary requirement for a text retrieval system. A text retrieval system responds to a user's query to retrieve text, and a text understanding system converts text in some way, such as generating a digest, answering a question, or extracting data[1]. This paper applies such four methods as Nave Bayes, SVM, KNN and fastText for news text classification, then compares the advantages and disadvantages in classification performance and complexity, as well as other aspects among the aboved methods. Finally, the paper comments on performance evaluation indicators commonly used in two classifiers, which are the accuracy and time[2].
引言
為大量數(shù)據(jù)集建立快速準(zhǔn)確的分類(lèi)器是數(shù)據(jù)挖掘和知識(shí)發(fā)現(xiàn)的重要任務(wù)。隨著互聯(lián)網(wǎng)的飛速發(fā)展,網(wǎng)上涌現(xiàn)海量的文本文件,而且每天都在不停增長(zhǎng)[3]。而這些文件中包含著大量容易獲取的信息。從這些文本中獲取信息,人工的方式耗時(shí)且準(zhǔn)確率低,因此文本分類(lèi)技術(shù)即已尤顯其在該類(lèi)技術(shù)研發(fā)上的基礎(chǔ)高效作用。本文中運(yùn)用了4種方法對(duì)文本進(jìn)行分類(lèi)處理,數(shù)據(jù)集是從網(wǎng)易新聞爬取的各類(lèi)主題文本集,運(yùn)用的方法具體涉及了樸素貝葉斯(Nave Bayes, NB)、支持向量機(jī)(Support Vector Machine, SVM)、K最近鄰(K-Nearest Neighbor, KNN)和fastText,并最終針對(duì)4種方法在精確度和時(shí)間消耗性能方面展開(kāi)了研究比較與分析。
1文本分類(lèi)
分類(lèi)問(wèn)題在數(shù)據(jù)庫(kù)、數(shù)據(jù)挖掘和信息檢索領(lǐng)域已經(jīng)獲得了日趨廣泛的研究應(yīng)用。這里,關(guān)于分類(lèi)問(wèn)題的定義可表述為:
研究中有一組訓(xùn)練記錄D={X1,…,Xn},每個(gè)記錄都具有對(duì)應(yīng)的從{1…k}索引的k個(gè)不同離散值集合中的類(lèi)別值的標(biāo)記。訓(xùn)練數(shù)據(jù)將用于構(gòu)建分類(lèi)模型,并將基礎(chǔ)記錄中的特征與類(lèi)別標(biāo)簽之一相關(guān)聯(lián)[4]。對(duì)于未知類(lèi)別的給定測(cè)試數(shù)據(jù),使用訓(xùn)練模型來(lái)預(yù)測(cè)此實(shí)例的類(lèi)別標(biāo)簽。在分類(lèi)問(wèn)題的硬版本中,特定的標(biāo)簽將明確分配給實(shí)例,而在分類(lèi)問(wèn)題的軟版本中,概率值將分配給測(cè)試實(shí)例。分類(lèi)問(wèn)題的其它變化允許對(duì)不同類(lèi)別的選擇構(gòu)建排序測(cè)試實(shí)例,或允許將多個(gè)標(biāo)簽分配給測(cè)試實(shí)例[5]。同時(shí)文本分類(lèi)過(guò)程需要對(duì)文本數(shù)據(jù)進(jìn)行分詞、去停止詞等預(yù)處理,接著將選用特征提取和特征加權(quán),而后提送訓(xùn)練環(huán)節(jié)得到分類(lèi)器后,再對(duì)測(cè)試集開(kāi)啟測(cè)試,最后是對(duì)分類(lèi)器性能進(jìn)行評(píng)估。
2相關(guān)技術(shù)
2.1文本預(yù)處理
在本文實(shí)驗(yàn)中,文本預(yù)處理分為2步。對(duì)其內(nèi)容可闡釋如下。
(1)分詞。將漢字序列切分成單個(gè)獨(dú)立的詞,實(shí)驗(yàn)中使用的是日文分詞器MeCab。該分詞系統(tǒng)是基于條件隨機(jī)場(chǎng)的模型,解析精度很高。據(jù)分析可知,中文和日文有著相似的分詞需求,因此MeCab 對(duì)于中文處理而言,則呈現(xiàn)出良好的借鑒價(jià)值。
(2)去停止詞。停止詞就是那些沒(méi)有真實(shí)意義,或者當(dāng)句子中去除這些詞,也不會(huì)改變句子含義的詞,例如:“的”、“了”、“啊”等。將其去除后,可以使文檔中詞的數(shù)量大幅減少,這樣在實(shí)驗(yàn)中數(shù)據(jù)規(guī)模和計(jì)算時(shí)間均將達(dá)到顯著降低效果[6]。
2.2SVM
在機(jī)器學(xué)習(xí)中,支持向量機(jī)(Support Vector Machine,SVM)是一個(gè)有監(jiān)督學(xué)習(xí)模型,能夠很好地解決小樣本、非線(xiàn)性及高維模式識(shí)別等問(wèn)題,并能夠推廣應(yīng)用到函數(shù)擬合等其它機(jī)器學(xué)習(xí)問(wèn)題中[7]?,F(xiàn)在,就已成功地運(yùn)用于分類(lèi)和回歸研究中。SVM的核心思想,旨在找到一個(gè)線(xiàn)性分類(lèi)的最佳超平面,對(duì)此將給出如下的數(shù)學(xué)表達(dá)式:fx=xwT+b=0(1)為了確定w和b,首先通過(guò)2個(gè)分類(lèi)的最近點(diǎn),推導(dǎo)得到f(x)的約束條件;有了約束條件,就可以運(yùn)用拉格朗日乘子法和KKT條件來(lái)探尋問(wèn)題解答,此時(shí)該研究就轉(zhuǎn)換為求解拉格朗日乘子αi和b。對(duì)于異常點(diǎn)的情況,加入松弛變量ξ進(jìn)行處理;這里就使用SMO來(lái)求得拉格朗日乘子αi和b。在分類(lèi)器中可以忽略αi=0的情況;同時(shí)也不用關(guān)注w的運(yùn)算求值。至此,研究可以使用拉格朗日乘子αi和b作為分類(lèi)器的參數(shù),而對(duì)于非線(xiàn)性分類(lèi)的問(wèn)題,一般多會(huì)采用映射到高緯度、以及調(diào)取核函數(shù)的具體方法[8]。
2.3fastText
在文本處理領(lǐng)域,深度學(xué)習(xí)已掀起了研發(fā)熱潮。但是因其在訓(xùn)練以及測(cè)試時(shí)間上的局限,也就限制了深度學(xué)習(xí)在大數(shù)據(jù)集上的拓展應(yīng)用。fastText的出現(xiàn)正好彌補(bǔ)了這一不足,不僅在精度上可以和深度學(xué)習(xí)相媲美,而且時(shí)間上也比深度學(xué)習(xí)快了多個(gè)數(shù)量級(jí)。
fastText的架構(gòu)和word2vec中的CBOW的架構(gòu)類(lèi)似,對(duì)其實(shí)現(xiàn)訓(xùn)練就是一個(gè)生成Huffman樹(shù)的過(guò)程。在訓(xùn)練樣本時(shí),根據(jù)每個(gè)類(lèi)別出現(xiàn)的次數(shù)設(shè)置權(quán)重,再重新構(gòu)建Huffman樹(shù),出現(xiàn)次數(shù)多的類(lèi)別的樣本,路徑就短,相反路徑就長(zhǎng)。用輸入層中的詞和詞組構(gòu)成特征向量,再將特征向量通過(guò)線(xiàn)性變換映射到隱藏層,隱藏層通過(guò)解出最大似然函數(shù),然后根據(jù)每個(gè)類(lèi)別的權(quán)重和模型參數(shù)構(gòu)建Huffman樹(shù),將Huffman樹(shù)作為輸出。本文設(shè)計(jì)的3層模型架構(gòu)如圖1所示[9]。
2.3.1訓(xùn)練模型的過(guò)程
當(dāng)分類(lèi)的數(shù)量堪稱(chēng)巨大時(shí),線(xiàn)性分類(lèi)的計(jì)算量也趨于可觀,運(yùn)行的時(shí)間復(fù)雜度即為O(kh)。其中,k表示分類(lèi)的數(shù)量,h表示文本的密度。
為了降低時(shí)間復(fù)雜度,fastText使用基于霍夫曼編碼的分層softmax將時(shí)間復(fù)雜度降低到O(hlog2(k))。
fastText使用一個(gè)低維度向量來(lái)對(duì)文本進(jìn)行表征,通過(guò)匯總文本中出現(xiàn)的詞向量來(lái)演繹獲得。在 fastText 中,一個(gè)低維度向量與每個(gè)單詞都相關(guān),隱藏融合在不同類(lèi)別中的所有分類(lèi)器中進(jìn)行共享,使得文本信息能夠在不同類(lèi)別中共同使用。在 fastText中也使用向量表示單詞 n-gram來(lái)將局部詞序考慮在內(nèi),這樣就可在相當(dāng)程度上提高fastText的計(jì)算效率[11]。
3實(shí)驗(yàn)
3.1數(shù)據(jù)集
實(shí)驗(yàn)中的數(shù)據(jù)是從網(wǎng)易新聞上爬取,數(shù)據(jù)涵蓋時(shí)事、星座、經(jīng)濟(jì)、教育、時(shí)尚、游戲、房產(chǎn)、彩票、科技、體育,總共10個(gè)類(lèi)別,每篇新聞文本數(shù)據(jù)中都包含詞匯、停用詞、數(shù)字和非文字字符。對(duì)于本次實(shí)驗(yàn),每篇新聞都是通過(guò)文本預(yù)處理的。每個(gè)類(lèi)別擷取了2 000篇新聞數(shù)據(jù)。在Nave Bayes、KNN、SVM的實(shí)驗(yàn)中,則將將數(shù)據(jù)分成10個(gè)文件夾,每個(gè)文件夾統(tǒng)指一種新聞?lì)悇e,每種新聞?lì)悇e中是2 000篇同類(lèi)的新聞文本。考慮到上述3種方法都是監(jiān)督學(xué)習(xí)的分類(lèi)算法,如此梳理數(shù)據(jù)后,每個(gè)文件夾的名字就表示新聞的類(lèi)別,相當(dāng)于標(biāo)簽。而在fastText的實(shí)驗(yàn)中,研究將所有的新聞文本數(shù)據(jù)存在一個(gè)TXT文件中,但在每篇新聞的末尾加上諸如(_label_house,_label_affairs,_label_edu,……)形式的標(biāo)簽。在本次實(shí)驗(yàn)中,分別計(jì)算了各種方法在文本分類(lèi)中的精度和時(shí)間,比較各種分類(lèi)方法的優(yōu)劣。并在實(shí)驗(yàn)中控制特征數(shù)的數(shù)量,通過(guò)特征選擇獲得5個(gè)新的數(shù)據(jù)集。進(jìn)而對(duì)照Nave Bayes、KNN、SVM分類(lèi)方法在不同特征數(shù)的情況下的分類(lèi)性能,最終還將與fastText的分類(lèi)效果進(jìn)行比較。
3.2實(shí)驗(yàn)結(jié)果
在本次實(shí)驗(yàn)中,使用監(jiān)督學(xué)習(xí)算法來(lái)分析網(wǎng)易新聞的文本數(shù)據(jù)。選擇了3種分類(lèi)算法,也就是NB、KNN、SVM。而將fastText分類(lèi)的實(shí)驗(yàn)結(jié)果與這些方法通過(guò)比較以判定評(píng)估算法性能。在實(shí)驗(yàn)過(guò)程中,使用Python編程來(lái)部署操控實(shí)驗(yàn)。對(duì)于分類(lèi)算法的配置,KNN中的距離測(cè)量類(lèi)型定義為歐幾里得距離。所有分類(lèi)方法都在5個(gè)數(shù)據(jù)集上進(jìn)行模擬,每個(gè)方法對(duì)每類(lèi)數(shù)據(jù)迭代運(yùn)行5次設(shè)置為選擇最佳精度。所有方法將新聞文本分為10組,可以計(jì)算出分類(lèi)方法對(duì)每類(lèi)文本的結(jié)果分類(lèi)精度和全部文本的分類(lèi)精度。將fastText的最終分類(lèi)結(jié)果與NB、KNN和SVM的設(shè)計(jì)輸出進(jìn)行比較,實(shí)驗(yàn)結(jié)果可見(jiàn)表1。
在NB、KNN和SVM之間,對(duì)于具有10 000個(gè)特征的數(shù)據(jù)集,SVM可以達(dá)到77.4%的最佳精度,KNN表現(xiàn)最差、只有63.7%的精度。但在時(shí)間上卻是Nave Bayes占據(jù)首位。此外,對(duì)于具有13 000個(gè)特征的數(shù)據(jù)集,SVM也可以達(dá)到77.3%的最佳精度,時(shí)間上還是將首推Nave Bayes為最優(yōu)。而SVM可以在具有18 000個(gè)特征和21 000個(gè)特征的數(shù)據(jù)組分別取得78.2%和78.8%的分類(lèi)精度。然后,對(duì)于具有全部66 352個(gè)特征的數(shù)據(jù)集,Nave Bayes可以實(shí)現(xiàn)80.2%的最高精度,且僅需耗費(fèi)了0.136 s,用時(shí)最少。圖1就顯示了從所有5個(gè)數(shù)據(jù)集中獲得的精度值的平均值。而且,實(shí)驗(yàn)結(jié)果還表明,對(duì)于網(wǎng)易新聞文本數(shù)據(jù),在NB、KNN和SVM這3種方法中,SVM已經(jīng)運(yùn)行創(chuàng)造了相對(duì)最佳平均準(zhǔn)確率,數(shù)值可達(dá)78.14%。但在本次實(shí)驗(yàn)中通過(guò)運(yùn)用fastText來(lái)進(jìn)行分類(lèi),比其它3種方法的精確度都要高,在精度上提升至95.35%,而且時(shí)間也更為迅速,fastText在文本分類(lèi)方面有著很好的表現(xiàn)。表2即給出了fastText在66 352個(gè)特征時(shí)的分類(lèi)效果。圖2又進(jìn)一步研究了應(yīng)用于5個(gè)數(shù)據(jù)集的每種分類(lèi)算法的運(yùn)行時(shí)間。從圖3則可以看出,當(dāng)特征數(shù)量減少時(shí),所有算法的運(yùn)行時(shí)間都隨即有所降低。
4結(jié)束語(yǔ)
在本文中,研究爬取了網(wǎng)易新聞的各類(lèi)新聞文本數(shù)據(jù),總共2萬(wàn)余條數(shù)據(jù)組成實(shí)驗(yàn)數(shù)據(jù)集,并對(duì)每條文本數(shù)據(jù)進(jìn)行標(biāo)記,分成10類(lèi)小的數(shù)據(jù)集。運(yùn)用了SVM、KNN、NB和fastText這4種分類(lèi)方法對(duì)部分?jǐn)?shù)據(jù)進(jìn)行分類(lèi),并對(duì)各分類(lèi)方法的結(jié)果提供了運(yùn)行性能上的比較分析,找出比較優(yōu)異的分類(lèi)方法。通過(guò)本次實(shí)驗(yàn),研究發(fā)現(xiàn)fastText在處理文本分類(lèi)時(shí),不論在精確度、還是在時(shí)間上都較其它3種分類(lèi)方法有更加突出的表現(xiàn)。而且在分類(lèi)過(guò)程中也還發(fā)現(xiàn),文本特征的數(shù)量對(duì)實(shí)驗(yàn)的精度和時(shí)間也有一定的影響,因此在未來(lái)工作中,則將在特征選擇上增加研究投入,以期能夠顯著提升分類(lèi)研究的最終結(jié)果精度。
參考文獻(xiàn)
[1] 薛春香,張玉芳. 面向新聞?lì)I(lǐng)域的中文文本分類(lèi)研究綜述[J]. 圖書(shū)情報(bào)工作,2013,57(14):134-139.
[2] 奉國(guó)和. 文本分類(lèi)性能評(píng)價(jià)研究[J]. 情報(bào)雜志,2011,30(8):66-70.
[3] 靳小波. 文本分類(lèi)綜述[J]. 自動(dòng)化博覽,2006(S1):24,26,28,29.
[4] 張征杰,王自強(qiáng). 文本分類(lèi)及算法綜述[J]. 電腦知識(shí)與技術(shù),2012,8(4):825-828,841.
[5] AGGARWAL C C, ZHAI Chengxiang. A survey of text classification algorithms[M]. Mining text data. Boston, MA:Springer, 2012:163-222.
[6] 陳祎荻,秦玉平. 基于機(jī)器學(xué)習(xí)的文本分類(lèi)方法綜述[J]. 渤海大學(xué)學(xué)報(bào)(自然科學(xué)版),2010,31(2):201-205.
[7] 崔建明,劉建明,廖周宇. 基于SVM算法的文本分類(lèi)技術(shù)研究[J]. 計(jì)算機(jī)仿真,2013,30(2):299-302,368.
[8] PAL M, FOODY G M. Feature selection for classification of hyperspectral data by SVM[J]. IEEE Transactions on Geoscience & Remote Sensing, 2010, 48(5):2297-2307.
[9] JOULIN A, GRAVE E, BOJANOWSKI P, et al. Bag of tricks for efficient text classification[J]. arXiv preprint arXiv:1607.01759,2016.
[10]機(jī)器之心. fastText原理與應(yīng)用 [EB/OL]. [2018-01-26]. http://www.sohu.com/a/219080991_129720.
[11]王藝杰. 基于Fasttext的防控目標(biāo)分類(lèi)實(shí)現(xiàn)[J]. 中國(guó)公共安全(學(xué)術(shù)版),2018(1):29-32.
[12]MANEVITZ L M, YOUSEF M. One-class svms for document classification[J]. Journal of Machine Learning Research, 2001, 2(1):139-154.