劉高軍 陳東河
摘要:提出使用TF-IDF算法與樸素貝葉斯算法相結(jié)合,實(shí)現(xiàn)圖書(shū)的自動(dòng)分類(lèi)。首先需從互聯(lián)網(wǎng)中爬取圖書(shū)信息,主要包括圖書(shū)基本信息、圖書(shū)簡(jiǎn)介、圖書(shū)目錄等;其次,需要對(duì)爬取到的圖書(shū)信息進(jìn)行預(yù)處理,將同類(lèi)圖書(shū)的基本信息聚在一起,并進(jìn)行分詞去噪;然后使用TF-IDF算法對(duì)每一類(lèi)圖書(shū)進(jìn)行特征提取,獲得每一類(lèi)圖書(shū)的特征;最后使用樸素貝葉斯算法,并利用訓(xùn)練好的分類(lèi)特征,計(jì)算某本新書(shū)的具體分類(lèi)。實(shí)驗(yàn)結(jié)果表明,該方法可以簡(jiǎn)化復(fù)雜的圖書(shū)自動(dòng)分類(lèi)過(guò)程,提高分類(lèi)效率,也能保證圖書(shū)分類(lèi)的準(zhǔn)確性。
關(guān)鍵詞:圖書(shū)分類(lèi);TF-IDF;樸素貝葉斯
DOIDOI:10.11907/rjdk.161108
中圖分類(lèi)號(hào):TP319
文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-7800(2016)005-0150-03
0 引言
在圖書(shū)館工作中,最復(fù)雜、重要且耗時(shí)最長(zhǎng)的工作就是圖書(shū)分類(lèi)工作。圖書(shū)分類(lèi)工作通常是由人手工進(jìn)行,但是由于圖書(shū)分類(lèi)的復(fù)雜性、多樣性、模糊性等因素,使圖書(shū)分類(lèi)工作更加困難,準(zhǔn)確性也不能夠得到絕對(duì)保證,僅僅提高工作人員的素質(zhì)是根本不夠的。隨著科技的迅速發(fā)展,使用新的計(jì)算機(jī)技術(shù)來(lái)解決圖書(shū)分類(lèi)問(wèn)題是十分必要的,其中一種比較有效的方法是采用專(zhuān)家系統(tǒng)技術(shù)對(duì)圖書(shū)進(jìn)行自動(dòng)分類(lèi)[1]。但是專(zhuān)家系統(tǒng)需要一個(gè)覆蓋面廣、內(nèi)容充足的知識(shí)庫(kù),以及擁有強(qiáng)大推理能力的系統(tǒng)支撐,還需要邏輯嚴(yán)謹(jǐn)、類(lèi)別清晰的規(guī)則庫(kù)才能保證系統(tǒng)的正常運(yùn)行。因此,構(gòu)建專(zhuān)家系統(tǒng)是十分困難的,建立知識(shí)庫(kù)與規(guī)則庫(kù)也需要耗費(fèi)大量的人力、物力。
1 圖書(shū)分類(lèi)算法介紹
1.1 TF-IDF算法
TF-IDF是一種用于資訊檢索與資訊探勘的常用加權(quán)技術(shù)。TF-IDF是一種統(tǒng)計(jì)方法,用于評(píng)估字詞對(duì)于一個(gè)文件集或一個(gè)語(yǔ)料庫(kù)中一份文件的重要程度。
在一份給定的文件里,詞頻指某個(gè)給定的詞語(yǔ)在該文件中出現(xiàn)的頻率。該數(shù)字是對(duì)詞數(shù)的歸一化,以防止其偏向長(zhǎng)的文件。逆向文件頻率是一個(gè)詞語(yǔ)普遍重要性的度量。某一特定詞語(yǔ)的IDF,可以由總文件數(shù)目除以包含該詞語(yǔ)文件的數(shù)目,再將得到的商取對(duì)數(shù)得到。
某一特定文件內(nèi)的高詞語(yǔ)頻率,以及該詞語(yǔ)在整個(gè)文件集合中的低文件頻率,可以產(chǎn)生出高權(quán)重的TF-IDF。因此,TF-IDF傾向于過(guò)濾掉常見(jiàn)詞語(yǔ),保留重要詞語(yǔ)。
1.2 樸素貝葉斯算法
樸素貝葉斯法是基于貝葉斯定理與特征條件獨(dú)立假設(shè)的分類(lèi)方法。樸素貝葉斯分類(lèi)是一種十分簡(jiǎn)單的分類(lèi)算法,被稱(chēng)為樸素貝葉斯分類(lèi)是因?yàn)樵摲椒ǖ乃枷敕浅闼?。其思想基礎(chǔ)如下:對(duì)于給出的待分類(lèi)項(xiàng),求解在此項(xiàng)出現(xiàn)的條件下各個(gè)類(lèi)別出現(xiàn)的概率,哪個(gè)最大則認(rèn)為此待分類(lèi)項(xiàng)屬于哪個(gè)類(lèi)別。
樸素貝葉斯分類(lèi)的正式定義如下:①設(shè){a1,a2,…,am}為m個(gè)待分類(lèi)項(xiàng),而每個(gè)a為x的一個(gè)特征屬性;②有n個(gè)類(lèi)別的集合{y1,y2,…,yn};③計(jì)算當(dāng)x出現(xiàn)時(shí)屬于y1的概率,x出現(xiàn)時(shí)屬于y2的概率,…,直到x出現(xiàn)時(shí)屬于yn的概率;④如果當(dāng)x出現(xiàn)時(shí)屬于yk的概率最大,則x屬于yk。
2 圖書(shū)分類(lèi)設(shè)計(jì)與實(shí)現(xiàn)
圖書(shū)分類(lèi)系統(tǒng)主要分為4大模塊,如圖1所示。
(1) 圖書(shū)信息采集模塊。圖書(shū)信息采集模塊主要用于圖書(shū)信息的收集工作。主要功能是從圖書(shū)電商網(wǎng)站中將圖書(shū)信息相關(guān)頁(yè)面內(nèi)容采集到本地,并按照?qǐng)D書(shū)電商提供的圖書(shū)類(lèi)別將采集到的圖書(shū)信息聚類(lèi)在一起。
(2) 圖書(shū)數(shù)據(jù)清洗模塊。圖書(shū)數(shù)據(jù)清洗模塊主要功能是將圖書(shū)信息采集模塊收集到的圖書(shū)網(wǎng)頁(yè)信息進(jìn)行分析,去除與圖書(shū)信息無(wú)關(guān)的內(nèi)容,抽取出系統(tǒng)需要的圖書(shū)信息,并將其存入到樣本庫(kù)中。
(3) 特征提取模塊。圖書(shū)數(shù)據(jù)清洗模塊僅僅是將收集到的圖書(shū)頁(yè)面信息中與圖書(shū)相關(guān)的信息抽取出來(lái),而特征提取模塊主要功能是從入庫(kù)后的圖書(shū)信息中提取出每一類(lèi)圖書(shū)的特征,并將相關(guān)特征存入數(shù)據(jù)庫(kù)。
(4) 特征比對(duì)模塊。特征比對(duì)模塊的主要功能是根據(jù)樣本庫(kù)中的所有圖書(shū)類(lèi)別特征將未知類(lèi)別的圖書(shū)進(jìn)行分類(lèi)定位,得到該書(shū)的類(lèi)別。
2.1 圖書(shū)信息采集模塊
圖書(shū)信息采集模塊主要是從圖書(shū)電商中采集圖書(shū)的基本信息,包括圖書(shū)名稱(chēng)、作者、出版社、ISBN號(hào)、商品編碼、出版時(shí)間、內(nèi)容簡(jiǎn)介、編輯推薦、經(jīng)典書(shū)評(píng)、書(shū)摘、前言等信息。
圖書(shū)信息采集模塊主要分為4個(gè)部分:①選擇一個(gè)圖書(shū)網(wǎng)站作為數(shù)據(jù)源;②將此圖書(shū)網(wǎng)站中的圖書(shū)分類(lèi)采集到本地;③根據(jù)采集到的圖書(shū)分類(lèi)地址,獲取到此類(lèi)圖書(shū)的列表,再將圖書(shū)列表采集到本地;④將每一個(gè)圖書(shū)分類(lèi)中的圖書(shū)信息采集到本地。圖書(shū)信息采集工作不是一次性將一個(gè)網(wǎng)站內(nèi)的圖書(shū)全部采集完,而是分階段采集數(shù)據(jù),采用這種模式的原因如下:①由于現(xiàn)在各個(gè)公司都開(kāi)始對(duì)數(shù)據(jù)進(jìn)行保護(hù),很多大型網(wǎng)站都做了防爬取工作,當(dāng)進(jìn)行長(zhǎng)時(shí)間、高頻率訪問(wèn)時(shí),將獲取不到數(shù)據(jù),甚至?xí)釯P,從而達(dá)不到數(shù)據(jù)采集的目的;②由于圖書(shū)信息采集的數(shù)據(jù)源多,采集流程較長(zhǎng),各個(gè)流程雖有一定聯(lián)系,但又相對(duì)獨(dú)立,所以采用數(shù)據(jù)分步落地的方式可以使工作更加安全、有效。
2.2 圖書(shū)數(shù)據(jù)清洗模塊
圖書(shū)信息清洗模塊主要是將采集到的圖書(shū)網(wǎng)頁(yè)信息進(jìn)行數(shù)據(jù)清洗,抽取出有意義的圖書(shū)信息,主要包括圖書(shū)名稱(chēng)、內(nèi)容簡(jiǎn)介、編輯推薦、文摘等。
在圖書(shū)信息采集模塊中,已將圖書(shū)所在頁(yè)面采集到本地,并且將同一類(lèi)圖書(shū)的頁(yè)面信息存在同一文件夾下,所以在做數(shù)據(jù)清洗時(shí),提取結(jié)構(gòu)化信息則變得相對(duì)方便。
圖書(shū)信息清洗模塊主要分為3個(gè)步驟:①掃描本地圖書(shū)文件,即掃描爬取到本地的圖書(shū)網(wǎng)頁(yè)信息;②分析爬取的圖書(shū)網(wǎng)頁(yè)信息,清洗掉與圖書(shū)無(wú)關(guān)的信息,將每一本圖書(shū)的基本信息提取出來(lái);③將抽取出的圖書(shū)信息存入數(shù)據(jù)庫(kù),作為下一步研究的基本數(shù)據(jù)。
2.3 特征提取模塊
圖書(shū)結(jié)構(gòu)化信息入庫(kù)后,需要將每一類(lèi)的圖書(shū)特征抽取出來(lái),并且將提取出的特征存入數(shù)據(jù)庫(kù)中。
(1) 提取同類(lèi)圖書(shū)信息。提取同類(lèi)圖書(shū)信息是指將同一類(lèi)圖書(shū)的圖書(shū)名稱(chēng)、內(nèi)容簡(jiǎn)介、編輯推薦、文摘信息提取到一個(gè)文件中。
(2) 分詞、清洗。分詞、清洗由兩部分組成,即信息分詞部分與通用詞、停用詞清洗部分。其中分詞部分是使用NLPIR漢語(yǔ)分詞系統(tǒng)進(jìn)行分詞處理,通用詞、停用詞清洗部分是在分詞過(guò)程中一并處理的。預(yù)先準(zhǔn)備通用詞和停用詞詞庫(kù),在分詞過(guò)程中去除出現(xiàn)在通用詞和停用詞詞庫(kù)中的信息,最終得到確切的圖書(shū)描述詞匯。
(3) TF-IDF算法提取特征。當(dāng)分詞、清洗環(huán)節(jié)結(jié)束時(shí),每一個(gè)分類(lèi)中每一本書(shū)的描述信息都已經(jīng)過(guò)處理,得到了更加精煉的描述關(guān)鍵詞,再根據(jù)每一本圖書(shū)的關(guān)鍵詞,計(jì)算出在本類(lèi)別中出現(xiàn)次數(shù)最多,但在其它類(lèi)別中出現(xiàn)次數(shù)最少的詞,即可作為本類(lèi)圖書(shū)的特征詞。其中,由于不同類(lèi)別包含的圖書(shū)數(shù)量不一致,并不是某一關(guān)鍵詞出現(xiàn)在其它類(lèi)別就不能當(dāng)作本類(lèi)圖書(shū)的關(guān)鍵詞,還需要看在本類(lèi)別中出現(xiàn)的頻率是否較高。如在本類(lèi)圖書(shū)中與其它圖書(shū)類(lèi)別中出現(xiàn)頻率都較高,此種情況可視為此關(guān)鍵詞既屬于本類(lèi)圖書(shū),也可能屬于其它類(lèi)別圖書(shū)。
2.4 特征比對(duì)模塊
在特征抽取模塊中,已經(jīng)將每一類(lèi)圖書(shū)的特征提取出來(lái),并存入數(shù)據(jù)庫(kù)中。在特征比對(duì)模塊中,需要將某本未知分類(lèi)的圖書(shū)進(jìn)行定位,確認(rèn)其分類(lèi),并將此本圖書(shū)的關(guān)鍵詞加入分類(lèi)特征中。
(1)獲取待分類(lèi)圖書(shū)信息。待分類(lèi)圖書(shū)信息主要包括圖書(shū)名稱(chēng)、圖書(shū)作者、圖書(shū)簡(jiǎn)介等,其中圖書(shū)名稱(chēng)和圖書(shū)簡(jiǎn)介信息屬于關(guān)鍵信息,圖書(shū)作者信息屬于輔助信息。圖書(shū)作者信息的主要功能是可以根據(jù)作者查詢(xún)出其在哪些圖書(shū)類(lèi)別中發(fā)行過(guò)哪些圖書(shū),從而首先試圖在其擅長(zhǎng)領(lǐng)域中定位新書(shū),減少處理次數(shù)。
(2)待分類(lèi)圖書(shū)關(guān)鍵詞提取。待分類(lèi)圖書(shū)信息是未經(jīng)處理的原始信息,要通過(guò)樸素貝葉斯算法進(jìn)行圖書(shū)定位,必須先將圖書(shū)簡(jiǎn)介信息進(jìn)行分詞與去噪處理。其中分詞部分使用NLPIR漢語(yǔ)分詞系統(tǒng)進(jìn)行處理,去噪部分指去除通用詞和停用詞。由于圖書(shū)簡(jiǎn)介信息內(nèi)容并不是很豐富,所以在關(guān)鍵詞提取階段應(yīng)該盡量保留信息,以獲得更多圖書(shū)描述信息。
(3)樸素貝葉斯算法確定分類(lèi)。根據(jù)對(duì)樸素貝葉斯算法的介紹,可以知道樸素貝葉斯算法是計(jì)算當(dāng)每一個(gè)關(guān)鍵詞出現(xiàn),確認(rèn)是某一個(gè)分類(lèi)的概率值,然后將每一個(gè)關(guān)鍵詞在某一個(gè)分類(lèi)中出現(xiàn)的概率值相乘,找出乘積最大的分類(lèi),即可以確定此書(shū)屬于該分類(lèi)。由于待分類(lèi)的圖書(shū)信息有限,而某一個(gè)分類(lèi)的特征詞又有很多,再將所求得的概率值相乘,最終會(huì)是一個(gè)極小的數(shù)字,并且當(dāng)特征詞數(shù)量在一定的數(shù)量級(jí)時(shí)得到的結(jié)果將為0,所以在計(jì)算過(guò)程中,將每一個(gè)關(guān)鍵詞出現(xiàn)時(shí)確定是某個(gè)分類(lèi)的概率值放大同等倍數(shù),并不會(huì)影響計(jì)算結(jié)果的準(zhǔn)確性。
3 實(shí)驗(yàn)結(jié)果與分析
3.1 實(shí)驗(yàn)數(shù)據(jù)及結(jié)果
本文選取從京東商城上爬取的180萬(wàn)本圖書(shū)信息作為測(cè)試樣本。根據(jù)對(duì)樣本集的測(cè)試,得出每一類(lèi)圖書(shū)的特征詞抽取個(gè)數(shù)范圍對(duì)圖書(shū)分類(lèi)的效率和正確性影響最大,具體分析如下:
(1) 特征詞抽取個(gè)數(shù)范圍對(duì)數(shù)據(jù)結(jié)果的影響。在對(duì)圖書(shū)樣本集進(jìn)行訓(xùn)練的過(guò)程中,發(fā)現(xiàn)在提取不同個(gè)數(shù)的特征詞時(shí),將對(duì)最終圖書(shū)定位產(chǎn)生影響,顯示出不同的效率值與準(zhǔn)確率。經(jīng)過(guò)不斷調(diào)整,最終得到了比較理想的效率值和準(zhǔn)確率值。圖書(shū)樣本集在選取不同的特征詞抽取個(gè)數(shù)范圍時(shí)對(duì)效率值和準(zhǔn)確值的影響如表1所示。
從表1中可以得出,訓(xùn)練數(shù)據(jù)集中特征詞抽取個(gè)數(shù)對(duì)整體結(jié)果影響較大。從表中的結(jié)果數(shù)據(jù)不難看出,當(dāng)特征詞抽取個(gè)數(shù)不夠時(shí),雖然效率較高,但是正確性和精確性不高;然而當(dāng)特征詞抽取個(gè)數(shù)過(guò)多時(shí),關(guān)鍵詞過(guò)多,反而也會(huì)使正確性和精確性下降。
(2) 最優(yōu)值分析。如何確定最優(yōu)值,是在相同樣本訓(xùn)練集情況下、提取特征詞個(gè)數(shù)不同時(shí),產(chǎn)生不同的正確率和精確率以及效率值,再?gòu)倪@些值中選取出正確率、精確率及效率值表現(xiàn)相對(duì)較好的結(jié)果。
由表1可以判斷,當(dāng)特征詞抽取個(gè)數(shù)為250~400時(shí),正確率、精確率及效率值都相對(duì)較好。尤其是當(dāng)特征詞抽取個(gè)數(shù)為350時(shí),正確率、精確率最高,而效率值波動(dòng)并不是很大。所以認(rèn)為當(dāng)樣本信息足夠多、數(shù)量足夠大時(shí),選取350個(gè)特征詞進(jìn)行特征比對(duì)能得出較為理想的結(jié)果。
3.2 實(shí)驗(yàn)概述及結(jié)果分析
本次實(shí)驗(yàn)的目的是希望通過(guò)特征提取及特征比對(duì)的方法來(lái)確定某本未知分類(lèi)的圖書(shū)分類(lèi)。由上述圖書(shū)分類(lèi)系統(tǒng)整體結(jié)構(gòu)設(shè)計(jì)可以看出,實(shí)驗(yàn)主要分為3大部分:①圖書(shū)信息爬取及結(jié)構(gòu)化信息提?。虎谑褂肨D-IDF算法提取每一類(lèi)圖書(shū)的特征詞;③使用樸素貝葉斯算法定位未知圖書(shū)的分類(lèi)。由實(shí)驗(yàn)結(jié)果可知,當(dāng)特征詞抽取個(gè)數(shù)較多或較少時(shí)都會(huì)影響最終結(jié)果的正確性和精確性。經(jīng)過(guò)反復(fù)試驗(yàn),最終確定出一個(gè)較為合理的區(qū)間,在該區(qū)間中能夠得到一個(gè)較為準(zhǔn)確的結(jié)果。
4 結(jié)語(yǔ)
在圖書(shū)館工作中,圖書(shū)分類(lèi)工作十分復(fù)雜且耗時(shí),為了解決圖書(shū)分類(lèi)問(wèn)題,已有很多學(xué)者開(kāi)始從事圖書(shū)自動(dòng)分類(lèi)研究工作,并取得了一定成果。本文在這些已有技術(shù)的基礎(chǔ)上提出了基于TF-IDF及樸素貝葉斯算法來(lái)解決圖書(shū)分類(lèi)問(wèn)題。
本文采用互聯(lián)網(wǎng)圖書(shū)信息及圖書(shū)分類(lèi)作為訓(xùn)練樣本進(jìn)行實(shí)驗(yàn),在圖書(shū)信息采集過(guò)程中遇到了網(wǎng)站防護(hù)及數(shù)據(jù)延遲加載等問(wèn)題;在數(shù)據(jù)清洗過(guò)程中,分詞工具的選擇、通用詞及停用詞詞庫(kù)的構(gòu)建都十分重要,如果分詞工具選擇與詞庫(kù)構(gòu)建不合理,對(duì)最終結(jié)果正確性的影響將很大;在特征提取階段,最關(guān)鍵的問(wèn)題是關(guān)鍵詞統(tǒng)計(jì),以及此關(guān)鍵詞在其它文檔中出現(xiàn)的頻率。由于圖書(shū)種類(lèi)較多,抽取出的圖書(shū)關(guān)鍵詞也很多,并且未采用分布式系統(tǒng)處理數(shù)據(jù),所以在計(jì)算和統(tǒng)計(jì)時(shí)花費(fèi)了很長(zhǎng)時(shí)間。在整個(gè)系統(tǒng)設(shè)計(jì)中,特征比對(duì)之前的工作都是在做數(shù)據(jù)集的訓(xùn)練工作。特征比對(duì)使用之前訓(xùn)練好的數(shù)據(jù)來(lái)最終確定一本書(shū)的分類(lèi)。由于使用樸素貝葉斯算法進(jìn)行文本分類(lèi)處理,并且圖書(shū)分類(lèi)較多,每一個(gè)分類(lèi)中的特征關(guān)鍵詞也較多,所以最終得到的概率乘積會(huì)非常小。當(dāng)圖書(shū)分類(lèi)的特征關(guān)鍵詞達(dá)到一定數(shù)量時(shí),最終得到的結(jié)果值會(huì)被認(rèn)為是零,影響結(jié)果判斷,所以在特征提取時(shí),特征詞數(shù)量是決定結(jié)果正確與否的關(guān)鍵因素。在本文中,經(jīng)過(guò)反復(fù)實(shí)驗(yàn),最終得到一個(gè)區(qū)間,當(dāng)特征詞數(shù)量在該區(qū)間內(nèi)時(shí),最終得到相對(duì)準(zhǔn)確的結(jié)果。
綜上所述,本文研究針對(duì)圖書(shū)館情報(bào)學(xué)圖書(shū)分類(lèi)問(wèn)題,雖然在圖書(shū)自動(dòng)分類(lèi)領(lǐng)域已有一些較為成熟的研究成果,但是本文從另外一種角度,嘗試使用不同的技術(shù)來(lái)分析研究該問(wèn)題,并且取得了一定成果,對(duì)圖書(shū)館情報(bào)學(xué)研究有一定的參考借鑒意義。
參考文獻(xiàn):
[1]張惠.圖書(shū)自動(dòng)分類(lèi)專(zhuān)家系統(tǒng)的研究[J].佛山科學(xué)技術(shù)學(xué)院學(xué)報(bào):自然科學(xué)版,2001,19(2):37-40.
[2]李靜梅,孫麗華,張巧榮,等. 一種文本處理中的樸素貝葉斯分類(lèi)器[J].哈爾濱工程大學(xué)學(xué)報(bào),2003,24(1):71-74.
[3]涂茵.圖書(shū)分類(lèi)中常見(jiàn)問(wèn)題探討[J].河南圖書(shū)館學(xué)刊,2015(6):62-64.
[4]張笑.圖書(shū)分類(lèi)中的問(wèn)題及對(duì)策[J].卷宗,2015(3):21-21.
[5]程克非,張聰.基于特征加權(quán)的樸素貝葉斯分類(lèi)器[J].計(jì)算機(jī)仿真,2006, 23(10):92-94.
[6]張紅蕊,張永,于靜雯.云計(jì)算環(huán)境下基于樸素貝葉斯的數(shù)據(jù)分類(lèi)[J].計(jì)算機(jī)應(yīng)用與軟件,2015(3):27-30.
[7]于秀麗,王陽(yáng),齊幸輝.基于樸素貝葉斯的垂直搜索引擎分類(lèi)器設(shè)計(jì)[J].無(wú)線電工程,2015(11):13-16.
[8]羅欣,夏德麟, 晏蒲柳.基于詞頻差異的特征選取及改進(jìn)的TF-IDF公式[J]. 計(jì)算機(jī)應(yīng)用,2005,25(9):2031-2033.
[9]韓敏,唐常杰,段磊,等.基于TF-IDF相似度的標(biāo)簽聚類(lèi)方法[J].計(jì)算機(jī)科學(xué)與探索,2010(3):240-246.
[10]WU H C, LUK R W P, WONG K F,et al.Interpreting TF-IDF term weights as making relevance decisions[J].Acm Transactions on Information Systems, 2008,26(3):55-59.
(責(zé)任編輯:黃 ?。?/p>