第三章 資料探勘在圖書館上的應用
第二節 方法
前一節我們提出了所期望達成的目標,在本節中我們詳細說明所採用的方 法。
3.2.1 準備工作
在本論文第二章中有提到:完整的資料探勘處理過程中,預備資料是最耗時 的,預備資料對於資料探勘的結果是一個很大的影響因素。我們的預備資料如下:
1. 資料來源:交通大學圖書館的書目、館藏及交易歷史資料。書目、館藏 資料包含 405,785 本圖書及 526,868 本期刊,共有約 93 萬冊的資料,其 中期刊及碩博士論文等是不可外借的,因此交易歷史記錄裡沒有這些資 料,而可外借的圖書不含複本共有 282,250 本。
2. 資料選取:由於我們取得資料時,交通大學交易歷史資料的記錄是從 1998 年 1 月 1 日至 2000 年 8 月 31 日,因此我們所選取的資料為交通 大學圖書館 1998 年 1 月 1 日至 2000 年 8 月 31 日借閱及預約的交易歷 史資料,裡面共包含 487,786 筆資料,其中包含圖書、影片及光碟等,
而圖書資料共有 441,688 筆。
3. 資料的前置處理及轉換:由於本論文中所要探索的讀者社群關係有二 種,因此,針對此二種不同的探勘在此步驟也有不同處理方式。
u 館藏借閱的共同性:由於此社群關係是要找出讀者常一起借閱的館 藏,因此我們將讀者借閱及預約的每一本書之書目號視為一個項目 (Item),而每位讀者於一段時間內 (如一學期或一學年)所借閱及預 約的書目所成之集合即為一筆交易(Transaction),資料庫 D 便是由 這一群交易所組成的集合。舉例來說,若圖書館中有二位讀者
“A”及“B”,A 在一段時間內借了“1343”及“253”這二本 書,B 在一段時間內借了“3423”、“34636”及“9689”三本書,
資料庫中則會有 {1343, 253} 和 {3423, 34636, 9689}二筆交易。
u 館藏借閱的順序性:由於此社群關係在於找出讀者借閱某些書的順 序性,因此我們先將讀者借閱及預約圖書的資料依時間排序,並將 讀者借閱及預約的每一本書之書目號視為一個項目(Item),同時間 所借閱及預約的書目所成之集合即為項目集(Itemset),則同一位讀 者所借閱及預約的項目集依時間排序而成的序列即為讀者的交易 序列(Sequence)。例如:圖書館中有一位讀者“A”在 10 月 1 日借 了“3425”一本書,在 10 月 15 日又借了“9823”及“4875”,則 其交易序列即為 { (3425) (9823, 4875) }。若將每位讀者所借過的書 當成一筆交易序列,則交通大學圖書館交易歷史資料中 1998 年 1 月 1 日至 2000 年 8 月 31 日共有 14,652 筆交易序列,其中包含圖 書、影片及光碟等,而圖書的資料共有 14,450 筆。
3.2.2 探索讀者社群關係
有了3.2.1的資料後,我們將交通大學圖書館的所有讀者當成一個大社群,選 擇適當的資料探勘演算法來探索讀者的社群關係。本論文擬探索的讀者社群關係 包含:
1. 館藏借閱的共同性:採用 Apriori 的方法在交通大學圖書館書目、館藏、
交易歷史資料中探勘,找出讀者借閱館藏的共同性。
2. 館藏借閱的順序:改進部份 GSP 的方法在交通大學圖書館書目、館藏、
交易歷史資料中探勘,找出讀者借閱館藏的順序。
圖 3 - 2 - 1為利用資料探勘的方法找出讀者特性的流程圖。
圖 3 - 2 - 1:找出讀者特性
在第二章第三節中,我們介紹了 GSP 演算法。在 GSP 演算法中為了加快探 勘的速度而大量地使用記憶體,但由於交通大學圖書館可外借的館藏不計複本共 有 282,250 本之多,使得我們在做探勘時有記憶體嚴重不足之現象,因此本論文 根據圖書館館藏流通的特性,修改 GSP 演算法,大幅減少記憶體的用量,方得 以順利地探勘出讀者借閱館藏的順序性。
本論文與 GSP 不同的地方如下:
u GSP 在找單一個項目集時,加入滑動的時間視窗,並針對每一位使用者 產生個別的陣列儲存各個項目的時間,例如:假設圖書館中共有 8 本 書,有一位讀者在時間點為 10 及 50 時借閱過編號 1 的館藏,在時間點 為 45 及 65 時借閱過編號 4 的館藏,在時間點為 25 時借閱過編號為 6 的館藏,則其項目時間的陣列儲存如圖 3 - 2 - 2。
1998.1~2000.8 讀者借閱資料
Apriori and GSP
Items Times
1 → 10 → 50 → NULL 2 → NULL
3 → NULL
4 → 45 → 65 → NULL 5 → NULL
6 → 25 → NULL 7 → NULL 8 → NULL
圖 3 - 2 - 2:GSP 中儲存各個項目的時間陣列
u 由於交通大學圖書館中可外借的館藏不含複本有 282,250 本,但約有一 半(51.92%)的讀者只借過少於 20 本館藏,借閱最多的讀者也不超過 600 本,若我們僅將讀者有借閱過之館藏和時間記錄到陣列中,則每一位讀 者借閱館藏的時間陣列便可由原本 282,250 個項目減少為讀者借閱過之 館藏數(1 ~ 600)。以圖 3 - 2 - 2的例子來看,時間陣列的項目便由原本 的 8 個減為 3 個。基於此一概念,本論文將陣列中時間為空集合之項目 去除,並產生一個指標,將不為空集合之項目串連起來,如圖 3 - 2 - 3。
Items Times
1 → 10 → 50 → NULL
↓
4 → 45 → 65 → NULL
↓
6 → 25 → NULL
↓ NULL
圖 3 - 2 - 3:本論文中儲存各個項目的時間陣列
3.2.3 吸引讀者到館借閱
由於圖書館中的熱門書往往是大部份讀者均感興趣的館藏,因此,為了要吸 引讀者到館借閱,減少未曾借閱館藏的讀者人數,我們從圖書館的交易歷史記錄 中找出最熱門的二十本館藏,將這些館藏推薦給從未借閱館藏的讀者,若讀者對 這些館藏感興趣便會來借閱,如此一來即可增加來借閱的讀者人數。
圖 3 - 2 - 4為吸引讀者到館借閱的流程圖。
圖 3 - 2 - 4:吸引讀者到館借閱
3.2.4 提昇館藏借閱率
當有新進的館藏時,館員會針對每一本館藏的特性,依 ”中國圖書分類法“或
“美國國會圖書分類法”編目,並給定幾個主題來做分類。為了要提昇館藏的借 閱率,我們將館藏經由”中國圖書分類法“、“美國國會圖書分類法”及“主題”
做分類,將同一類的館藏加到相關書籍中,當下次有某位讀者借閱一本書時,我 們便可以推薦這位讀者借閱相關的館藏,藉此增加讀者借閱這些館藏的機會,將 從未被借閱過的館藏推銷出去,提昇館藏借閱率。
圖 3 - 2 - 5為提昇館藏借閱率的流程圖。
圖 3 - 2 - 5:提昇館藏借閱率
增加讀者人數 熱門書
(Top 20)
寄信給讀者 建議讀者借閱熱門書
讀者借閱書籍
資料庫系統概論
將此書目建議給讀者
MS SQL Server6.5 秘笈大剖析 架設 Web Server for SQL 6.5 Microsoft 資料庫開發手冊
… 找出類別及主題並 找出相同類別書目
(中)312:自然科學類(Natural Sciences)-->數學 (美)QA:Science-->Mathematics
資料庫管理系統-
3.2.5 提昇讀者忠誠度
為了要提昇讀者忠誠度,我們藉由資料探勘發掘出讀者的社群關係 -- 館藏 借閱的共同性及館藏借閱的順序性,運用這些社群關係適時地建議讀者借閱其他 館藏,以增加讀者繼續借閱館藏之機會,如此一來便可以提昇讀者的忠誠度,使 讀者不會只借一、兩次就不再來借閱。
圖 3 - 2 - 6為提昇讀者忠誠度的流程圖。
圖 3 - 2 - 6:提昇讀者忠誠度
3.2.6 協助圖書複本採訪政策
為了要判斷是否該購置複本,我們利用 Apriori 的方法在交通大學圖書館書 目、館藏、交易史資料中探勘,以找出讀者重複借閱(同一位讀者借閱同一本館 藏二次或二次以上)及重複預約館藏的特性,再將這些經常被重複借閱及預約的 館藏交易歷史資料做分析,若發現這些館藏有多人預約且一直有人在借閱及預 約,我們便可將這些館藏做為複本添購的依據之一。
圖 3 - 2 - 7為協助複本採訪政策的流程圖。
讀者借閱書籍
MATLAB入門引導
找出讀者之社群關係
MATLAB入門引導 PC MATLAB 入門與實例應用
將書目建議給讀者
PC MATLAB 入門 與實例應用
圖 3 - 2 - 7:複本採訪政策
3.2.7 促進館藏流通率
為了要促進館藏的流通率,我們統計出學期初最熱門的五十本預約書,並將 這些館藏的借閱期限由原本的一個月縮短為二個星期,以增加這些館藏的流通 率,讓讀者在預約後很短的時間內就可以借到這些熱門的預約書。
圖 3 - 2 - 8為促進館藏流通率的流程圖。
圖 3 - 2 - 8:促進館藏流通率 多人重複
借閱及預約 多人 Yes 預約
持續有人
借閱及預約 Yes
建議圖書館 添購複本 建議圖書館
不需添購複本
No No
讀者推薦