1 引言
計(jì)算機(jī)技術(shù)和網(wǎng)絡(luò)技術(shù)的飛速發(fā)展帶來了Web信息量指數(shù)級(jí)的急劇增加,傳統(tǒng)的綜合性搜索引擎已經(jīng)無法滿足人們快速有效地尋找自己需要的信息的需求。據(jù)統(tǒng)計(jì),任何一個(gè)搜索引擎索引的Web頁面實(shí)際上都不到頁面總數(shù)的三分之一,而且由于檢索機(jī)制、范圍、算法等的不同,導(dǎo)致同樣一個(gè)查詢請(qǐng)求在不同搜索引擎中的查詢結(jié)果的重復(fù)率比較低。元搜索引擎是解決此問題的主要方法之一,被稱為搜索引擎之上的搜索引擎,它通過整合、處理各個(gè)成員搜索引擎的查詢結(jié)果來提高系統(tǒng)的查詢覆蓋率。
但是,現(xiàn)有的元搜索引擎仍存在一定的問題。盡管通過對(duì)成員搜索引擎所遞交的結(jié)果的分析處理,可以增大查詢覆蓋率,去除不必要的噪音,但是仍無法給用戶以最精確的結(jié)果或者檢索指導(dǎo)。聚類是將一個(gè)數(shù)據(jù)單位的集合分割成幾個(gè)稱為簇或類別的子集,每個(gè)類中的數(shù)據(jù)都有相似性,而不同聚簇中的對(duì)象具有盡可能大的相異性。通過聚類,用戶可以方便地選擇自己所需要結(jié)果的類別來查看結(jié)果,從而提高檢索效率,優(yōu)化搜索體驗(yàn)。
現(xiàn)實(shí)中,各大搜索引擎還沒有加入聚類處理,但是通過Ajax實(shí)現(xiàn)的搜索提示可以算作聚類的提示。用戶選擇相應(yīng)的提示可以作為直接搜索相應(yīng)的結(jié)果類別,但是鑒于返回結(jié)果的數(shù)量依然比較大,所以深度的聚類仍是必要的。學(xué)術(shù)研究中,現(xiàn)有的聚類方法大都是基于一種算法,如基于關(guān)聯(lián)規(guī)則的聚類算法、準(zhǔn)確描述所有配對(duì)方法(CAPP)、基于特征名詞(Salient Phrase)的聚類算法等,但是這些算法都忽略了用戶作為信息的最終使用者對(duì)信息如何有效分類具有決定作用。把用戶納入搜索體系,將其看作信息的挖掘者或提供者而不僅僅是使用者,利用用戶在搜索過程中提供的信息對(duì)信息進(jìn)行深加工才能最大限度地迎合用戶的需求。因此,本文嘗試設(shè)計(jì)并實(shí)現(xiàn)一個(gè)基于學(xué)習(xí)的元搜索框架,提出一種通過學(xué)習(xí)用戶行為來對(duì)檢索結(jié)果進(jìn)行聚類的方法,以期從用戶角度最大限度地提高信息結(jié)果的可瀏覽性,優(yōu)化檢索體驗(yàn)。
2 基于模塊的元搜索體系及各模塊設(shè)計(jì)
2.1 系統(tǒng)體系設(shè)計(jì)
系統(tǒng)總體設(shè)計(jì)如圖1所示。
圖1 系統(tǒng)總體設(shè)計(jì)圖
該系統(tǒng)分為兩層:基本流程層是一個(gè)改進(jìn)的元搜索引擎框架,在基本框架的基礎(chǔ)上添加了用戶行為搜集模塊;學(xué)習(xí)推理層是基于用戶行為學(xué)習(xí)的聚類方法,其中的推理模塊在規(guī)則庫的指導(dǎo)下對(duì)用戶行為搜集模塊遞交過來的信息進(jìn)行推理學(xué)習(xí),并將所得知識(shí)存入到知識(shí)庫,用以指導(dǎo)后續(xù)結(jié)果處理模塊對(duì)所搜集的成員搜索引擎的結(jié)果的處理。
2.2 具體模塊設(shè)計(jì)
所有模塊都有統(tǒng)一的整體架構(gòu),包括通信子模塊、功能子模塊和知識(shí)子模塊三部分,具體如圖2所示。
圖2 模塊基本架構(gòu)
通信子模塊負(fù)責(zé)所屬模塊主體同其他協(xié)作模塊主體的通信交互,對(duì)外提供接受服務(wù)和請(qǐng)求服務(wù)的接口;功能子模塊隱藏在通信子模塊后,負(fù)責(zé)具體任務(wù)的處理;知識(shí)子模塊負(fù)責(zé)本模塊功能子模塊的工作指導(dǎo)。各模塊具體功能介紹如下:
(1)用戶交互模塊
負(fù)責(zé)整個(gè)系統(tǒng)同用戶的交互,其任務(wù)包括:為用戶提供統(tǒng)一的檢索入口,并提供最終檢索結(jié)果的展示,對(duì)用戶對(duì)結(jié)果的類組選擇做出具體反應(yīng)。其知識(shí)子模塊包括用戶對(duì)結(jié)果類別選擇相應(yīng)的處理方法,可擴(kuò)展包括注冊(cè)用戶的偏好信息等,用以指導(dǎo)提供給特定用戶的制定信息組織方式的處理。
(2)用戶行為搜集模塊
負(fù)責(zé)搜集用戶行為的初始信息,包括用戶的檢索輸入和用戶對(duì)類別標(biāo)示的點(diǎn)擊、刪除操作行為兩部分信息,并對(duì)信息進(jìn)行初步加工。其知識(shí)子模塊包含基本的分詞方法,可擴(kuò)展包含各種諸如最大左向匹配、基于統(tǒng)計(jì)的分詞或者混合分詞方法的知識(shí)。
(3)成員搜索引擎調(diào)度及結(jié)果收集模塊
負(fù)責(zé)成員搜索引擎的調(diào)度和結(jié)果的收集及成員搜索引擎任務(wù)執(zhí)行的生命周期控制,并負(fù)責(zé)成員搜索引擎所遞交的結(jié)果的收集。其知識(shí)子模塊包括各個(gè)成員搜索引擎針對(duì)不同搜索內(nèi)容的能力差別和狀態(tài)信息,用以指導(dǎo)對(duì)其調(diào)度。
(4)結(jié)果處理模塊
負(fù)責(zé)成員搜索引擎所遞交結(jié)果的處理。結(jié)合知識(shí)庫的知識(shí)指導(dǎo),
需要完成去除無效鏈接、去重、相關(guān)度計(jì)算、排序、聚類等任務(wù)。其知識(shí)子模塊包括除去聚類知識(shí)外的其他知識(shí),包括無效鏈接和重復(fù)鏈接的排查方法、相關(guān)度算法、排序規(guī)則等。
(5)推理模塊
對(duì)用戶行為搜集模塊所搜集的用戶行為信息進(jìn)行推理,主要負(fù)責(zé)處理關(guān)鍵詞的相關(guān)關(guān)系、上下層次關(guān)系,并將知識(shí)存入到知識(shí)庫。考慮到擴(kuò)展性,其知識(shí)子模塊獨(dú)立為規(guī)則庫。
(6)規(guī)則庫
規(guī)則庫實(shí)質(zhì)為推理模塊的知識(shí)子模塊,為了擴(kuò)展方便將其獨(dú)立出推理模塊,負(fù)責(zé)推理模塊的推理學(xué)習(xí)過程的指導(dǎo)。
(7)知識(shí)庫
負(fù)責(zé)存儲(chǔ)推理模塊所得的知識(shí),作為后續(xù)的結(jié)果處理模塊中對(duì)結(jié)果的聚類方法的指導(dǎo)方法來源。
3 基于用戶行為學(xué)習(xí)的聚類方法
本方法基于以下假設(shè):
(1)用戶對(duì)信息的檢索不是由單一的檢索關(guān)鍵詞確定。絕大多數(shù)情況下,用戶所需要的結(jié)果由多個(gè)檢索詞細(xì)化范圍來確定。用戶可以一次輸入多個(gè)檢索詞進(jìn)行檢索,也可以逐個(gè)輸入檢索詞在結(jié)果中細(xì)化檢索范圍,找到所需的檢索結(jié)果。因此,頻繁被利用的不同檢索關(guān)鍵詞的組合標(biāo)示著組合中任意一個(gè)檢索關(guān)鍵詞的結(jié)果都非常可能含有其他檢索關(guān)鍵詞的結(jié)果。
(2)對(duì)于確定的結(jié)果,關(guān)鍵詞間的影響力不具有一對(duì)一映射關(guān)系。即對(duì)于兩個(gè)關(guān)鍵詞A和B,即使B關(guān)鍵詞可以作為A關(guān)鍵詞搜索結(jié)果的有效分組標(biāo)示,但是A關(guān)鍵詞作為B關(guān)鍵詞檢索結(jié)果的分組標(biāo)示不一定有效。
為了便于方法的精確描述,本文作如下定義:
定義1:關(guān)鍵詞的聯(lián)系是指用戶在檢索過程或者對(duì)結(jié)果的選擇過程中,有意識(shí)地將兩個(gè)檢索關(guān)鍵詞集合到一起來搜索想要的結(jié)果,那么則稱這兩個(gè)關(guān)鍵詞發(fā)生了一次聯(lián)系。
定義2:關(guān)鍵詞相關(guān)度是指對(duì)于任意一個(gè)給定的查詢關(guān)鍵詞,其他查詢關(guān)鍵詞和該給定查詢關(guān)鍵詞的組合在多用戶多次查詢歷史中被頻繁使用的程度,用來表示,其大小等于兩個(gè)關(guān)鍵詞的聯(lián)系數(shù),關(guān)鍵詞雙方互稱為相關(guān)關(guān)鍵詞。
定義3:上下義相關(guān)度是指對(duì)于給定的檢索關(guān)鍵詞A,其相關(guān)關(guān)鍵詞B的上下義相關(guān)度單向地決定了B可以作為A的聚類標(biāo)示的有效程度,用表示。越大,表示B作為A的分組標(biāo)示越有效,其大小等于用戶對(duì)給定結(jié)果聚類標(biāo)示的確認(rèn)或者刪除操作來決定的聯(lián)系數(shù)。
知識(shí)庫以一個(gè)查詢敘詞表為主體,每個(gè)查詢關(guān)鍵詞都對(duì)應(yīng)有自己的相關(guān)關(guān)鍵詞隊(duì)列。成員搜索引擎的檢索結(jié)果遞交到結(jié)果分析和處理模塊后,結(jié)果分析和處理模塊根據(jù)查詢關(guān)鍵詞的相關(guān)關(guān)鍵詞隊(duì)列對(duì)結(jié)果進(jìn)行聚類,提供給用戶進(jìn)行選擇。查詢敘詞表中每個(gè)詞條的結(jié)構(gòu)如下:
其中,ID為索引號(hào),A為檢索關(guān)鍵詞,B、C、D等為檢索關(guān)鍵詞A的相關(guān)關(guān)鍵詞,為對(duì)應(yīng)的相關(guān)關(guān)鍵詞與該檢索關(guān)鍵詞的關(guān)鍵詞相關(guān)度,為對(duì)應(yīng)的相關(guān)關(guān)鍵詞與該檢索關(guān)鍵詞的上下義相關(guān)度。B、C、D等相關(guān)關(guān)鍵詞隊(duì)列按照關(guān)鍵詞相關(guān)度由大到小排列。對(duì)于決定相關(guān)度的兩個(gè)方面,用戶在檢索過程中的輸入和用戶對(duì)于所提供的結(jié)果聚類標(biāo)示的點(diǎn)擊或刪除操作,關(guān)鍵詞相關(guān)度由兩者決定,上下義相關(guān)度由后者唯一決定。具體過程如下:
(1)當(dāng)用戶檢索需求通過用戶交互模塊傳遞給分詞模塊時(shí),分詞模塊將其規(guī)范化,剔除冗余的無意義虛詞,提取出有效關(guān)鍵詞,一方面?zhèn)鬟f給底層的成員搜索引擎使用;一方面?zhèn)鬟f給推理模塊進(jìn)行學(xué)習(xí)。推理模塊會(huì)自動(dòng)記錄關(guān)鍵詞間的聯(lián)系,并將其錄入到查詢關(guān)鍵詞敘詞表中。具體規(guī)則如下:
①用戶輸入的檢索需求被分解為單一關(guān)鍵詞A,不做任何處理;用戶的檢索需求被分解為兩個(gè)檢索詞A與B,轉(zhuǎn)入②處理;用戶的檢索需求被分解為多個(gè)檢索詞,轉(zhuǎn)入③處理。
②在A關(guān)鍵詞的相關(guān)關(guān)鍵詞隊(duì)列查找B。若不能找到,則將B關(guān)鍵詞插入到A的相關(guān)關(guān)鍵詞隊(duì)列尾,并計(jì)相關(guān)度為1;如果能找到,則將B關(guān)鍵詞聯(lián)系數(shù),即相關(guān)度加1,并調(diào)整隊(duì)列次序,使其按照由大到小排列;同理在B關(guān)鍵詞的相關(guān)關(guān)鍵詞隊(duì)列中處理A關(guān)鍵詞。
④定期(時(shí)間過長(zhǎng)或者過短都會(huì)影響實(shí)際分組效果,可人為設(shè)定或者基于統(tǒng)計(jì)方法動(dòng)態(tài)調(diào)整)排查各檢索關(guān)鍵詞相關(guān)關(guān)鍵詞隊(duì)列,將位于前列(前t或r項(xiàng))的相關(guān)關(guān)鍵詞中上下義相關(guān)度最小者的相關(guān)度置為1并排至隊(duì)尾,用以排除相關(guān)但是相對(duì)無效分組。
(2)結(jié)果處理模塊先對(duì)結(jié)果進(jìn)行去冗、相
關(guān)度計(jì)算和排序的處理,最后的聚類處理需參照知識(shí)庫相關(guān)知識(shí)進(jìn)行,具體規(guī)則如下(假定人為設(shè)定最終結(jié)果需要t個(gè)分組):
①對(duì)于單一關(guān)鍵詞檢索,直接查找對(duì)應(yīng)相關(guān)關(guān)鍵詞隊(duì)列,取前t項(xiàng)作為分組標(biāo)示,依次對(duì)排序好的結(jié)果進(jìn)行檢索,將包含有相關(guān)關(guān)鍵詞標(biāo)示的結(jié)果歸入到相應(yīng)類別。
②對(duì)于多關(guān)鍵詞檢索,首先查找對(duì)應(yīng)多個(gè)相關(guān)關(guān)鍵詞隊(duì)列,取其前r項(xiàng)(r≥t,r值過大或者過小都會(huì)影響類別和相應(yīng)多個(gè)關(guān)鍵詞的聯(lián)系程度,可人為設(shè)定或者基于統(tǒng)計(jì)方法動(dòng)態(tài)調(diào)整)中重合最多的相關(guān)關(guān)鍵詞中前t項(xiàng)作為分組標(biāo)示;若重合相關(guān)關(guān)鍵詞數(shù)目少于t,則再取各相關(guān)關(guān)鍵詞隊(duì)列中關(guān)鍵詞相關(guān)度最大的相關(guān)關(guān)鍵詞補(bǔ)足t項(xiàng)。
③若所有相關(guān)關(guān)鍵詞數(shù)目加和小于t,則可忽略t項(xiàng)限制。
(3)結(jié)果根據(jù)相關(guān)關(guān)鍵詞來聚類呈現(xiàn)給用戶后,為用戶提供相應(yīng)的類別標(biāo)示,以供用戶進(jìn)一步縮小結(jié)果范圍,提高檢索精度。用戶對(duì)所提供的相關(guān)關(guān)鍵詞聚類標(biāo)示的一次點(diǎn)擊表示相關(guān)關(guān)鍵詞和查詢關(guān)鍵詞產(chǎn)生了一次聯(lián)系;用戶對(duì)所提供的相關(guān)關(guān)鍵詞聚類標(biāo)示的一次刪除表示相關(guān)關(guān)鍵詞和查詢關(guān)鍵詞丟失了一次聯(lián)系。推理模塊可以根據(jù)此反饋,再次更新知識(shí)庫。具體規(guī)則如下:
①用戶點(diǎn)擊一個(gè)類別,將該類別對(duì)應(yīng)的關(guān)鍵詞在當(dāng)前所有檢索關(guān)鍵詞的隊(duì)列中的對(duì)應(yīng)相關(guān)度和加1,并調(diào)整相關(guān)關(guān)鍵詞隊(duì)列,使其按照由大到小排列;結(jié)果由用戶交互模塊進(jìn)行相應(yīng)處理。
②用戶刪除一個(gè)類別,將該類別對(duì)應(yīng)的關(guān)鍵詞在當(dāng)前所有檢索關(guān)鍵詞的隊(duì)列中的對(duì)應(yīng)相關(guān)度和減1,并調(diào)整相關(guān)關(guān)鍵詞隊(duì)列,使其按照由大到小排列;結(jié)果由用戶交互模塊進(jìn)行相應(yīng)處理。
③當(dāng)用戶對(duì)于所提交的結(jié)果類別沒有選擇時(shí),如果用戶只選擇查看結(jié)果,則不做任何處理;用戶繼續(xù)輸入檢索詞進(jìn)行檢索作為新一次檢索過程,按照過程(1)和(2)進(jìn)行相應(yīng)處理。
4 系統(tǒng)評(píng)測(cè)
在配置為Pentium 4 3.0GHz,512MB內(nèi)存的Windows XP平臺(tái)上,采用Python2.5.4+Django1.0.2實(shí)現(xiàn)了一個(gè)原型系統(tǒng),瀏覽器為Firefox3.5.3。受限于實(shí)驗(yàn)條件和方便系統(tǒng)調(diào)控,成員搜索引擎只選取了Google和百度,知識(shí)庫的檢索關(guān)鍵詞詞表由系統(tǒng)根據(jù)用戶的輸入動(dòng)態(tài)生成,結(jié)果處理模塊所需進(jìn)行的搜集、去冗、排序和聚類等主要的處理過程完好。檢索關(guān)鍵詞選定為“蘋果”、“論文”、“手機(jī)”三個(gè),各選定兩個(gè)成員搜索引擎的前20條結(jié)果。分析要點(diǎn)為功能的有效性和結(jié)果聚類方法的有效性兩個(gè)方面。
4.1 功能有效性
模擬用戶檢索操作,根據(jù)Google和百度搜索時(shí)所給出的檢索提示詞在原型系統(tǒng)上進(jìn)行搜索,裝填知識(shí)庫。知識(shí)裝填完成后,在原型系統(tǒng)中搜索“蘋果”時(shí)結(jié)果如圖3所示。
圖3 “蘋果”檢索結(jié)果頁面
當(dāng)點(diǎn)擊第一個(gè)聚類“iPod”,所有歸于“iPod”類的結(jié)果展示如圖4所示。
按照左側(cè)“結(jié)果類別”的順序依次進(jìn)行增量點(diǎn)擊,排位靠后的類別點(diǎn)擊次數(shù)多于排位靠前的結(jié)果,刷新后結(jié)果如圖5所示,可以看到“結(jié)果類別”完全進(jìn)行了反轉(zhuǎn),這說明該方法基于用戶點(diǎn)擊的類別調(diào)整是有效的。
4.2 結(jié)果聚類有效性
根據(jù)圖4,點(diǎn)擊“iPod”后所展示的結(jié)果都是和iPod產(chǎn)品相關(guān)的。與此類似,點(diǎn)擊“范冰冰”后所展示的結(jié)果都是和電影《蘋果》相關(guān)的結(jié)果,這說明本方法聚類是有效的。并且,本系統(tǒng)對(duì)于給定關(guān)鍵詞后信息結(jié)果類別的判斷采用的是完全匹配的方法,所以不會(huì)出現(xiàn)模糊算法所導(dǎo)致的結(jié)果歸類錯(cuò)誤的情況。理論上,本系統(tǒng)會(huì)出現(xiàn)結(jié)果遺漏,即有結(jié)果應(yīng)屬某個(gè)類別但是卻未被該類別收錄,這依賴于用戶輸入檢索關(guān)鍵詞的可靠性。假定通過大數(shù)量用戶的搜索行為所獲得的用戶輸入是可靠的,即有效信息大過于噪音,則結(jié)果聚類遺漏對(duì)用戶搜索體驗(yàn)不會(huì)有影響。
各關(guān)鍵詞的聚類結(jié)果如表1所示。
(1)從表1可以看出所有分類的數(shù)目加和大于去冗后的結(jié)果數(shù),這是因?yàn)閷?duì)于同一條結(jié)果,會(huì)含有多個(gè)關(guān)鍵詞,因此會(huì)被歸入不同的類別。考慮到實(shí)際系統(tǒng)運(yùn)行時(shí)的效率,本原型系統(tǒng)選擇成員搜索引擎所提供的結(jié)果摘要作為分析的依據(jù),而不是分析全文。如果采用分析全文的方法,可以預(yù)見的是各個(gè)分類中的結(jié)果數(shù)目會(huì)有一定幅度的上升。
(2)注意到“手機(jī)”聚類結(jié)果中有“蘋果”一個(gè)組別標(biāo)示,但是在裝填“手機(jī)”關(guān)鍵詞的時(shí)候并沒
有將“蘋果”作為裝填詞。這是因?yàn)樵拖到y(tǒng)運(yùn)行初期裝填“蘋果”時(shí),“手機(jī)”曾作為一個(gè)有效類別進(jìn)行裝填而帶來副作用。隨著用戶對(duì)該類別的忽略,執(zhí)行第3節(jié)中過程(1)的規(guī)則④排查相關(guān)關(guān)鍵詞的上下義相關(guān)度后,“蘋果”作為“手機(jī)”類別將不會(huì)存在。這從反面說明本文方法所基于的假設(shè)(2)是合理的,“手機(jī)”可以作為“蘋果”關(guān)鍵詞的有效聚類標(biāo)示,但是“蘋果”作為“手機(jī)”關(guān)鍵詞的聚類標(biāo)示不一定是有效的,即相關(guān)關(guān)鍵詞間存在上下義關(guān)系。
可以看到,該原型實(shí)現(xiàn)本文方法所得到的結(jié)果具有明顯優(yōu)勢(shì),且系統(tǒng)模擬運(yùn)行初期所進(jìn)行的知識(shí)裝填是比照Google和百度的搜索提示來進(jìn)行的,這樣的聚類結(jié)果對(duì)比現(xiàn)有的搜索結(jié)果,證明該框架和方法可行有效,實(shí)現(xiàn)了預(yù)期效果。
5 結(jié)語
基于將用戶納入搜索體系的想法,本文提出了一個(gè)改進(jìn)的元搜索引擎系統(tǒng)框架和一個(gè)基于用戶行為學(xué)習(xí)的結(jié)果聚類方法,并對(duì)其進(jìn)行了詳細(xì)的描述。原型系統(tǒng)運(yùn)行實(shí)例證明了改進(jìn)的系統(tǒng)框架結(jié)合基于用戶行為學(xué)習(xí)的結(jié)果聚類方法是可行的,通過對(duì)用戶行為的學(xué)習(xí)產(chǎn)生了有效的結(jié)果聚類標(biāo)示并據(jù)此標(biāo)示將結(jié)果進(jìn)行了有效的聚類,同時(shí)實(shí)現(xiàn)了動(dòng)態(tài)調(diào)整,提高了搜索結(jié)果的可瀏覽性。
受限于實(shí)驗(yàn)條件,該系統(tǒng)沒有在多用戶高負(fù)荷的條件下運(yùn)行檢測(cè),以期達(dá)到最優(yōu)的動(dòng)態(tài)平衡狀態(tài)。同時(shí),如何更好地處理檢索關(guān)鍵詞的上下層次關(guān)系和如何標(biāo)準(zhǔn)化不同用戶輸入導(dǎo)致的聚類標(biāo)示繁雜有待進(jìn)一步研究。
小編推薦優(yōu)秀的電子期刊 《工程地質(zhì)計(jì)算機(jī)應(yīng)用》給期刊投稿多少錢
論文指導(dǎo) >
SCI期刊推薦 >
論文常見問題 >
SCI常見問題 >