王獲智 李建宏 施運(yùn)梅
摘要:政府公文數(shù)量巨大,不同政府網(wǎng)站公文分類規(guī)則不一,在引用和參考公文時(shí)可能發(fā)生混淆。針對(duì)該問(wèn)題,基于政府公文題目、摘要和正文內(nèi)容,采用K-means算法對(duì)公文進(jìn)行分類。首先對(duì)政府公文進(jìn)行分詞及去停用詞等數(shù)據(jù)預(yù)處理操作,再通過(guò)詞頻一逆文檔頻率(TF-IDF)權(quán)值計(jì)算方法,將處理后的政府文本信息轉(zhuǎn)換成二維矩陣,然后采用K-means算法進(jìn)行聚類。使用清華大學(xué)THUCTC文本分類系統(tǒng)對(duì)公文聚類結(jié)果進(jìn)行測(cè)試。實(shí)驗(yàn)結(jié)果表明,采用K-means算法對(duì)公文進(jìn)行聚類,準(zhǔn)確率達(dá)到82.93%,遠(yuǎn)高于政府網(wǎng)站公文分類準(zhǔn)確率。
關(guān)鍵詞:文本聚類;詞頻一逆文檔頻率;K-means算法
DOI:10.11907/rjdk.192257 開(kāi)放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):
中圖分類號(hào):TP391文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-7800(2020)006-0201-04
0 引言
K-means聚類算法最早于1967年被提出,眾多學(xué)者運(yùn)用該算法進(jìn)行了文本聚類技術(shù)研究。文獻(xiàn)對(duì)K-means聚類算法進(jìn)行了詳盡介紹。作為一種無(wú)監(jiān)督學(xué)習(xí),該算法可將相似對(duì)象歸于同一類中;文獻(xiàn)從中心點(diǎn)選取、K值確定及參數(shù)調(diào)優(yōu)等方面設(shè)計(jì)了優(yōu)化方案,為提升算法性能提供了指導(dǎo)意義。K-means聚類算法實(shí)際應(yīng)用范圍較廣,包括中文文獻(xiàn)分類、航空旅客劃分、行政省份歸類等多個(gè)方面。
目前,我國(guó)省市級(jí)政府均設(shè)立了官方網(wǎng)站,政府公文持續(xù)上傳至官網(wǎng),數(shù)量龐大。由于各政府網(wǎng)站相對(duì)獨(dú)立,各地方政府對(duì)政府文件的分類方式有一定差異,因此在參考和引用內(nèi)容相似的政府公文時(shí)可能出現(xiàn)混淆。針對(duì)該現(xiàn)象,本文使用文本聚類技術(shù)對(duì)政府公文進(jìn)行聚類分析,具體指采用K-means算法對(duì)政府公文題目、摘要和正文內(nèi)容進(jìn)行聚類分析。首先利用Python實(shí)現(xiàn)公文信息獲取、數(shù)據(jù)預(yù)處理及文本聚類,然后使用北京市政府官方網(wǎng)站發(fā)布的公文作為測(cè)試文本,并對(duì)聚類結(jié)果進(jìn)行分析。
1 政府文件聚類過(guò)程
文本聚類作為一種無(wú)監(jiān)督的機(jī)器學(xué)習(xí)方法,不需要大量訓(xùn)練集,故無(wú)需人工為文檔添加標(biāo)簽。本文選取聚類算法中的K-means算法,對(duì)政府文件進(jìn)行聚類分析。其過(guò)程可概括為3個(gè)步驟:數(shù)據(jù)獲取、數(shù)據(jù)預(yù)處理、文本向量化及聚類。
1.1 數(shù)據(jù)獲取
以北京市政府網(wǎng)站發(fā)布的公文作為原始數(shù)據(jù),使用Python爬蟲(chóng)抓取并保存該網(wǎng)站全部公文。
1.2 數(shù)據(jù)預(yù)處理
Python語(yǔ)言作為一種面向?qū)ο蟮某绦蛘Z(yǔ)言,受到越來(lái)越多的關(guān)注,目前已擁有了十分豐富的庫(kù)。本文利用PY.thon實(shí)現(xiàn)文本預(yù)處理。首先安裝并加載Python的jieba分詞工具包。iieba分詞工具包是供Python語(yǔ)言使用的一款中文分詞組件,使用其中的函數(shù)可將文本切分成詞或字;接著對(duì)切分之后的文本進(jìn)行去停用詞操作。由于在政府公文中存在大量不具有代表性的詞語(yǔ),比如“會(huì)議”、“報(bào)告”、“通知”等。這些詞不僅對(duì)聚類沒(méi)有幫助,還會(huì)降低聚類效率。本文參考了文獻(xiàn)的停用詞表,通過(guò)編寫(xiě)PYthon代碼,對(duì)獲取的所有文本進(jìn)行切詞和去停用詞操作,處理結(jié)果如圖1所示。
1.3 文本向量化與聚類
1.3.1 文本向量化
K-means算法依靠向量判斷某個(gè)樣本從屬類別。因此,僅通過(guò)分詞及去停用詞處理的政府公文無(wú)法直接用于聚類,需對(duì)政府公文進(jìn)行向量化處理。
目前文本向量化主要有兩種方法:one-hot表示法與TF-IDF表示法。one-hot表示法首先提取文本中不重復(fù)的詞語(yǔ),產(chǎn)生長(zhǎng)度為L(zhǎng)的詞語(yǔ)表,用1個(gè)L維的向量表示一篇公文,若第i號(hào)詞語(yǔ)出現(xiàn)在一篇公文中,則該篇公文的第i維度為1。One-hot表示法僅能表示某個(gè)詞語(yǔ)是否出現(xiàn)在某篇公文中(出現(xiàn)為l,反之為0),無(wú)法描述該詞語(yǔ)在該篇公文中出現(xiàn)的頻率等信息,而TF-IDF表示法則彌補(bǔ)了這一不足。因此本文中采用TF-IDF表示法進(jìn)行政府公文向量化處理。
TF-IDF是一種比較常見(jiàn)的統(tǒng)計(jì)方法,用于描述某一個(gè)詞在文檔集合之中的重要程度。在一份給定的文件里,詞頻(Term Frequency,TF)指某個(gè)給定的詞語(yǔ)在該文件中出現(xiàn)的頻率,它是對(duì)詞數(shù)(term count)的歸一化,以防止文件偏長(zhǎng)。逆向文件頻率(Inverse Document Frequency,IDF)是詞語(yǔ)普遍重要性的度量。某一特定詞語(yǔ)的IDF值可由總文件數(shù)目除以包含該詞語(yǔ)的文件數(shù)目、再將得到的商取對(duì)數(shù)得到。
高權(quán)重的TF-IDF值體現(xiàn)一個(gè)詞匯在某一特定文件出現(xiàn)頻率高,而在整個(gè)文件集合中出現(xiàn)頻率低。因此,TF-IDF可用于過(guò)濾常見(jiàn)詞語(yǔ)并保留重要詞語(yǔ)。公文TF-IDF計(jì)算結(jié)果以矩陣方式呈現(xiàn),如圖2所示,圖2上半部是從公文中提取的詞語(yǔ),下半部是每個(gè)詞對(duì)應(yīng)的TF-IDF值。
公文越多,提取的詞語(yǔ)越多,矩陣維度將急劇上升,而高維度的矩陣將嚴(yán)重拖慢算法運(yùn)行速度,且在高維空間中,歐式距離的值可能會(huì)呈現(xiàn)迅速增長(zhǎng)的趨勢(shì)。因此公文聚類算法準(zhǔn)確性和效率均與TF-IDF生成矩陣的維度有關(guān),高維度矩陣會(huì)使聚類算法準(zhǔn)確性和效率下降,需通過(guò)降維改進(jìn)算法。矩陣高維度現(xiàn)象是由數(shù)量巨大的詞匯和公文數(shù)量引發(fā)的,在不能對(duì)公文進(jìn)行刪減的情況下,只能設(shè)法刪減詞匯。一種方法是根據(jù)文本特性,補(bǔ)充停用詞表。比如在北京市政府的公文集合中,“北京市”一詞沒(méi)有聚類意義,可添加到停用詞表中。該方法需對(duì)文本有一定理解,且補(bǔ)充停用詞時(shí)耗較大;另一種方法是根據(jù)每個(gè)詞的TF權(quán)重和IDF權(quán)重,通過(guò)設(shè)定閾值篩選詞語(yǔ),從而降低矩陣維度。TF為詞頻,代表詞條在某一文檔中出現(xiàn)的頻率;IDF為逆向文件頻率,代表如果包含該詞條的文檔越少,則IDF越大,說(shuō)明該詞條具有很好的類別區(qū)分能力。根據(jù)該特性,可設(shè)定閾值對(duì)詞進(jìn)行篩選,比如刪除掉TF低于20%的詞,或刪除IDF高于80%的詞。如圖3所示,在設(shè)定TF閾值為20%、IDF閾值為80%時(shí),程序占用的CPU時(shí)間大幅降低。
1.3.2 公文聚類
K-Means是一種無(wú)監(jiān)督的機(jī)器學(xué)習(xí)算法,對(duì)于給定的樣本集,按照樣本之間的距離大小,將樣本集劃分為K個(gè)簇。讓簇內(nèi)的點(diǎn)盡量緊密地連在一起,而讓簇間距離盡量大。而在K-means算法中,K值選取極大影響聚類實(shí)際效果,為了衡量k值是否恰當(dāng),可使用inertia值作為衡量標(biāo)準(zhǔn)。inertia值也稱作簇內(nèi)誤差平方和(Within-Cluster Sumof Squared Errors,SSE),是K-means算法中的一種度量聚類效果優(yōu)劣的數(shù)值,一般來(lái)說(shuō),inertia值越小,說(shuō)明聚類效果越好。為確定最佳k值,使用手肘法確定K值。實(shí)際inertia值會(huì)隨著k值增加不斷減少,但當(dāng)k值低于最佳值時(shí),inertia值會(huì)隨著k值增加而急劇下降;當(dāng)k值大于最佳值時(shí),隨著k值增加inertia值不會(huì)明顯下降。本文根據(jù)這種特性,不斷調(diào)整初始質(zhì)心數(shù)k的取值,并繪制折線圖,觀察斜率即可得出最佳k值(k=30),如圖4所示。
2 聚類結(jié)果及測(cè)評(píng)
2.1 公文聚類結(jié)果
本文中采用無(wú)監(jiān)督算法中的K-means聚類算法。隨后使用K-means包含的函數(shù)將經(jīng)過(guò)預(yù)處理的文本向量化,轉(zhuǎn)換成通過(guò)TF-IDF權(quán)值計(jì)算算法生成的二維矩陣。設(shè)定初始質(zhì)心數(shù)及最高迭代次數(shù)等相關(guān)參數(shù)后進(jìn)行聚類,并在聚類完成后顯示結(jié)果。聚類結(jié)果如表1所示,5038篇公文共分為30個(gè)類別。
2.2 結(jié)果評(píng)測(cè)
本文借助清華大學(xué)的THUCTC(THU Chinese TextClassification)文本分類系統(tǒng)對(duì)公文聚類效果進(jìn)行驗(yàn)證。THUCTC是由清華大學(xué)自然語(yǔ)言處理實(shí)驗(yàn)室推出的中文文本分類工具包,可自動(dòng)高效地實(shí)現(xiàn)用戶自定義文本分類語(yǔ)料訓(xùn)練、評(píng)測(cè)、分類等功能。對(duì)于文本分類而言,有可能出現(xiàn)4種可能性:TP(True Positive),代表該文本預(yù)測(cè)類別和真實(shí)類別均為該類;FP(False Positive),代表文本不屬于該類,但分類器預(yù)測(cè)其屬于該類;TN(True Negative),代表文本屬于該類,但分類器預(yù)測(cè)其不屬于該類;FN(False Negative),代表文本不屬于該類,分類器同樣預(yù)測(cè)其不屬于該類。
準(zhǔn)確率P的定義為P=TP/(TP+FP),召回率R的定義為R=TP/(TP+FN)。
準(zhǔn)確率和召回率雖可衡量某個(gè)類別的分類效果,但難以用于衡量分類器整體分類效果。因此使用微平均值度量分類器性能,微平均可被理解為預(yù)測(cè)正確的文本個(gè)數(shù)除以樣本總數(shù)。對(duì)于包含n個(gè)樣本的集合而言,微平均Micro_F的計(jì)算公式如(1)所示。其中,Micro_P為n個(gè)樣本的TP平均值除以TP平均值與FP平均值之和,Micro_R為11個(gè)樣本的TP平均值除以TP平均值與FN平均值之和。
北京市政府網(wǎng)站將北京市政府所有文件分為“綜合政務(wù)”、“國(guó)防”及“對(duì)外事務(wù)”等共計(jì)20個(gè)類別,不過(guò)呈現(xiàn)效果不理想,許多公文從屬類別出現(xiàn)了明顯錯(cuò)誤。使用該網(wǎng)站提供的20個(gè)分類中80%的文本作為訓(xùn)練數(shù)據(jù),20%作為測(cè)試數(shù)據(jù),使用清華大學(xué)THUCTC系統(tǒng)進(jìn)行文本分類測(cè)試,得到的準(zhǔn)確率(P)僅為31%,召回率(R)為25%,微平均值為33%。
針對(duì)K-means算法的公文聚類結(jié)果,使用THUCTC系統(tǒng)作為評(píng)測(cè)手段。公文聚類結(jié)果包括從0至29共30個(gè)類別,使用其中80%作為訓(xùn)練集,20%作為測(cè)試集。使用最終訓(xùn)練完成的分類器在測(cè)試集上進(jìn)行測(cè)試,準(zhǔn)確率達(dá)到82.39%,召回率為77.72%,微平均值達(dá)到78.13%。實(shí)驗(yàn)結(jié)果表明采用K-means算法可取得較好的公文聚類效果。
3 結(jié)語(yǔ)
本文采用K-means算法進(jìn)行政府公文聚類,取得了較好的聚類效果。下一步可從以下方面進(jìn)行改進(jìn)。首先,本文實(shí)驗(yàn)結(jié)果并未注明分類完成的公文具體屬于何種類別,可通過(guò)提取特征詞的方式注明類別。在注明類別的基礎(chǔ)上可添加其它政府網(wǎng)站的公文繼續(xù)聚類操作;其次,矩陣高維度仍是限制算法準(zhǔn)確性的原因,可參考其它降維策略提升準(zhǔn)確性;另外,歐式距離對(duì)于高維矩陣十分敏感,可考慮采用余弦距離算法更換歐氏距離。