何 鎧,管有慶,龔 銳
(南京郵電大學(xué) 物聯(lián)網(wǎng)學(xué)院,江蘇 南京 210003)
信息檢索[1]、文本挖掘[2]作為自然語言處理[3]領(lǐng)域的關(guān)鍵技術(shù),給人們的生活帶來了許多便利,而文本分類[4-6]正是這些關(guān)鍵技術(shù)開展的重要基礎(chǔ)。文本分類作為自然語言處理研究的一個熱點(diǎn),其主要原理是將文本數(shù)據(jù)按照一定的分類規(guī)則實(shí)現(xiàn)自動化分類。目前常見的文本分類方式主要分為基于機(jī)器學(xué)習(xí)和基于深度學(xué)習(xí)兩種,它們的本質(zhì)是通過計算機(jī)自主學(xué)習(xí)從而提取文本信息中的規(guī)則來進(jìn)行分類。針對數(shù)據(jù)量較小、硬件運(yùn)算能力較低的應(yīng)用場景,往往使用基于機(jī)器學(xué)習(xí)算法而衍生的文本分類模型。這類模型運(yùn)行速度快、硬件資源占用量小,并且可以取得不錯的分類準(zhǔn)確性。機(jī)器學(xué)習(xí)算法是當(dāng)前文本分類領(lǐng)域研究的一個重點(diǎn)。
目前,幾種重要的機(jī)器學(xué)習(xí)算法在文本分類領(lǐng)域都有所應(yīng)用,如KNN(K-nearest neighbor,K臨近算法)、SVM(support vector machine, 支持向量機(jī))和LR[7](logistic regressive,邏輯回歸)等。將基于詞頻的TF-IDF(term frequency-inverse document frequency,詞頻逆文本頻率)算法和NBC[8](naive Bayes classifier,樸素貝葉斯分類器)進(jìn)行結(jié)合,是基于機(jī)器學(xué)習(xí)原理衍生出的一種被廣泛應(yīng)用的文本分類模型[9]。NBC分類器原理簡明易懂,并且由于其所需要估算的參數(shù)較少,對于缺失的數(shù)據(jù)不敏感,所以在進(jìn)行小規(guī)模文本分類時,有著不錯的表現(xiàn)。但該算法也存著一些問題,傳統(tǒng)TF-IDF[10-12]算法僅通過詞語在文本中出現(xiàn)的頻率來判斷詞語的重要性,無法根據(jù)詞語所在的位置信息來進(jìn)行評估,從而導(dǎo)致文本分類的準(zhǔn)確性受到限制[13]。
該文提出一種基于權(quán)重預(yù)處理的文本分類算法,即PRE-TF-IDF(pre-processing term frequency inverse document frequency,文本預(yù)處理的文本詞頻和逆文本詞頻)算法。該算法在傳統(tǒng)TF-IDF模型的基礎(chǔ)上,增加了關(guān)鍵信息權(quán)重處理和詞密度權(quán)重處理兩個新的處理環(huán)節(jié),增加分類模型對詞語位置信息的評估,最終提升了文本分類的準(zhǔn)確性。
TF-IDF算法是一種統(tǒng)計方法,該算法在文本分類中的作用是評估某一個詞語對其所在文本的重要性,結(jié)合NBC最終實(shí)現(xiàn)對文本的分類。TF-IDF主要包含兩個部分,TF(term frequency,詞頻)和IDF(inverse document frequency,逆文本頻率)。具體定義如式(1)所示:
TF-IDF=TF×IDF
(1)
TF-IDF算法從定義上看是將TF和IDF兩個數(shù)值相乘,其中TF的定義式為:
(2)
式中,N(wi,d)表示詞語wi在文本d中出現(xiàn)的次數(shù),S表示文本d中所有詞語的總數(shù)。用詞語wi在文本d中出現(xiàn)的次數(shù)除以文本d中所有詞語的總數(shù),當(dāng)詞語wi出現(xiàn)的次數(shù)越多,TF值越大,詞語wi對文本d越重要;當(dāng)詞語wi出現(xiàn)的次數(shù)越少,TF值越小,詞語wi對文本d越不重要。但僅憑TF值來衡量一個詞語區(qū)分文本類別的能力會出現(xiàn)一些問題,諸如“的”和“是”,這類詞語在每個文本中幾乎都具有非常高的出現(xiàn)次數(shù)。因此,在評價某個詞語對于整個文本集的區(qū)分能力時,需要依據(jù)IDF值來判斷。IDF的定義式為:
(3)
式中,N表示文本集中所有文本的總量,N(wi)表示文本集中出現(xiàn)過詞語wi的文本總數(shù)。當(dāng)N(wi)的數(shù)值越小,IDF值就會越大,表示某個詞語在整個文本集中出現(xiàn)的次數(shù)越少,則該詞將具有很強(qiáng)的區(qū)分類別的能力。
TF-IDF算法的含義是:如果某一個詞語在一篇文本中出現(xiàn)的概率很高(即TF的數(shù)值高),但在其他文本中出現(xiàn)的概率很低(即IDF的數(shù)值高),則可以認(rèn)為該詞語具有很好的區(qū)分類別的能力,可以作為特征詞語進(jìn)行分類。
TF-IDF算法單純地認(rèn)為文本頻率越小的單詞越具有區(qū)別文本類別的能力,而文本頻率越大的單詞就越無用,這樣的思想運(yùn)用于文本集中的文本是同一類型的文本時就顯得不正確了;并且TF-IDF算法沒有根據(jù)詞語出現(xiàn)的位置賦予不同的權(quán)值。這兩方面的不足導(dǎo)致TF-IDF算法的精度并不是很高。PRE-TF-IDF算法在傳統(tǒng)TF-IDF算法的基礎(chǔ)上,增加了關(guān)鍵信息權(quán)重處理和詞密度權(quán)重處理兩個新的處理環(huán)節(jié),以解決上述兩點(diǎn)不足,最終提升文本分類的準(zhǔn)確性。
傳統(tǒng)TF-IDF算法在進(jìn)行文本分類時,主要存在兩個問題。首先,算法僅憑某一個詞語在文本和整個文本集中的出現(xiàn)頻率來判定這個詞語的重要性,IDF值計算式結(jié)構(gòu)簡單,不能有效地反映詞語的重要程度,導(dǎo)致算法精度不高。其次,不考慮詞語在文本中出現(xiàn)的位置,在詞頻相同的情況下,關(guān)鍵詞語和非關(guān)鍵詞語的權(quán)重相同,從而導(dǎo)致分類的準(zhǔn)確性降低。為解決這兩個問題,提出了基于權(quán)重預(yù)處理的改進(jìn)TF-IDF算法,在文本預(yù)處理階段增加了關(guān)鍵信息權(quán)重處理環(huán)節(jié),對文本中不同位置出現(xiàn)的詞語賦予不同的權(quán)重,以解決傳統(tǒng)算法無法反映詞語位置信息的問題。在特征詞語的選取階段,增加了詞密度權(quán)重處理環(huán)節(jié)并改進(jìn)了IDF值的計算方法,以便選取出更具有類別區(qū)分能力的特征詞語。結(jié)合上述兩方面的改進(jìn),最終提出一種基于權(quán)重預(yù)處理的優(yōu)化算法,PRE-TF-IDF算法。
(1)算法原理。
針對傳統(tǒng)TF-IDF算法無法根據(jù)特征詞在文本中的分布情況而賦予不同權(quán)重的問題,基于權(quán)重預(yù)處理的PRE-TF-IDF優(yōu)化算法在預(yù)處理階段,對于不同位置出現(xiàn)的詞語賦予不同的權(quán)重,以突出關(guān)鍵位置詞語的重要性,提升區(qū)分文本類別的能力。PRE-TF-IDF算法模型主要針對的應(yīng)用場景是論文、期刊等文本的分類。這類文本往往包含著標(biāo)題、發(fā)表單位、摘要、關(guān)鍵詞等特殊信息,這些段落文字量較少,但對全文起到了概括和提煉的作用。針對這些段落中的詞語,賦予更高的權(quán)重,有利于更好地選取出具有類別區(qū)分能力的特征詞語。
文章標(biāo)題字?jǐn)?shù)一般在20字左右,字?jǐn)?shù)較少并且能夠簡明扼要地概述全文的內(nèi)容,對標(biāo)題內(nèi)的詞語賦予高于正文詞語的權(quán)重。
摘要可以使讀者在最短的時間內(nèi)準(zhǔn)確地了解文章的內(nèi)容,摘要對區(qū)分文本類別也起到了十分重要的作用,因此對于摘要段落內(nèi)出現(xiàn)的詞語賦予高于正文詞語的權(quán)重。
關(guān)鍵詞段落常常位于摘要后一段,使用幾個詞語來概括文章涉及的專業(yè)領(lǐng)域,字?jǐn)?shù)較少但概括能力極強(qiáng),因此需要對關(guān)鍵詞賦予高于正文詞語的權(quán)重。針對不包含摘要和關(guān)鍵詞的期刊文本,則不作額外賦值,統(tǒng)一按正文中出現(xiàn)詞語賦值。
發(fā)表單位常常會出現(xiàn)學(xué)校的名稱、企業(yè)名稱或期刊名稱等。根據(jù)文本所屬的出版單位信息,可以大致對文本可能涉及的領(lǐng)域進(jìn)行一定的評估。例如,一篇發(fā)表自理工類學(xué)校的文章,該文章屬于計算機(jī)、電子或能源等領(lǐng)域的可能性要比藝術(shù)、教育或法律等領(lǐng)域的可能性高。通過中國大學(xué)信息查詢系統(tǒng),獲取國內(nèi)所有高校的名稱及其所對應(yīng)的專業(yè)類別,類別包含“綜合類”、“理工類”、“師范類”、“財經(jīng)類”和“農(nóng)林類”。表1中這五種高校類別與表2中八類文本專業(yè)領(lǐng)域分別具有不同的權(quán)重配比。
(2)權(quán)重處理具體過程。
如圖1所示,虛線框內(nèi)的步驟為權(quán)重處理的流程。經(jīng)過預(yù)處理后,文本去除了停用詞,并以詞語的形式保存,詞與詞之間用空格分隔,段落之間使用換行符分隔。使用預(yù)處理后的文本數(shù)據(jù)作為輸入,對文本進(jìn)行位置權(quán)重賦值,賦值規(guī)則如下:
圖1 權(quán)重處理流程
對于標(biāo)題段落內(nèi)的詞語,權(quán)重值乘以2。通過中國大學(xué)信息查詢系統(tǒng),獲取國內(nèi)所有高校的名稱及其所對應(yīng)的專業(yè)類別。檢索“摘要”和“關(guān)鍵詞”段落,對“摘要”段落內(nèi)的詞語,權(quán)重值乘以1.5;“關(guān)鍵詞”段落內(nèi)的詞語,權(quán)重值乘以2。檢索文本中前300個詞語,與高校名稱庫進(jìn)行匹配,若匹配成功,按高校所屬類別乘以類別權(quán)重,具體類別權(quán)重見表1。若匹配失敗則不做額外賦值處理。
表1 高校類別對應(yīng)專業(yè)領(lǐng)域權(quán)重
通過中國大學(xué)信息查詢系統(tǒng),收集“綜合類”、“理工類”、“師范類”、“財經(jīng)類”和“農(nóng)林類”這五類大學(xué),每類10所院校。通過統(tǒng)計不同專業(yè)研究生數(shù)量進(jìn)行加權(quán)平均的方式,求得每個專業(yè)領(lǐng)域的權(quán)重,繪制成表1。
在求得待分類文本中所有特征詞語出現(xiàn)在不同類別的聯(lián)合概率分布后,可以得到該文本分別屬于各個類別的概率值,再將各個類別的概率值與表1的專業(yè)領(lǐng)域權(quán)重進(jìn)行相乘,最終取概率值較大的類別,即為待分類文本的類別。
關(guān)鍵信息權(quán)重處理中標(biāo)題段、摘要段和關(guān)鍵詞處的權(quán)重系數(shù)為通過多次實(shí)驗后,經(jīng)過分類效果對比,最終確定的具體數(shù)值。
傳統(tǒng)TF-IDF算法單純地認(rèn)為文本頻率越小的詞語越具有區(qū)別文本類別的能力,而文本頻率越大的詞語就越無用,這樣的思想并不是完全正確的。造成這一問題的主要原因是IDF值的計算方式較為簡單,只考慮了某個詞語與其出現(xiàn)的文本數(shù)量之間的關(guān)系。為解決這一問題,在PRE-TF-IDF算法中增加了詞密度權(quán)重處理環(huán)節(jié),該環(huán)節(jié)的主要原理是通過類別內(nèi)詞密度和類別外詞密度兩個指標(biāo)對特征詞語的類別區(qū)分能力進(jìn)行衡量。
通過ICD(intra class density,類別內(nèi)詞密度)來表示特征詞語在類別內(nèi)文本中的出現(xiàn)密度權(quán)重;用OCD(outer class density,類別外詞密度)來表示特征詞語在其他類別文本中出現(xiàn)的密度權(quán)重。同時引入WF(word frequency,詞語出現(xiàn)頻數(shù)),即WF(wi)、WF(wi,Cj)和WF(wi,Cjk)這三個參數(shù)進(jìn)行計算。
類別內(nèi)詞密度權(quán)重ICD表示為:
(4)
類別外詞密度權(quán)重OCD表示為:
(5)
式(4)和式(5)中,WF(wi)表示特征詞語wi在所有類別文本中出現(xiàn)的頻數(shù)總數(shù),WF(wi,Cj)表示特征詞語wi在第j類中的頻數(shù),WF(wi,Cjk)表示特征詞語wi在第j類中第k篇文本中出現(xiàn)的頻數(shù),n表示第j類中文本的總數(shù),m表示文本的類別總數(shù)。
類別內(nèi)詞密度權(quán)重ICD的取值范圍為[0,1]。當(dāng)ICD值趨向于0時,表明在類別內(nèi)特征詞語wi的出現(xiàn)密度較為平均,能夠很好地體現(xiàn)該類文本的共性;當(dāng)取值趨向于1時,表明特征詞語wi在該類文本中出現(xiàn)密度不平均,存在某些文本頻數(shù)過高的情況,不具有代表性。
類別外詞密度權(quán)重OCD的取值范圍也為[0,1]。當(dāng)取值趨向于0時,表明特征詞語wi在不同類別的文本中都有較為平均的出現(xiàn)密度,不能很好地代表某一類文本;當(dāng)取值趨向于1時,表明特征詞語在不同類別中的出現(xiàn)密度分布不均,類別區(qū)分能力較強(qiáng)。
綜上所述,當(dāng)某個特征詞語的ICD值趨向于0,OCD值趨向于1時,代表該詞語針對某一類文本具有較強(qiáng)的代表能力。基于傳統(tǒng)TF-IDF算法,結(jié)合ICD和OCD兩種詞密度權(quán)重,最終形成PRE-TF-IDF權(quán)重計算函數(shù):
PRE-TF-IDF=TF×IDF×OCD×(1-ICD)
(6)
式(6)中,TF表示詞頻,由式(2)定義;IDF表示逆文本頻率,由式(3)定義;OCD表示類別外詞密度權(quán)重,由式(5)定義;ICD表示類別內(nèi)詞密度權(quán)重,由式(4)定義。
采用三個性能評估指標(biāo)來對基于權(quán)重預(yù)處理的PRE-TF-IDF分類算法進(jìn)行實(shí)驗分析,分別是精確率(Precision)、召回率(Recall)和F1值(F1 Score)。通過對相同數(shù)據(jù)集使用傳統(tǒng)選取方式和該文優(yōu)化后的選取方式,進(jìn)行對照實(shí)驗并評估。實(shí)驗運(yùn)行設(shè)備是在安裝了Windows10專業(yè)版操作系統(tǒng),內(nèi)存為16 GB,CPU(central processing unit,中央處理器)主頻為2.8 GHz的PC機(jī)上進(jìn)行的。主要使用的軟件環(huán)境是基于Python3.6.7內(nèi)核和Pycharm 2018.12.5版本,采用的數(shù)據(jù)集源于復(fù)旦大學(xué)中文文本分類語料庫。在實(shí)驗過程中,將獲取的數(shù)據(jù)集分為訓(xùn)練集和測試集并且按照1∶1的比例進(jìn)行實(shí)驗評估。分類類別為8種,訓(xùn)練集共8 800篇文章,測試集共8 800篇文本。文本以“.txt”的格式進(jìn)行保存,實(shí)驗共分為10組,將這8類文本進(jìn)行等比例縮放,形成10組數(shù)據(jù)集,具體數(shù)據(jù)集明細(xì)如表2所示。
表2 數(shù)據(jù)集分類明細(xì)
將上述數(shù)據(jù)按照所占比例的大小,分成10組實(shí)驗數(shù)據(jù)集,其中訓(xùn)練集和測試集的比例為1∶1,表3描述了每組數(shù)據(jù)的大小。
表3 數(shù)據(jù)集分組大小
在完成分詞后,針對文本中出現(xiàn)的語氣助詞、人稱、標(biāo)點(diǎn)符號這類對文本特征沒有貢獻(xiàn)的字詞,將其收集、合并,形成了一個停用詞列表。通過與停用詞列表匹配并將停用詞從文本中去除掉,以達(dá)到提升程序運(yùn)行效率、減少干擾因素和提高算法準(zhǔn)確性的目的。
在實(shí)驗過程中,特征詞語選取的數(shù)量對PRE-TF-IDF算法的精確率和運(yùn)行效率都有一定的影響。通過實(shí)驗計算出兼顧精確率與運(yùn)行效率的特征詞語占比。實(shí)驗時,將訓(xùn)練集和測試集的數(shù)量都定為8 800,在保持這一條件不變的情況下,通過調(diào)整特征詞語所占的比重,觀察運(yùn)行效率和精確率的變化,最終選取最佳的特征詞語占比。
圖2 特征向量占文本比重
根據(jù)圖2可知,在一定范圍內(nèi),PRE-TF-IDF算法的分類準(zhǔn)確性隨著特征詞語在文本中的比重增加而增加。但當(dāng)特征詞語占文本比重超過一定數(shù)值后,反而使得算法分類的效果下降,對分類的精確率產(chǎn)生負(fù)面影響。所以,特征詞語在文本中的比重存在一個峰值。隨著特征詞語在文本中的比重不斷增加,算法進(jìn)行文本分類時所需要的時間也隨之變長。最終得出精確率峰值時的平均值為特征詞語所占文本的比重17.57%。此時,能使得PRE-TF-IDF算法兼顧分類精確率和運(yùn)行效率。
精確率定義為測試集文本經(jīng)過算法所分類出的類別與其正確類別之間的百分比,也就是正確分類的文本占所有文本的百分比,其對應(yīng)的公式如下:
(7)
其中,TP表示被正確分類的文本,F(xiàn)P表示被錯誤分類的文本數(shù)量,(TP+FP)即文本的總數(shù)量[14]。
這里將上述8類文本按照文本數(shù)量的大小進(jìn)行從小到大的排序,隨著訓(xùn)練集數(shù)量的增加,觀察不同算法對于文本分類精確率的表現(xiàn)。實(shí)驗中將KNN[15]、LR[7]、TF-IDF[12]算法和所提出的PRE-TF-IDF算法進(jìn)行對比,結(jié)果如圖3所示。
圖3 四種分類算法在不同數(shù)據(jù)集下的
由圖3可知,PRE-TF-IDF權(quán)重預(yù)處理優(yōu)化算法進(jìn)行分類的準(zhǔn)確率比KNN、LR和傳統(tǒng)TF-IDF算法都要高。隨著訓(xùn)練集文本量的增加,各個分類模型的精確率也在不斷增加。當(dāng)數(shù)據(jù)集數(shù)量達(dá)到最大時,KNN算法、LR、TF-IDF和PRE-TF-IDF算法對應(yīng)的精確率分別為74.8%、80.0%、84.9%和86.9%。LR算法當(dāng)遭遇特征空間較大時,進(jìn)行LR分類時的性能不是很好,容易出現(xiàn)欠擬合,精確性不高的情況。傳統(tǒng)TF-IDF算法結(jié)合樸素貝葉斯分類器在進(jìn)行分類時,雖然精確性相比于KNN和LR算法有所提升,但是由于傳統(tǒng)TF-IDF算法存在無法根據(jù)詞語位置信息分別賦予權(quán)重和僅憑文本詞頻進(jìn)行IDF值計算的問題,所以精確性存在一定的限制。PRE-TF-IDF算法由于增加了權(quán)重預(yù)處理和詞密度處理兩個環(huán)節(jié),相比于傳統(tǒng)的算法,精確率提升了2%~5.5%。
召回率作為一項評估文本分類系統(tǒng)從數(shù)據(jù)集中分類成功度的指標(biāo),用來體現(xiàn)分類算法的完備性,數(shù)值越高代表算法的成功度越高。具體公式如下:
(8)
其中,TP表示被正確分類的文本數(shù)量,F(xiàn)N表示應(yīng)當(dāng)被分到錯誤類別中的文本的數(shù)量。為了評估PRE-TF-IDF算法的召回率指標(biāo),同樣進(jìn)行十組不同數(shù)據(jù)量的對照實(shí)驗。分別采用KNN、LR、TF-IDF算法和PRE-TF-IDF算法進(jìn)行實(shí)驗。實(shí)驗結(jié)果如圖4所示。
圖4 不同分類算法的召回率對比
由圖4可以看出,PRE-TF-IDF的召回率比其他三種文本分類算法的召回率都要高。文本分類的召回率和精確率往往隨著數(shù)據(jù)集的增加而有所提升,召回率與數(shù)據(jù)集的數(shù)量總體上成線性增長。當(dāng)數(shù)據(jù)集數(shù)量達(dá)到最大時,KNN算法、LR、TF-IDF和PRE-TF-IDF算法對應(yīng)的召回率分別為73.6%、79.0%,83.3%和86.5%。
F1值是一個綜合考慮精確率和召回率的指標(biāo),同時兼顧了分類模型中的精確率和召回率,也可以將這個指標(biāo)看作是算法精確率和召回率的調(diào)和平均。計算公式如下:
(9)
其中,P表示精確率(Precision),R表示召回率(Recall),這兩個指標(biāo)反映了分類準(zhǔn)確性和成功性兩個不同的方面。將精確率和召回率數(shù)據(jù)進(jìn)行計算,并繪制成如圖5所示的折線圖。
F1值通過精確率和召回率計算而得,可以用來評價整個分類器分類效果的優(yōu)劣。KNN、LR、TF-IDF和PRE-TF-IDF的F1值最終分別為0.742、0.795、0.841和0.867。
圖5 不同分類算法的F1值對比
該文首先介紹了傳統(tǒng)TF-IDF算法的實(shí)現(xiàn)原理,并指出了傳統(tǒng)TF-IDF算法存在的兩個問題,即無法根據(jù)詞語的位置信息進(jìn)行權(quán)重賦值和僅憑文本詞頻計算IDF值。對此,該文提出了一種基于權(quán)重預(yù)處理的PRE-TF-IDF算法。通過PRE-TF-IDF算法中的關(guān)鍵信息權(quán)重處理和詞密度權(quán)重處理兩個環(huán)節(jié)來相應(yīng)地解決傳統(tǒng)TF-IDF算法存在的兩個問題,并且描述了原理和處理流程。通過實(shí)驗,將PRE-TF-IDF算法與現(xiàn)有的KNN、LR和傳統(tǒng)TF-IDF算法進(jìn)行對照,在精確率、召回率和F1值這三個方面進(jìn)行對比,對PRE-TF-IDF算法進(jìn)行了評估。