殷云霞,楊松濤
(1.合肥工業(yè)大學(xué) 計算機與信息學(xué)院,安徽 合肥 230009;2.安徽中醫(yī)學(xué)院 醫(yī)藥信息工程學(xué)院,安徽 合肥 230031)
21世紀(jì)是知識經(jīng)濟的時代,迅猛發(fā)展的信息網(wǎng)絡(luò)化浪潮正以巨大的力量改變著人們的生活.隨著網(wǎng)絡(luò)圖書館、數(shù)字圖書館等現(xiàn)代技術(shù)應(yīng)用在圖書館中,圖書館的組織機構(gòu)和管理理念都發(fā)生了重大的變化.堅持“以人為本”的理念,最大化地發(fā)揮圖書館的館藏服務(wù)職能,是圖書館新的發(fā)展方向.
近年來興起的數(shù)據(jù)挖掘技術(shù),以其科學(xué)的算法發(fā)現(xiàn)海量數(shù)據(jù)中的規(guī)律,向人們揭示數(shù)字中的奧秘,進而成為了管理者決策管理的有力助手,已經(jīng)被廣泛應(yīng)用于社會的各個領(lǐng)域.而每日增加成百上千條數(shù)據(jù)借閱記錄的高校圖書館管理信息系統(tǒng),更是一個海量數(shù)據(jù)的殿堂,它也吸引了不少國內(nèi)外學(xué)者對其中的數(shù)據(jù)進行分析和研究.
關(guān)聯(lián)規(guī)則,一般用于發(fā)現(xiàn)交易數(shù)據(jù)庫中不同商品(項)之間的潛在聯(lián)系,例如,“購買了面包和黃油的顧客有90%又購買了牛奶”,這就是一個典型的關(guān)聯(lián)規(guī)則挖掘[1]的實例.
設(shè)I={i1,i2,…,in}是項的集合,稱為項集.D是任務(wù)相關(guān)數(shù)據(jù)事務(wù)的集合.這里事務(wù)T是項的集合,對應(yīng)每一個事務(wù)有唯一的標(biāo)志,記作TID.設(shè)A是一個I中項的集合,如果A?T,那么稱作事務(wù)T包含A.
一個關(guān)聯(lián)規(guī)則是形如A?B的蘊涵式,這里A?I,B?I并且A∩B=Φ.每種發(fā)現(xiàn)的模式都有一個表示其有效性的確定性度量,關(guān)聯(lián)規(guī)則的確定性度量為支持度(Support)和置信度(Confidence)[2].支持度(Support)是事務(wù)集中包含X和Y的事務(wù)數(shù)與所有事務(wù)數(shù)之比,記為Support(A?B)=P(A∩B),它反應(yīng)規(guī)則適用面的寬窄.置信度(Confidence), 指包含A和B的事務(wù)數(shù)與包含A的事務(wù)數(shù)之比,記為Confidence(A?B)=P(B/A)=P(B∩A)/P(A),它反映規(guī)則的意義深淺.
評價模式時,需要結(jié)合度量值的門檻值(最小支持度閾值min_sup和最小置信度閾值min_conf[2])進行模式訓(xùn)練,同時滿足用戶定義的最小支持度閾值和最小置信度閾值的關(guān)聯(lián)規(guī)則稱為強規(guī)則[3].
最經(jīng)典的關(guān)聯(lián)規(guī)則挖掘算法是Apriori[4]算法,其思想是利用已知的高頻數(shù)據(jù)項集推導(dǎo)其他的高頻數(shù)據(jù)項集,它是一種寬度優(yōu)先算法.
算法步驟如下[5-6]:
(1)在第一次掃描中,Apriori算法計算D中所有單個項目的支持度,生成所有長度為1的1-頻繁項L1.
(2)如果Lk-1已生成,現(xiàn)在可用它來生成Lk,若有兩個Lk-1,如果其前面的Lk-2相同,而最后一項不同,則將這樣的兩個Lk-1進行連接后得到候選k-項集的集合Ck.
(3)對候選k-項集進行剪枝,從Ck中刪除所有(k-1)-子集不全包含在Lk-1中的項集.
(4)掃描數(shù)據(jù)庫事務(wù)D,對于其中的每一個事務(wù),如果它包含Ck中的候選項集C,則將C的計數(shù)值加1(掃描開始時,初始值為0).掃描Ck,計算這些候選項集的支持度,刪除其支持度低于用戶給定的最小支持度的項集.最后,生成所有長度為k的頻繁項集Lk.
(5)重復(fù)步驟(2)到(4),直到Lk為空.
(6)對L1到Lk取并集即為最終的頻繁集L.
本文利用關(guān)聯(lián)規(guī)則數(shù)據(jù)挖掘技術(shù),對高校圖書館讀者借閱圖書的數(shù)據(jù)進行了分析,以期挖掘讀者借閱圖書的潛在規(guī)律,具體從以下3個方面研究:
(1)圖書——圖書關(guān)聯(lián).單次借閱過程中,哪些書籍經(jīng)常一起被借閱,即“借閱了甲書就會再借閱乙書”的可能性.
(2)讀者——圖書關(guān)聯(lián).根據(jù)讀者借閱書籍的歷史記錄,分析不同類型的讀者經(jīng)常會借閱哪些書籍,如“A類用戶喜好借閱程序設(shè)計書籍,B類用戶喜歡借閱數(shù)據(jù)庫類書籍”.
(3)高頻借閱書籍統(tǒng)計.統(tǒng)計各專業(yè)領(lǐng)域的高頻借閱書籍.
然后,再將挖掘到的經(jīng)驗規(guī)律,通過圖書館的公共檢索平臺反饋給讀者,為讀者做好圖書的推薦服務(wù),以便讀者更快速、準(zhǔn)確、全面地獲取自己所要檢索的信息,進而更好地發(fā)揮館藏職能.
作為一個服務(wù)性的平臺,首先要考慮服務(wù)對象的需求.讀者在檢索平臺上想獲取一些什么信息,是設(shè)計者首先需要考慮的問題.傳統(tǒng)的公共檢索系統(tǒng),主要基于事務(wù)數(shù)據(jù)庫平臺,完成一些簡單的諸如某本圖書是否在館檢索和某位讀者當(dāng)前的借閱狀況(歷史借閱信息)檢索,功能較為單一.
圖1 公共檢索系統(tǒng)優(yōu)化流程圖Fig.1 Public retrieval system diagram
新一代的圖書檢索系統(tǒng),應(yīng)該讓讀者獲取更深入的多元化信息.例如,某本書籍是否存在,與該書關(guān)聯(lián)性比較強的圖書有哪些,哪些書籍經(jīng)常與該書一起被借閱,等等.當(dāng)讀者查閱某個領(lǐng)域的書籍時,能提供該領(lǐng)域被借頻率較高的一些圖書的信息,做好圖書的推薦工作,并能根據(jù)讀者的歷史借閱信息,研究該讀者的借閱規(guī)律,針對其借閱喜好推薦新書.
優(yōu)化系統(tǒng)的設(shè)計流程如圖1所示.對原始圖書流通數(shù)據(jù)庫的有關(guān)數(shù)據(jù)進行抽取、清洗、轉(zhuǎn)換到數(shù)據(jù)倉庫中,并進行數(shù)據(jù)挖掘(DM),并將分析和挖掘得到的規(guī)律,作為一些模塊,設(shè)計到公共檢索系統(tǒng)架構(gòu)中,優(yōu)化系統(tǒng)服務(wù).
在圖1中,讀者檢索和圖書檢索模塊主要繼承傳統(tǒng)檢索系統(tǒng)功能,提供讀者和館藏圖書的一些基本信息檢索.比如,讀者的個人基本信息、讀者的歷史借閱信息檢索和圖書的作者、出版社、出版時間、分類等信息檢索,這些都是基于事務(wù)數(shù)據(jù)庫的平面數(shù)據(jù).而圖書推薦服務(wù)模塊為新增優(yōu)化功能,其中,“圖書——圖書推薦服務(wù)”是取關(guān)聯(lián)規(guī)則數(shù)據(jù)挖掘中“圖書——圖書關(guān)聯(lián)”分析的結(jié)果,將單次借閱中經(jīng)常被一起借閱的圖書信息應(yīng)用到檢索平臺上,當(dāng)讀者檢索某圖書信息時,系統(tǒng)推薦經(jīng)常與之一起被借閱的其他圖書信息,供讀者參考;“讀者——圖書推薦服務(wù)”是取 “讀者——圖書關(guān)聯(lián)”規(guī)則挖掘的結(jié)果,按照讀者歷次借閱圖書的記錄信息,分析該類讀者經(jīng)常借閱的書籍,并向其做出“圖書推薦服務(wù)”;“高頻借閱圖書推薦服務(wù)”是在檢索平臺上,按讀者所檢索的圖書所屬領(lǐng)域,做一些高頻借閱書籍統(tǒng)計,并推薦給讀者.
圖書館數(shù)據(jù)庫系統(tǒng)包括幾個子信息系統(tǒng),主要是采編子系統(tǒng)、期刊子系統(tǒng)、館藏書目系統(tǒng)、圖書流通系統(tǒng)、讀者信息系統(tǒng)、圖書館辦公子系統(tǒng)、圖書館人事子系統(tǒng)等.其中,圖書流通子系統(tǒng)是圖書館數(shù)據(jù)更新最多、最頻繁的系統(tǒng),它直接面向讀者,處理讀者的借閱、歸還、續(xù)借、預(yù)約等業(yè)務(wù)[1],每天都會添加成百上千條新的流通記錄,本文的數(shù)據(jù)挖掘工作正是針對這一部分的業(yè)務(wù)數(shù)據(jù)展開的.
主要對讀者借閱書籍的規(guī)律進行關(guān)聯(lián)規(guī)則挖掘.在研究中需要提取讀者、圖書以及讀者借閱圖書的有關(guān)數(shù)據(jù),數(shù)據(jù)源來自于某高校圖書館管理系統(tǒng)GODLIXP.該系統(tǒng)主要包括館藏書目信息表、讀者信息表、借閱信息表等,其結(jié)構(gòu)包括:館藏書目信息表(書名、作者、出版社、出版地、出版日期、索書號、圖書條碼);讀者信息表(借書證號、讀者條碼、姓名、性別、讀者級別、級別代碼、單位、單位代碼);借閱信息表(讀者條碼、圖書條碼、索書號、借書時間、還書日期).選取2010年5月至7月兩個月的兩個庫中的圖書借閱歷史信息,共12 343條.為便于專業(yè)性分析,選取其中的計算機圖書借閱相關(guān)記錄6 632條進行了挖掘研究,讀者借閱計算機圖書的部分歷史流通數(shù)據(jù)如圖2所示.
圖2 讀者借閱歷史數(shù)據(jù)Fig.2 Reader book borrow digital
針對已經(jīng)選取并合并后的數(shù)據(jù),做如下處理:
(1)刪除一些信息不全(有噪音)不利于挖掘的記錄,如只有條碼信息、索書號缺失或者只有索書號信息、條碼缺失的記錄;
(2)關(guān)聯(lián)挖掘需要分析單次借閱數(shù)據(jù),而原庫中的借閱數(shù)據(jù)均是以每個讀者借閱每本書籍的記錄形式來存儲信息的,需要對每個讀者單次的借閱圖書信息(如借書數(shù)目、圖書名稱等)進行標(biāo)記,以方便挖掘.因此,針對現(xiàn)行的圖書借閱表,添加一個”單次借閱標(biāo)記”列,并編寫存儲過程,給每天借閱歷史記錄添加相應(yīng)的借閱標(biāo)記.
(3)由于關(guān)聯(lián)規(guī)則挖掘的是同一次借閱過程中書籍之間的相關(guān)性規(guī)律,所以在單次借閱中只借一本書的記錄對于挖掘無意義,故刪除.
經(jīng)過這樣的處理后,最終滿足條件的記錄為2 187條.
4.3.1 挖掘工具及環(huán)境
以SQL SERVER 2005的商業(yè)智能平臺SQL Server Business Intelligence Development Studio(BI)為挖掘工具,實驗環(huán)境是:Intel core(TM) i3 CPU M350,Windows 7家庭版操作系統(tǒng),2 G內(nèi)存.
4.3.2 借閱信息挖掘
通過前期的數(shù)據(jù)預(yù)處理操作,建立相應(yīng)的數(shù)據(jù)倉庫后,采用關(guān)聯(lián)規(guī)則挖掘技術(shù),分別針對單次借閱過程中圖書之間的關(guān)聯(lián)性(圖書——圖書關(guān)聯(lián))和不同類型(年級、專業(yè)、性別等)讀者借閱圖書的關(guān)聯(lián)性信息(讀者——圖書關(guān)聯(lián))進行分析挖掘.經(jīng)過反復(fù)訓(xùn)練模型,獲取的結(jié)果集如下:圖書——圖書關(guān)聯(lián),即在單次借閱記錄中,哪些圖書經(jīng)常被一起借閱.選取最小支持度min_sup為1%,最小置信度min_conf為70%,在SQL SERVER 2005的BI平臺上,獲取如圖3所示的挖掘結(jié)果.
圖3 圖書-圖書關(guān)聯(lián)挖掘結(jié)果圖Fig.3 Book-book association mining diagram
通過該挖掘?qū)嵺`,可以看到諸如“《 軟件工程》∧《visual C#.Net數(shù)據(jù)庫開發(fā)經(jīng)典案例分析》?《C# 2.0程序設(shè)計教程》”的規(guī)律,即當(dāng)讀者有2%的可能借閱圖書《軟件工程》和《visual C#.Net數(shù)據(jù)庫開發(fā)經(jīng)典案例分析》時,有 80%的可能會再借閱圖書《C# 2.0程序設(shè)計教程》的信息.經(jīng)過驗證,此結(jié)論符合事實數(shù)據(jù)借閱規(guī)則.
同樣,讀者——圖書關(guān)聯(lián),則針對不同類型的讀者,根據(jù)各讀者的歷史借閱信息,主要考慮讀者系別和學(xué)歷層次等因素,挖掘其圖書借閱規(guī)則,選取最小支持度為1%,最小置信度為80%,獲取了如圖4所示的結(jié)果,經(jīng)驗證與現(xiàn)實借閱規(guī)律基本相符.
圖4 讀者-圖書關(guān)聯(lián)挖掘結(jié)果圖Fig.4 Reader-book association mining diagram
優(yōu)化的核心在于增加了圖書推薦服務(wù)模塊,本文主要針對這一模塊進行設(shè)計描述.該模塊功能如圖5所示.
圖5 圖書推薦服務(wù)功能圖Fig.5 Book recommend service diagram
其中,圖書關(guān)聯(lián)推薦子模塊,根據(jù)已有的單次借閱圖書關(guān)聯(lián)挖掘,利用DMX[7-8]等編程語言,將挖掘結(jié)果應(yīng)用到前臺,可以根據(jù)讀者輸入要檢索的圖書信息,推薦出與該圖書關(guān)聯(lián)性強的其他圖書,指導(dǎo)讀者借閱.
讀者分類圖書推薦子模塊,即根據(jù)當(dāng)前讀者登錄的身份信息,識別讀者類別,并根據(jù)讀者——圖書關(guān)聯(lián)挖掘的結(jié)果,預(yù)測讀者所要檢索的書籍,向讀者推薦符合讀者類別的圖書,對讀者起提示作用.
高頻借閱圖書推薦子模塊,可對原始事務(wù)數(shù)據(jù)庫進行統(tǒng)計查詢,將各領(lǐng)域高頻借閱圖書信息推薦給讀者.當(dāng)讀者初次借閱某領(lǐng)域書籍、對某個領(lǐng)域不是很熟悉時,可以通過了解該領(lǐng)域有哪些圖書被高頻借閱,來獲取一定信息,提高查閱效率.
整個檢索系統(tǒng)的設(shè)計,本著“以人為本”的理念,利用歷史流通數(shù)據(jù)來挖掘規(guī)律,再從檢索平臺中把規(guī)律和經(jīng)驗反饋給讀者,讓讀者從簡單易用的檢索中獲取更多的實用信息,也讓傳統(tǒng)、枯燥的數(shù)字記錄變得生動起來,讓數(shù)據(jù)挖掘技術(shù)在實際生活中發(fā)揮更大的作用.
參考文獻:
[1] 謝憬憬,丁愛萍 .關(guān)聯(lián)規(guī)則在圖書管理中的應(yīng)用[J].河南大學(xué)學(xué)報:自然科學(xué)版,2008,38(4):422-424.
[2] 范明.數(shù)據(jù)挖掘概念與技術(shù)[M].孟小峰,譯.北京:機械工業(yè)出版社, 2001.
[3] 李紅,胡學(xué)鋼.基于CIE-樹的關(guān)聯(lián)規(guī)則最大頻繁項集的求解[J].計算機工程與應(yīng)用,2006(3):180-181.
[4] 吳聰聰,李忠嘩,何巫廉.基于矩陣的最大頻繁模式挖掘及其更新算法[J].微電子學(xué)與計算機,2007,24(12):29-31.
[5] 魏育輝,潘潔.圖書流通數(shù)據(jù)的關(guān)聯(lián)挖掘量化分析方法[J].現(xiàn)代情報,2005(11):108-110.
[6] 蔡會霞,朱潔.關(guān)聯(lián)規(guī)則的數(shù)據(jù)挖掘在高校圖書館系統(tǒng)中的應(yīng)用[J].南京工業(yè)大學(xué)學(xué)報:自然科學(xué)版,2005,27(1):85-88.
[7] Inmon W H.數(shù)據(jù)倉庫[M].王志海,譯.北京:機械工業(yè)出版社, 2006.
[8] 茍元琴.基于數(shù)據(jù)挖掘的圖書館管理系統(tǒng)設(shè)計[J].科技信息,2009(25):60-61.