摘 要:針對自然語言文本集的預(yù)處理和分類問題,將詞頻統(tǒng)計(jì)方法(TF-IDF)引入到關(guān)鍵詞提取(TextRank)算法中,并結(jié)合word2vec詞向量化方法獲得基于關(guān)鍵詞的改進(jìn)型文本向量化算法;進(jìn)而,在k近鄰算法中引入k值校正規(guī)則,并與該改進(jìn)型算法結(jié)合獲得文本集的改進(jìn)型分類算法。利用格式和類別多樣、數(shù)據(jù)量較大的文本集數(shù)據(jù)進(jìn)行實(shí)驗(yàn),結(jié)果表明,通過該方法可有效實(shí)現(xiàn)文檔深層語義特征與淺層詞頻統(tǒng)計(jì)特征的融合,提取的文本關(guān)鍵詞能較好表征文檔的內(nèi)容和類別,證明了獲得的分類效果具有明顯的優(yōu)勢。
關(guān)鍵詞:TF-IDF算法;關(guān)鍵詞提取;文本向量化;自適應(yīng)KNN算法;文本分類
中圖分類號:TP391.1
文獻(xiàn)標(biāo)識碼: A
文本分類是大數(shù)據(jù)分析研究的主要內(nèi)容之一,如何對格式多樣、種類繁多、數(shù)據(jù)量大的文本進(jìn)行預(yù)處理,以及研究分布式集群環(huán)境下的快速、有效分類算法,是大數(shù)據(jù)時(shí)代研究的重要課題。當(dāng)文本量巨大時(shí),將文本中的詞向量化[1],進(jìn)而將文本向量化,然后對文本進(jìn)行分類是一條行之有效的途徑。然而,文本篇幅直接影響詞向量化的效率,因此需對文本向量化進(jìn)行專門性探討。近來,文本向量化研究已備受關(guān)注,大致有四種常用方法已被報(bào)道,即TF-IDF法[2]、均值word2vec和TF-IDF加權(quán)詞向量化法[3]、doc2vec[4]。TF-IDF法源于Salton等[2]提出的詞袋模型,它利用文本集、單文本中詞的詞頻計(jì)算文本向量,是一種較為簡單且應(yīng)用較廣的詞向量化方法;但是,當(dāng)文本集龐大時(shí),單個文本的詞個數(shù)遠(yuǎn)小于文本集的詞個數(shù),從而導(dǎo)致詞向量的維度過高和向量較為稀疏,使得文本集分類效果較差[5-6]。word2vec是一種基于神經(jīng)概率語言模型、極大似然法、梯度法的詞向量化方法, 其利用詞及其上下文構(gòu)成樣本,基于Bayes 模型計(jì)算詞的上下文概率,以及基于最優(yōu)二叉樹確定樣本的輸出,進(jìn)而利用梯度法獲得網(wǎng)絡(luò)的參數(shù)值。與TF-IDF相比,word2vec獲得的詞向量維度低;其能凸顯詞義越相近,則詞的向量相似度越高,是一種研究情感分析、詞性標(biāo)注的常用方法。doc2vec和TF-IDF加權(quán)詞向量法是對均值word2vec的改進(jìn),該方法利用文本Paragragh_id向量及TF-IDF值對word2vec獲得的詞向量進(jìn)行線性組合,從而獲得文本向量。
綜上,盡管詞向量化研究已取得明顯進(jìn)展,但文本向量化的研究較為緩慢。雖然doc2vec和均值詞向量法能對文本進(jìn)行向量化,但獲得的向量尚不能較好體現(xiàn)文本的關(guān)鍵特征信息,從而導(dǎo)致文本分類效果欠佳。基于此,本文首先提出一種基于TextRank算法、word2vec詞向量、TF-IDF算法、關(guān)鍵詞提取的改進(jìn)型文本向量化算法,進(jìn)而設(shè)計(jì)KNN的k值校正規(guī)則,并與該改進(jìn)方法結(jié)合,獲得自然語言文本分類算法。與多種文本分類算法的比較分析表明,該算法在分類效果方面具有明顯優(yōu)勢。
1 改進(jìn)型文本向量化算法
1.1 預(yù)處理與詞向量化
分詞是文本分析的關(guān)鍵環(huán)節(jié),如何高效分詞、斷句、去停用詞是文本預(yù)處理研究的重要課題。常有三種方法可應(yīng)用于中文分詞,即字典匹配法、語義分析法、概率統(tǒng)計(jì)模型[7]。字典匹配分詞的效果一般,語義分析法過于復(fù)雜但效果較好,概率統(tǒng)計(jì)模型彌補(bǔ)了此兩者的缺陷。本文基于前綴詞典實(shí)現(xiàn)詞圖掃描,生成句子中漢字構(gòu)成的無環(huán)有向圖,利用動態(tài)規(guī)劃方法查找有向圖的最大概率路徑, 找出基于詞頻的最大切分組合;對于未登錄詞,應(yīng)用基于隱馬爾科夫模型的Viterbi算法[8]進(jìn)行處理。進(jìn)而,利用訓(xùn)練樣本構(gòu)建word2vec神經(jīng)網(wǎng)絡(luò),網(wǎng)絡(luò)被訓(xùn)練后獲得的投影層輸出向量作為文本詞的向量表示。
1.2 基于關(guān)鍵詞的文本向量化
文本向量化需依次經(jīng)歷分詞、詞向量化和詞向量組合的過程。盡管已存在引言中所述四種常見的向量化方法,但都存在不同的缺陷。例如,均值word2vec獲得的文本向量不能有效反映文本的主旨要義,也不能有效摒棄相關(guān)性很小的詞,從而導(dǎo)致后續(xù)不能有效地對文本進(jìn)行分類。 基于TF-IDF的word2vec利用詞在單個文本中出現(xiàn)的概率和在整個語料庫中的權(quán)重IDF獲得詞的TF-IDF值,并以此作為權(quán)值組合文本中所有詞向量,從而獲得文本向量。該方法雖然已利用詞在單個文本和文本集中出現(xiàn)的特征信息對文本的詞向量進(jìn)行線性組合,但尚未考慮到詞對文本向量化的貢獻(xiàn)度[9];doc2vec將單個文本作為文本集的一個段落并標(biāo)定標(biāo)識碼,進(jìn)而借助word2vec得到doc2vec模型。該方法雖能兼顧上下文的語義,但由于不同文本的長度不同,使得文本預(yù)處理變得困難,且尚未考慮到單個詞對文本的貢獻(xiàn)度。
總之,現(xiàn)有文本向量化方法是依賴于文本中所有詞的詞向量產(chǎn)生文本向量,然而有些詞與文本要義關(guān)聯(lián)度較低,且對文本用向量表示的影響較大,因此抽取文本關(guān)鍵詞并以此和TF-IDF值組合獲得文本向量更能反映文本的特征信息。TextRank算法[10]是一種基于圖模型的關(guān)鍵詞提取算法,其主要思想是將文本分割成若干單詞或句子之后建立圖模型, 利用投票機(jī)制對文本中的重要成分進(jìn)行排序, 進(jìn)而得分較高的詞作為文本的關(guān)鍵詞。算法思想是,首先將文本集利用分詞算法進(jìn)行分詞,并進(jìn)行去停用詞處理,然后進(jìn)行初始化參數(shù)設(shè)置,滑動窗口經(jīng)過文本詞組,采用共現(xiàn)關(guān)系(co-occurrence)構(gòu)造任兩點(diǎn)之間的邊,從而構(gòu)建文本關(guān)鍵詞圖,并迭代計(jì)算圖中節(jié)點(diǎn)的得分,直至收斂為止;最后,利用得分對節(jié)點(diǎn)進(jìn)行降序排序,獲得給定數(shù)目的關(guān)鍵詞。TextRank算法雖簡單易用,抽取關(guān)鍵詞僅需考慮當(dāng)前文本,但算法對詞句的使用較淺顯,且由于所有詞初始化得分相同,難以準(zhǔn)確找出文本關(guān)鍵詞[11]。因此,將TF-IDF算法思想引入TextRank中,將詞初始化重要程度用TF-IDF值刻畫,在算法的開始階段凸顯出詞在文本中的重要程度,令TF-IDF值高的點(diǎn)有更大的可能性提高算法效率和準(zhǔn)確率。在此提出改進(jìn)型TextRank算法(Improved TextRank Algorithm, ITRA),其描述如下:
由表可知,現(xiàn)有算法中TF-IDFword2vec算法分類準(zhǔn)確率最高,與doc2vec相比相差不大,比Mword2vec_SVM高出3.97%,TF-IDFword2vec_KNN比Mword2vec_KNN高出1.85%,但在執(zhí)行效率上下降幅度較大;TF-IDF的文本預(yù)處理所需時(shí)間雖少,但它卻導(dǎo)致難以彌補(bǔ)的文本分類貢獻(xiàn)度低的缺陷,TF-IDF_KNN和TF-IDF_SVM獲得的分類效果最差;Mword2vec_KNN和Mword2vec_SVM在分類準(zhǔn)確率上明顯提高,并且在更深層面上涉及到語義的文本表示,文本向量表示更加準(zhǔn)確,但執(zhí)行效率有所下降;doc2vec能使KNN和SVM在分類效果方面比TF-IDF、Mword2vec分類方法(KNN、SVM)獲得的效果均要好,但執(zhí)行效率沒有明顯優(yōu)勢。相比之下,本文提出的改進(jìn)型文本向量化方法ITRA能使KNN、SVM在分類效果上具有明顯優(yōu)勢,在分類準(zhǔn)確率方面優(yōu)于現(xiàn)有算法中準(zhǔn)確率最高的TF-IDFword2vec的分類方法,其中ITRA_KNN和ITRA_SVM的分類準(zhǔn)確率分別為87.55%和86.90%,而現(xiàn)有算法的分類準(zhǔn)確率均在84%以下;ITRA的運(yùn)行時(shí)間為2762.1s,低于TF-IDFword2vec的運(yùn)行時(shí)間。另外,ITRA_IKNN的分類準(zhǔn)確率為89.13%,明顯高于其它算法的分類準(zhǔn)確率,也表明在KNN中引入k值修正規(guī)則是有效的。
綜上,鑒于在大數(shù)據(jù)實(shí)驗(yàn)平臺上,算法執(zhí)行效率能得以保證,通過權(quán)衡算法的執(zhí)行效果和效率,ITRA是一種有效的文本向量化方法,它比其它文本向量化方法與KNN、SVM結(jié)合能得到更好的分類效果,特別是在KNN中引入k值校正規(guī)則,與IKNN相結(jié)合。
4 結(jié)語
針對大數(shù)據(jù)時(shí)代語義分析方法匱乏、單一的問題,為了深層次刻畫文本的語義特征和較準(zhǔn)確地進(jìn)行文本分類,提出一種基于TF-IDF、TextRank算法的文本向量化方法(ITRA),并對語料庫進(jìn)行文本向量化處理。進(jìn)而,在KNN方法中引入k值校正規(guī)則,并與ITRA結(jié)合獲得文本分類算法ITRA-IKNN。多種算法的實(shí)驗(yàn)分析表明,ITRA-IKNN在分類效果方面具有明顯優(yōu)勢。鑒于語料大多為文章形式,具有詞數(shù)多、用詞正規(guī)等特點(diǎn),對如今詞匯駁雜、用詞不規(guī)范的網(wǎng)絡(luò)微型博客短文本的向量化較難,今后將在文本向量化的準(zhǔn)確性方面將作進(jìn)一步深入研究,提高ITRA-IKNN的文本分類準(zhǔn)確率和增強(qiáng)其實(shí)用性。
參考文獻(xiàn):
[1]楊萌萌, 黃浩, 程露紅,等. 基于LDA主題模型的短文本分類[J].計(jì)算機(jī)工程與設(shè)計(jì), 2016, 37(12): 3371-3377.
[2]SALTON G, WONG A,YANG C S. A vector space model for automatic indexing[J]. Communications of the Acm, 1975, 18(11): 613-620.
[3]唐明, 朱磊, 鄒顯春. 基于Word2Vec的一種文檔向量表示[J].計(jì)算機(jī)科學(xué), 2016, 43(6): 214-217.
[4]LE Q,MIKOLOV T.Distributed representations of sentences and documents[C]//International Conference on Machine Learning.Beijing:JMLR.org,2014:1188-1196.
[5]郭慶琳, 李艷梅, 唐琦. 基于VSM的文本相似度計(jì)算的研究[J].計(jì)算機(jī)應(yīng)用研究, 2008, 25(11):3256-3258.
[6]Manning C D. Foundations of Statistical Natural Language Processing[M]. Cambridge: MIT press, 1999.
[7]修馳. 適應(yīng)于不同領(lǐng)域的中文分詞方法研究與實(shí)現(xiàn)[D]. 北京: 北京工業(yè)大學(xué), 2013.
[8]袁俊. HMM連續(xù)語音識別中Viterbi算法的優(yōu)化及應(yīng)用[J]. 電子技術(shù), 2001, 28(2): 46-49.
[9]張保富, 施化吉, 馬素琴. 基于TFIDF文本特征加權(quán)方法的改進(jìn)研究[J]. 計(jì)算機(jī)應(yīng)用與軟件, 2011, 28(2): 17-20.
[10]夏天. 詞語位置加權(quán)TextRank的關(guān)鍵詞抽取研究[J]. 現(xiàn)代圖書情報(bào)技術(shù), 2013, 29(9): 30-34.
[11]Turney P D. Learning Algorithms for Keyphrase Extraction[J]. Information Retrieval Journal, 2000, 2(4):303-336.
[12]ZHOU Y, LI Y, XIA S. An Improved KNN Text Classification Algorithm Based on Clustering[J]. Journal of Computers, 2009, 4(3):230-237.
[13]ZHANG D, XU H, SU Z.Chinese comments sentiment classification based on word2vec and SVM perf[J]. Expert Systems with Applications, 2015, 42(4):1857-1863.
(責(zé)任編輯:周曉南)