陳 杰,陳 彩,梁 毅
(北京工業(yè)大學(xué) 信息學(xué)部,北京 100124)
基于Word2vec的文檔分類方法①
陳 杰,陳 彩,梁 毅
(北京工業(yè)大學(xué) 信息學(xué)部,北京 100124)
文檔的特征提取和文檔的向量表示是文檔分類中的關(guān)鍵,本文針對這兩個(gè)關(guān)鍵點(diǎn)提出一種基于word2vec的文檔分類方法.該方法根據(jù)DF采集特征詞袋,以盡可能的保留文檔集中的重要特征詞,并且利用word2vec的潛在語義分析特性,將語義相關(guān)的特征詞用一個(gè)主題詞乘以合適的系數(shù)來代替,有效地濃縮了特征詞袋,降低了文檔向量的維度;該方法還結(jié)合了TF-IDF算法,對特征詞進(jìn)行加權(quán),給每個(gè)特征詞賦予更合適的權(quán)重.本文與另外兩種文檔分類方法進(jìn)行了對比實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果表明,本文提出的基于word2vec的文檔分類方法在分類效果上較其他兩種方法均有所提高.
文檔向量;文檔特征提取;文檔分類;TF-IDF;word2vec
隨著互聯(lián)網(wǎng)的發(fā)展,越來越多的信息來自于互聯(lián)網(wǎng),如何有效的挖掘、利用這些海量信息,尤其海量文檔信息,將成為關(guān)鍵,對文檔進(jìn)行有效分類可以縮小信息的規(guī)模,因此,精準(zhǔn)的文檔分類方法依然是當(dāng)前眾多科研工作者所研究的熱點(diǎn)問題[1-3].
對海量文檔進(jìn)行分類涉及兩個(gè)難點(diǎn)問題:文檔的特征提取和文檔的向量表示[4].要想對不同格式的海量文檔進(jìn)行有效分類,首先要提取出每篇文檔的主題信息,通常的做法是提取文檔的主題特征詞并賦予這些特征詞合適的權(quán)重.要想對文檔進(jìn)行分類,單純的文字信息是無法完成分類工作的,最常用的方法是將文檔映射為一個(gè)高維數(shù)字向量,進(jìn)而再對向量進(jìn)行分類[5].
目前,眾多科研工作者對文本分類都嘗試做了很多改進(jìn)工作,比如,文獻(xiàn)[6]中,李學(xué)明等人提出TFIDFIGE算法,在實(shí)驗(yàn)中選取信息增益值前1000的詞做特征詞袋,用TFIDFIGE算法計(jì)算權(quán)重,為每篇文檔建立一個(gè)1000維的數(shù)字向量,分類器選用為KNN,進(jìn)而完成海量文檔的分類工作.該方法很好的解決了文檔中特征詞的分布權(quán)重問題,但容易引起維度災(zāi)難,比如:文檔集規(guī)模非常龐大,那么,特征詞袋也需要更加龐大,信息增益值前1000的詞將不能覆蓋整個(gè)文檔集的特征,隨之建立的文檔向量的維度也將大幅提升,且該方法形成的文檔向量將是高維的、稀疏的,對后期分類的時(shí)間復(fù)雜度將有較大影響;文獻(xiàn)[7]中,唐明等人將分詞結(jié)果直接作為特征詞袋,用word2vec分析得到詞袋中每個(gè)特征詞的詞向量,并把每篇文檔中的特征詞向量通過TF-IDF加權(quán)累加而成文檔向量,最終把這些文檔向量作為分類器的輸入,進(jìn)而完成海量文檔的分類工作.該方法很好的解決了文檔向量的維度災(zāi)難,但忽略了特征詞的語義特征,比如:有兩篇文檔,一篇文檔有A、B、C三個(gè)特證詞,另一篇有D、E兩個(gè)特征詞,其中A、B、C、D、E五個(gè)特征詞主題且語義均不相關(guān),使用文獻(xiàn)[7]中的方法有可能出現(xiàn)Vec(A)*TFIDF(A)+ Vec(B)* TFIDF(B)+ Vec(C)* TFIDF(C)=Vec(D)* TFIDF(D)+ Vec(E)* TFIDF(E)的情況,這樣兩篇主題不相關(guān)的文檔就會(huì)被分到一個(gè)類別中.
綜上,本文在總結(jié)前人研究經(jīng)驗(yàn)的基礎(chǔ)上,提出一種基于word2vec的文檔分類方法,該方法的優(yōu)勢在于:① 采用DF采集特征詞袋,盡可能的保留文檔集中的重要特征詞;② 結(jié)合word2vec,利用其潛在的語義分析特性濃縮特征詞袋,將語義相關(guān)的特征詞用一個(gè)主題詞乘以合適的系數(shù)來代替,有效降低了文檔向量的維度;③ 結(jié)合TF-IDF算法進(jìn)行特征詞加權(quán),給每個(gè)特征詞賦予更合適的權(quán)重.
到目前為止,在文檔分類和自然語言處理領(lǐng)域,最直觀也是最常用的詞的表示方法就是詞袋模型.構(gòu)建詞袋模型之前,往往會(huì)收集一個(gè)忽略詞順序的特征詞袋,并以特征詞袋中詞的個(gè)數(shù)作維數(shù),使向量的每一維代表一個(gè)特征詞,構(gòu)建高維詞向量,并輔以特征詞的出現(xiàn)次數(shù)或特征詞的其他特征權(quán)重作為該維向量的值[8].
舉例說明,如果收集的特征詞袋為{西紅柿、玉米、小麥、番茄……},詞袋大小為100,用詞的出現(xiàn)次數(shù)做權(quán)重.假設(shè)某篇文檔中只出現(xiàn)過“西紅柿”一詞,且“西紅柿”出現(xiàn)過 10 次,則該文檔可表示為[10,0,0,0,0,0,0……];假設(shè)某篇文檔中只出現(xiàn)過“番茄”一詞,且“番茄”出現(xiàn)過 8 次,則該篇文檔可表示為[0,0,0,8,0,0,0……].
詞袋模型會(huì)把每篇文檔表示為一個(gè)維度統(tǒng)一但長度很長的向量,其中絕大多數(shù)元素為0,向量中的非0維度就代表當(dāng)前文檔中出現(xiàn)過該特征詞.這種表示方法除了形成向量過于稀疏的問題,還存在一個(gè)重要的問題:任意兩個(gè)詞之間都是孤立的,僅從向量中看不出兩個(gè)詞是否有關(guān)系,即使是“西紅柿”和“番茄”這樣的同義詞也不能幸免于難.
首先,介紹三個(gè)與TF-IDF算法相關(guān)的概念:TF、DF、IDF.
TF即Term Frequency,是指某個(gè)特征詞在一篇文檔中出現(xiàn)的頻率,TF可以很好的表示某個(gè)特征詞對一篇文檔的重要程度,其計(jì)算公式可描述為:
式(1)中,分子為特征詞word在本篇文檔中出現(xiàn)的次數(shù),分母為本篇文檔一共包含的詞的個(gè)數(shù).
DF 即 Document Frequency,是指某個(gè)特征詞在文檔集中出現(xiàn)的頻率,DF可以很好的表示某個(gè)特征詞在文檔集中的分布特征,其計(jì)算公式可描述為:
式(2)中,分子為文檔集中包含特征詞word的文檔數(shù)量,分母為文檔集中文檔的總篇數(shù).
IDF 即 Inverse Document Frequency,是指逆向文檔頻率,它可以很好的表示某個(gè)特征詞的類別區(qū)分能力,其計(jì)算公式可描述為:
因此,Salton 在 1973 年提出了 TF-IDF (Term Frequency-Inverse Documentation Frequency)算法[9],并被論證了在信息檢索領(lǐng)域的有效性[10].TF-IDF算法是目前最常用的特征詞權(quán)重計(jì)算方法,其計(jì)算公式可描述為:
Word2vec是由Mikolov提出的一種可以快速有效訓(xùn)練詞向量的模型,word2vec吸收了Bengio在文獻(xiàn)[11]中提出的 NNLM 模型 (Neural Network Language Model)和Hinton在文獻(xiàn)[12]中提出的logLinear模型的優(yōu)點(diǎn),使用 Distributed Representation 作為詞向量的表示方式[13].其基本思想是:通過訓(xùn)練,將每個(gè)詞映射成K維實(shí)數(shù)向量(K一般為模型中的超參數(shù)),通過詞向量之間的距離來判斷它們之間的語義相似度,采用一個(gè)三層的神經(jīng)網(wǎng)絡(luò),分別為:輸入層-投影層-輸出層.并根據(jù)詞頻生成Huffman編碼 ,使得所有詞頻相似的詞隱藏層激活的內(nèi)容基本一致,使出現(xiàn)頻率越高的詞語激活的隱藏層數(shù)目越少,有效的降低了計(jì)算的復(fù)雜度,從而大大提高了word2vec處理效率,Mikolov曾在在文獻(xiàn)[14]中指出,一個(gè)優(yōu)化的單機(jī)版本一天可訓(xùn)練上千億詞.
Word2vec除了擁有很高的處理效率外,經(jīng)word2vec訓(xùn)練出的詞向量還有一個(gè)重要特征:可以揭示特征詞之間的潛在聯(lián)系.使用word2vec訓(xùn)練出的詞向量,其每一維可以表示該特征詞的一個(gè)潛在特征,該特征包含但不限于該特征詞所在的句子結(jié)構(gòu)、上下文語義.通過word2vec訓(xùn)練得到的詞向量,根據(jù)余弦夾角公式,如式(5),可以很容易地推算出在語義上與某個(gè)特征詞最為相近的其他特征詞.
本文提出的基于word2vec的文檔分類方法,共可分為三個(gè)階段:預(yù)處理階段、特征提取-建向量階段、分類階段,總流程圖如圖1所示.
預(yù)處理階段主要有兩項(xiàng)任務(wù):去掉文檔中無用的格式和停詞、進(jìn)行文檔分詞.
從互聯(lián)網(wǎng)上采集到的文檔,大部分是格式不一、排版不齊的文檔,這些文檔中往往會(huì)包含大量html標(biāo)簽、空行、標(biāo)點(diǎn),為提高后續(xù)任務(wù)的效率與精準(zhǔn)度,必須把這些無用的格式過濾掉.眾所周知,文檔的行文中往往還會(huì)含有一些“的”、“了”、“嗎”、“等”……這些出現(xiàn)頻率極高但又毫無語義的詞匯,即停詞[15,16],停詞對后續(xù)任務(wù)的執(zhí)行效率和精準(zhǔn)度也是有很大影響的,所有也必須過濾掉.
經(jīng)由前一個(gè)步驟的處理,文檔集的規(guī)模會(huì)縮小三分之一左右,大大提高了文檔分詞的效率.接下來便是采用分詞器對文檔進(jìn)行分詞操作,文檔分詞對于下一個(gè)階段的特征詞袋建立和建立文檔向量至關(guān)重要,文檔分詞是將文檔集變?yōu)閿?shù)字向量集的先決條件.
圖1 總流程圖
經(jīng)由上一個(gè)階段處理,文檔集中的每一篇文檔都變成了一個(gè)詞集doc={word|word∈doc}={word1、word2、word3……}.本階段主要有三項(xiàng)任務(wù):建立特征詞袋、濃縮特征詞袋、建立文檔向量.
在第二節(jié)中已經(jīng)介紹到,DF即某個(gè)特征詞在文檔集中出現(xiàn)的頻率,在該階段的第一個(gè)任務(wù)便是根據(jù)特征詞的DF建立特征詞袋,以盡可能的保留文檔集中的重要特征.某個(gè)特征詞的DF值越大說明該特征詞在文檔集中分布越廣泛,同時(shí)也說明該特征詞的個(gè)性描述能力越低.DF 的取值范圍為[1/n,1],其中:
DF取值為1時(shí),表示文檔集中每篇文檔都包含該特征詞;DF不可能取0值,只可能無限接近于0,若某個(gè)特征詞的DF等于1/n,其中n為文檔集中文檔的總篇數(shù),則表示該特征詞只在一篇文檔中出現(xiàn)過.顯然,若要選取即能兼顧覆蓋率又能保證特征描述力的特征詞袋,DF=1和DF=1/n的特征詞是均不能放入詞袋的.根據(jù)經(jīng)驗(yàn)值及實(shí)驗(yàn)論證,能放入特征詞袋的特征詞DF 的取值范圍一般為:[0.1/CN,1/2],其中CN為訓(xùn)練集數(shù)據(jù)分類結(jié)果中類簇的個(gè)數(shù),即放入特征詞袋的特征詞至少保證在某類文檔集的十分之一的文檔中都出現(xiàn)過,同時(shí)又不會(huì)在全部文檔集的一半以上的文檔中出現(xiàn)過,這樣既可以保證特征詞的“個(gè)性”,也可以很好兼顧特征詞的“共性”.
該階段的第二個(gè)任務(wù)是濃縮特征詞袋.將上一個(gè)步驟得到的詞袋中的特征詞輸入進(jìn)word2vec,利用word2vec將特征詞集訓(xùn)練成詞向量,并將這些詞向量進(jìn)行劃分聚類,選取詞向量之間的夾角余弦做相似度度量.當(dāng)兩個(gè)詞向量夾角余弦等于1時(shí),這兩個(gè)特征詞完全重復(fù);當(dāng)兩個(gè)詞向量夾角的余弦值接近于1時(shí),兩個(gè)特征詞相似;兩個(gè)詞向量夾角的余弦越小,兩個(gè)特征詞越不相關(guān).通過word2vec的訓(xùn)練和聚類劃分,語義相似或相近的特征詞會(huì)聚到一個(gè)類簇中,因此,幾個(gè)語義相關(guān)的特征詞,可以從中選取一個(gè)特征詞乘以與其的夾角余弦值來表示,如公式(7)所示:
舉例說明,經(jīng) word2vec 訓(xùn)練,“番茄”的詞向量與“西紅柿”的詞向量夾角余弦為0.73(訓(xùn)練結(jié)果與輸入詞集有關(guān)).顯然,特征詞袋以及文檔集中的“番茄”可以用“西紅柿”乘以 0.73 來代替,以此類推,利用 word2vec這一優(yōu)良特性可以大幅縮減特征詞袋的大小,有效預(yù)防后期文檔向量維度災(zāi)難的發(fā)生.
該階段的最后一個(gè)任務(wù)的是建立文檔向量.首先,依據(jù)TF-IDF詞權(quán)算法計(jì)算出特征詞袋中每個(gè)特征詞在每篇文檔中的權(quán)重,然后以每個(gè)特征詞為維度建立文檔向量,文檔向量的維度等于特征詞袋中特征詞的個(gè)數(shù).至此,文檔不再由文字或詞語來描述,而是由數(shù)字來描述,文檔集由文字的集合變成了數(shù)字向量的集合,如式(8)所示,方便了后期的分類計(jì)算.
本階段的主要任務(wù)是對文檔向量集進(jìn)行分類.
分類階段的相似度計(jì)算公式為:
相似度計(jì)算公式采用歐式距離乘以夾角余弦的倒數(shù),這樣既考慮了向量間的空間距離大小又兼顧了向量間的夾角方向問題,防止了距離小但方向反向的向量被分類到一個(gè)類簇中.
該階段完成后,相似度高的文檔便會(huì)被分到一個(gè)類簇中.至此,便完成了對文檔的分類工作.
針對上文提出的基于word2vec的文檔分類方法進(jìn)行了實(shí)驗(yàn)設(shè)計(jì),本文實(shí)驗(yàn)選用的數(shù)據(jù)集為搜狗中文實(shí)驗(yàn)室的全網(wǎng)中文新聞數(shù)據(jù)集——“SogouCA”精簡版[17],該數(shù)據(jù)集采集了來自多家新聞?wù)军c(diǎn)9個(gè)欄目的分類新聞數(shù)據(jù),共17910篇文檔,實(shí)驗(yàn)數(shù)據(jù)集中的文檔分類情況如表1所示.
表1 “SogouCA”數(shù)據(jù)集分布
本文實(shí)驗(yàn)的預(yù)處理階段,分詞器選用的是中國科學(xué)院的漢語詞法分析系統(tǒng)ICTCLAS(Institute of Computing Technology Chinese Lexical Analysis System)[18].在最終的分類階段,選用 KNN(K=10)和SVM兩種分類器分別進(jìn)行了分類實(shí)驗(yàn),以消除不同分類器對分類結(jié)果的影響,并且采用五分交叉驗(yàn)證法,把數(shù)據(jù)量隨機(jī)分成5份,每次取其中4份作為訓(xùn)練集,剩余1分做測試集,最終取5次實(shí)驗(yàn)結(jié)果的平均值.
本文實(shí)驗(yàn)采用C++作為算法的實(shí)現(xiàn)語言,開發(fā)環(huán)境為 Visual Studio 2013,將本文提出的文檔分類方法同文獻(xiàn)[6]中的方法和文獻(xiàn)[7]中的方法進(jìn)行了對比實(shí)驗(yàn).
本文實(shí)驗(yàn)引入三個(gè)文本分類領(lǐng)域常用的評價(jià)指標(biāo),即:召回率、精準(zhǔn)率和F-measure值[19].
其中,召回率(Recall)是指某個(gè)類簇內(nèi)同屬于某類別文檔的數(shù)量與文檔集中本屬于該類別文檔的數(shù)量的比值,一般用字母R表示;準(zhǔn)確率(Precision)是指某個(gè)類簇內(nèi)同屬于某類別文檔的數(shù)量與該類簇內(nèi)所有文檔的數(shù)量的比值,一般用字母P表示;F-measure值是召回率(R)和準(zhǔn)確率(P)的幾何平均值,是用來綜合評價(jià)文檔的分類效果的一種指標(biāo),其計(jì)算公式可描述為:
17910篇文檔經(jīng)過去停詞、分詞器分詞后,特征詞袋中不重復(fù)的特征詞有84874個(gè),根據(jù)DF排序,提取DF大于0.01且小于0.5的特征詞,共提取特征詞2493個(gè),經(jīng)word2vec濃縮后,特征詞袋還有340個(gè)特征詞,大大消除了后期文檔向量的維度災(zāi)難隱患.
表2 文獻(xiàn)[6]分類方法效果 (單位:%)
表3 文獻(xiàn)[7]分類方法效果 (單位:%)
表4 本文分類方法效果 (單位:%)
從表2、表3、表4中可以看出,排除分類器因素,本文提出的文檔分類方法在召回率上,較文獻(xiàn)[6]中的分類方法提高了6.82%,較文獻(xiàn)[7]中的分類方法提高了4.15%;在準(zhǔn)確率上,較文獻(xiàn)[6]中的分類方法提高了5.71%,較文獻(xiàn)[7]中的分類方法提高了 2.12%;在 F-measure值上,較文獻(xiàn)[6]中的分類方法提高了6.29%,較文獻(xiàn)[7]中的分類方法提高了3.14%.因此,本文提出的基于word2vec的文檔分類方法在分類效果上均優(yōu)于其他兩種方法,證明了本文提出的方法在文檔分類方面的有效性.
本文在分析、總結(jié)前人研究經(jīng)驗(yàn)的基礎(chǔ)上,針對文檔分類中的兩個(gè)難點(diǎn)——文檔的特征提取和文檔的向量表示,提出了一種基于word2vec的文檔分類方法.該方法根據(jù)DF采集特征詞袋,以盡可能的保留文檔集中的重要特征詞,利用word2vec的潛在語義分析特性,濃縮了特征詞袋的大小,將語義相關(guān)的特征詞用一個(gè)主題詞乘以合適的系數(shù)來代替,降低了文檔向量的維度,節(jié)約了分類階段的耗時(shí),并且該方法還結(jié)合TFIDF改進(jìn)算法,對特征詞進(jìn)行加權(quán),賦予每個(gè)特征詞合適的權(quán)重.最后,本文設(shè)計(jì)了三組對比實(shí)驗(yàn),與另外兩種文檔分類方法相比,本文提出的基于word2vec的文檔分類方法在分類效果上較其他兩種方法均有所提高.
1 Mikolov T,Chen K,Corrado G,et al.Efficient estimation of word representations in vector space.arXiv:1301.3781,2013.
2 Hwang M,Choi C,Youn B,et al.Word sense disambiguation based on relation structure.Proc.of the 2008 International Conference on Advanced Language Processing and Web Information Technology.Dalian,Liaoning,China.2008.15–20.
3 蘇金樹,張博鋒,徐昕.基于機(jī)器學(xué)習(xí)的文本分類技術(shù)研究進(jìn)展.軟件學(xué)報(bào),2006,17(9):1848–1859.
4 孫建濤.Web挖掘中的降維和分類方法研究[博士學(xué)位論文].北京:清華大學(xué),2005.
5 胡承成.基于文本向量的微博情感分析[碩士學(xué)位論文].北京:中國科學(xué)院大學(xué),2015.
6 李學(xué)明,李海瑞,薛亮,等.基于信息增益與信息熵的TFIDF 算法.計(jì)算機(jī)工程,2012,38(8):37–40.
7 唐明,朱磊,鄒顯春.基于 Word2Vec 的一種文檔向量表示.計(jì)算機(jī)科學(xué),2016,43(6):214–217,269.[doi:10.11896/j.issn.1002-137X.2016.06.043]
8 Lauly S,Boulanger A,Larochelle H.Learning multilingual word representations using a bag-of-words autoencoder.Computer Science,2014.
9 Salton G,Yu CT.On the Construction of Effective Vocabularies for Information Retrieval.Proc.of the 1973 Meeting on Programming Languages and Information Retrieval.New York,NY,USA.1973.48–60.
10 Salton G,Fox EA,Wu H.Extended boolean information retrieval.Communications of the ACM,1983,26(11):1022–1036.[doi:10.1145/182.358466]
11 Bengio Y,Ducharme R,Vincent P,et al.A neural probabilistic language model.The Journal of Machine Learning Research,2003,3(6):1137–1155.
12 Mnih A,Hinton G.Three new graphical models for statistical language modelling.Proc.of the 24th International Conference on Machine Learning.Corvalis,Oregon,USA.2007.641–648.
13 Mikolov T,Chen K,Corrado G,et al.Efficient estimation of word representations in vector space.arXiv:1301.3781,2013.
14 Mikolov T,Sutskever I,Chen K,et al.Distributed representations of words and phrases and their compositionality.Proc.of Advances in Neural Information Processing Systems 26.2013.
15 熊文新,宋柔.信息檢索用戶查詢語句的停用詞過濾.計(jì)算機(jī)工程,2007,33(6):195–197.
16 Lo RTW,He B,Ounis I.Automatically building a stopword list for an information retrieval system.Journal of Digital Information Management,2005,(3):3–8.
17 “SogouCA”語料庫.http://www.sogou.com/labs/resource/ca.php,2012.
18 Zhang HP,Yu HK,Xiong DY,et al.HHMM-based Chinese lexical analyzer ICTCLAS.Proc.of the 2nd SIGHAN Workshop on Chinese Language Processing.Sapporo,Japan.2003.184–187.
19 Anoual H,Aboutajdine D,Elfkihi S,et al.Features extraction for text detection and localization.Proc.of the 5th International Symposium on I/V Communications and Mobile Network (ISVC).Rabat,Morocco.2010.1–4.
Document Classification Method Based on Word2vec
CHEN Jie,CHEN Cai,LIANG Yi
(Faculty of Information Technology,Beijing University of Technology,Beijing 100124,China)
The feature extraction and the vector representation are the key points in document classification.In this paper,we propose a classification method based on word2vec for the two key points.This method builds the bag of feature words by Document Frequency (DF)to retain the important feature of the document as much as possible.It takes advantage of the Latent Semantic Analysis of word2vec thus to reduce the size of bag of feature words and the dimension of document vector effectively,which replaces the semantically relevant words with the product of a topic word and proper parameters.Besides,it also gives each feature word the optimal weight by combining with the TF-IDF algorithm.Finally,compared with two other document classification methods,the method presented in this paper has made some significant progress,and the experimental result has proved its effectiveness.
document vector;feature extraction of document;document classification;TF-IDF;word2vec
陳杰,陳彩,梁毅.基于 Word2vec 的文檔分類方法.計(jì)算機(jī)系統(tǒng)應(yīng)用,2017,26(11):159–164.http://www.c-s-a.org.cn/1003-3254/6055.html
2017-02-23;修改時(shí)間:2017-03-09;采用時(shí)間:2017-03-20
?