專利名稱::一種輕量級個性化搜索引擎及其搜索方法一種輕量級個性化搜索弓I擎及其搜索方法(一)
技術領域:
本發(fā)明涉及的是一種網絡技術,尤其是搜索引擎技術。(二)
背景技術:
.如今的因特網對多數人己不再陌生,網絡搜索引擎成了人們獲取信息的一個重要途徑,人們在希望搜索引擎能夠提供全面的信息資源的同時,也對搜索引擎的服務提出了更高的要求,這是搜索引擎設計的一種挑戰(zhàn),也是未來搜索引擎的發(fā)展趨勢。縱觀目前因特網上流行的搜索引擎,普遍是基于關鍵字的查詢,用戶的每次搜索都是相互獨立的,不能根據用戶的興趣給出適應用戶需求的查詢結果。而如今社會分工的細化與個人興趣的不同,決定了不同領域的用戶,不同社會群體對信息需求的不同。于是現在的搜索引擎應該能夠根據用戶的不同需求來對查詢結果進行排序,也就是針對不同用戶的個性化定制,使搜索結果根據用戶需求收斂,使搜索引擎趨向于反映用戶的偏好。為了適應這種需求,人們提出了個性化的搜索引擎的設計思想,通過增加用戶行為數據庫來跟蹤用戶的興趣或需求。但是,這需要在服務器端建立龐大的用戶信息庫與用戶行為庫,同時要定期對這些數據進行維護,在如今面向因特網的搜索來說,這種在服務器端的巨大開銷限制了這種方法的可行性,此外通過用戶登錄搜索的方式,對于公共搜索引擎的用戶來說,也不是一種方便的信息查詢方式。專利申請?zhí)枮?00510050198.5,名稱為"基于鏈接分析的個性化搜索引擎方法"中公開的技術方案,是通過建立知識網絡模型描述用戶興趣,建立多態(tài)鏈接網絡記錄網絡節(jié)點之間鏈接的不同類別,進而在此基礎上展開鏈接分析得到搜索結果。(三)
發(fā)明內容本發(fā)明的目的在于提供一種在搜索引擎的服務器端不需要增加存儲開銷,符合用戶興趣的個性化搜索引擎的一種輕量級個性化搜索引擎及其搜索方法。本發(fā)明的目的是這樣實現的本發(fā)明的搜索引擎由信息抓取模塊、信息檢索模塊和用戶個性分析模塊三部分連接組成,其中信息抓取模塊由抓取程序和索引程序組成,因特網信息資源和Web庫接入信息抓取模塊,信息抓取模塊的輸出連接用戶個性分析模塊,用戶興趣記錄與查詢關鍵字輸入信息檢索模塊,信息檢索模塊與用戶個性分析模塊,信息檢索模塊與用戶個性分析模塊結合提供個性化檢索服務。本發(fā)明的搜索引擎的搜索方法為(1)信息抓取模塊從配置了需要抓取的URL的Web庫中獲取抓取列表,提交給抓取程序,通過抓取程序抓取因特網信息資源提交給索引程序,同時根據需要更新Web庫內容;(2)信息檢索模塊獲取用戶的査詢請求,提取用戶客戶端的興趣記錄,同時把査詢結果返回給用戶,信息檢索模塊將用戶興趣記錄與査詢關鍵字同時提交給用戶個性分析模塊;用戶個性分析模塊生成用戶特征向量提交給索引器/查詢分析器;索引器/查詢分析器根據索引庫中的信息與用戶特征向量結合得到查詢結果;最后通過信息檢索模塊返回給用戶。本發(fā)明的搜索方法還可以包括1.所述的用戶興趣記錄的獲取方法為搜索引擎記錄用戶的點擊搜索結果的行為,對于只點搜索表單按鈕而未訪問搜索結果的行為不予記錄,用戶可以通過點擊搜索結果中的訪問并記錄我的興趣鏈接來訪問搜索結果列表中感興趣的網站,并讓搜索引擎存儲訪問記錄。2.所述的用戶興趣記錄采用cookie形式存儲在用戶的客戶機中。3.所述的用戶個性分析模塊生成用戶特征向量是將用戶興趣記錄抽象成一個向量,同時根據用戶興趣記錄與信息源文本集、即抓取模塊所維護的信息庫的相似性特征。4.所述的用戶個性分析模塊生成用戶特征向量還包括進一步抽象成基于關鍵字權重的向量。本發(fā)明基于現今個性搜索的不足,提出了一種輕量級的個性化搜索引擎的設計思想與實現方法。所謂輕量級是指在搜索引擎的服務器端不需要增加存儲開銷,充分利用客戶端的資源來實現個性化的搜索。通過客戶端的存儲與服務器端的用戶行為跟蹤引擎的結合,本發(fā)明給出了針對用戶不同需求,符合用戶興趣的個性化搜索引擎的解決方案。整個系統(tǒng)由"信息抓取模塊","信息檢索模塊"和"用戶個性分析模塊"三部分。其中"信息抓取模塊"由"抓取程序"和"索引程序"組成;"信息檢索模塊"與"用戶個性分析模塊"結合提供個性化檢索服務。整體結構圖如圖1所示,可以看出虛線左側負責搜索引擎數據的抓取,虛線右側負責搜索引擎的搜索。本發(fā)明的主要特點體現在(1)搜索引擎的服務器端不需要增加存儲開銷,充分利用客戶端的資源來實現個性化的搜索;(2)根據用戶的不同需求來對査詢結果進行排序,也就是針對不同用戶的個性化定制;(3)基于向量空間的個性化檢索模型。(四)附圖是本發(fā)明的框圖。具體實施方式本發(fā)明的搜索引擎由信息抓取模塊、信息檢索模塊和用戶個性分析模塊三部分連接組成,其中信息抓取模塊由抓取程序和索引程序組成,因特網信息資源和Web庫接入信息抓取模塊,信息抓取模塊的輸出連接用戶個性分析模塊,用戶興趣記錄與查詢關鍵字輸入信息檢索模塊,信息檢索模塊與用戶個性分析模塊,信息檢索模塊與用戶個性分析模塊結合提供個性化檢索服務。結合圖l,虛線左側負責搜索引擎數據的抓取,虛線右側負責搜索引擎的搜索。(1)信息抓取模塊從Web庫(配置了需要抓取的URL)中獲取抓取列表,提交給抓取程序,通過抓取程序抓取因特網信息資源提交給索引程序,同時根據需要更新Web庫內容。(2)信息檢索模塊是用戶與搜索引擎的一個接口,它可以獲取用戶的査詢請求,提取用戶客戶端的興趣記錄,同時可以把査詢結果返回給用戶。信息檢索模塊將用戶興趣記錄與查詢關鍵字同時提交給用戶個性分析模塊;用戶個性分析模塊生成用戶特征向量提交給索引器;索引器/查詢分析器根據索引庫中的信息與用戶特征向量結合得到査詢結果;最后通過信息檢索模塊(搜索接口)返回給用戶。1.用戶興趣記錄的獲取用戶搜索關鍵字和點擊的搜索結果鏈接網址在一定程度上能反映出用戶的訪問偏好,相比之下,搜索結果網址鏈接比搜索關鍵字更能體現用戶實際的興趣,因為用戶可能嘗試性地輸入某關鍵字后發(fā)現無感興趣的內容時,往往不會去點擊搜索結果中的鏈接。同時對于是否獲取用戶訪問記錄也涉及到用戶隱私問題,需要由用戶自由決定是否讓搜索引擎記錄用戶興趣。搜索引擎記錄用戶的點擊搜索結果事性的行為(連同搜索的關鍵字),對于只點搜索表單按鈕而未訪問搜索結果的行為不予記錄,因為后者相對于前者來說意思不是太大。關于用戶隱私與自主性,用戶可以通過點擊搜索結果中的"訪問并記錄我的興趣"鏈接來訪問搜索結果列表中感興趣的網站,并讓搜索引擎存儲訪問記錄。2.用戶興趣記錄的存儲搜索引擎需要根據用戶的興趣來返回搜索結果,但是在服務器端的搜索引擎如何獲取這些用戶興趣是一個需要解決的問題,同時在獲取這些用戶興趣記錄的同時還要保證盡量小的額外開銷。記錄用戶興趣的方式一般方法是在搜索引擎服務器端建立用戶注冊信息表,為每一個搜索的用戶維護用戶注冊信息,同時記錄每個用戶的訪問行為。但是這有兩個缺點,一是在服務器端需要額外的龐大的存儲開銷,二是每次用戶訪問時都要更新用戶行為表中的記錄,就算采用session延遲寫入數據庫的方式來記錄用戶訪問行為,也會因為服務器端需要創(chuàng)建大量的session會話而消耗服務器內存資源,對于面向全網的搜索引擎來說,其開銷更是不可想象。輕量級個性化搜索引擎用戶興趣記錄采用cookie形式存儲在用戶的客戶機中。Cookie是服務器發(fā)送給瀏覽器的體積很小的純文本信息,用戶以后訪問同一個Web服務器時瀏覽器會把它們原樣發(fā)送給服務器。通過讓服務器讀取它原先保存到客戶端的信息,網站能夠為瀏覽者提供一系列的方便。同時,由于瀏覽器一般只允許存放300個Cookie,每個站點最多存放20個Cookie,每個Cookie的大小限制為4KB,因此Cookie不會占用搜索引擎用戶的客戶機太多資源,更不會被用作"拒絕服務"攻擊手段,也避免了一些采用登錄搜索方式中維護大量用戶注冊信息與行為信息的開銷。另外還可以利用cookie的存儲來實現用戶的訪問歷史搜索記錄。3.基于向量空間的個性化檢索模型在獲取用戶興趣記錄并在用戶客戶機存儲用戶訪問行為之后,如何根據用戶興趣記錄來對搜索結果重新排序,并返回針對用戶偏好的不同的搜索結果是搜索引擎需要解決的另一個重要問題。這需要在算法上實現個性化査詢,個性化査詢應該在普通査詢的基礎上,根據用戶興趣記錄來對普通查詢結果進行過濾和非序,使查詢結果趨向于反映用戶的個人需要。普通搜索引擎的査詢遵循了向量空間模型,"抓取模塊"所得到的信息源頁面是以基于關鍵字權值的向量的形式存在于索引庫中,搜索關鍵字與信息源頁面存在一種相關性??紤]到用戶興趣記錄中的搜索關鍵字和訪問網站信息與普通搜索時的關鍵字之間的相似性,本方法可以基于此引入用戶特征向量的概念,將用戶興趣記錄抽象成一個向量,同時根據用戶興趣記錄與信息源文本集(抓取模塊所維護的信息庫)的相似性特征,用戶模型也可以進一步抽象成基于關鍵字權重的向量。下面是本發(fā)明的一個具體實例-1用戶興趣的獲取用戶的行為可以通過其訪問的網站信息來反映,所以可以將在一定時期內一定數量的網站信息來作為記錄用戶興趣的模型InterestWeb。模型的各屬性如下:<table>tableseeoriginaldocumentpage8</column></row><table>用戶輸入關鍵字搜索后,在搜索結果列表中,若點擊"訪問并記住我的興趣"鏈接后,系統(tǒng)將首先調用搜索引擎的用戶興趣記錄獲取程序,將用戶所點擊列表項對應的網站的標題、網址、快照地址和摘要組裝成interestWeb對象同時傳遞給用戶興趣記錄存儲程序,并利用3.2的方案來實現用戶興趣記錄的存儲。注意,如果用戶輸入關鍵字搜索后,未點"訪問并記住我的興趣"鏈接,系統(tǒng)將不會在用戶客戶機上記錄訪問信息,同時在下次搜索時也不會為該訪問記錄重新排序。這也在一定程度上體現了個性化搜索引擎的用戶自主性。2用戶興趣記錄的存儲搜索引擎可以為用戶創(chuàng)建M(0〈M<10)個cookie。在cookie個數未超過上限時,用戶每搜索一個關鍵字并點擊"興趣訪問"鏈接時,cookie將增加一條cookie記錄,cookie由cookie名禾卩cookie值組成,cookie名預置成"key01,key02,…,keyM",每條cookie值的記錄格式如下標題"用戶關鍵字槲網站l標題ll網站l網址ll網站l快照l1網站1摘要$$網站2標題|l網站2網址ll網站2快照l|網站2摘要$$......SS網站N標題Il網站N網址Il網站N快照ll網站N摘要"(0<N〈6)字符編碼采用UTF-8格式,另外cookie的名和值不能包含cookie的名字和值不能包含空格和[]()=,〃/@:;字符,所以在原字符串轉換成UTF-8存儲之前需要進行字符串轉換,如titleStr二R印lace(titleStr,〃&equal〃,〃=〃)將字符串的轉換成&equal,字符串的替換由自定義方法toCookieStr(String)來實現。存儲算法如下(其中M為搜索引擎為每個用戶保存興趣關鍵字cookie項的上限值,N為搜索引擎為每個用戶某關鍵字存儲歷史訪問記錄的上限值)1)接收interestWeb對象;2)取出對象中的已經過UTF-8編碼的各屬性關鍵字(key)、網站標題(title)、網址(url)快照地址(cachedUrl)和摘要(summary);并將各字符串通過toCookieStr(String)方法轉換成適應cookie存儲的格式;3)根據關鍵字key,設置計數器i,在i小于M的情況下遍歷cookie中的cookie項,査找cookie中貼前的字符串Str01dPre與關鍵字key匹配的cookie項,若找到匹配的項則退出循環(huán)。根據計數器最終的結果i,若i小于M說明找到匹配轉4),否則轉5);4)得到cookie名"key"+i;5)拼接待存儲串StrNew,title+”II”,,+url+,,II,,+cachedUrl+,,||,,十s醒ary;6)取出cookie項中鼎后的字符串Str01dSuc,用split("\\$\\$")方法將該字符串分隔成字符數組,判斷數組長度是否超過N,若數組長度不超過N則轉7),否則轉8);7)修改新cookie項為原cookie串##前字符串Str01dPre+"##"+待存儲串StrNew+"$$"+原cookie串##后字符串Str01dSuc,將新串存入cookie,替換原cookie項,轉13);8)去除原串最后一個"$$"符后面的字符串(連同"$$"符)得到字符串Str01dSucTemp;修改新cookie項為原cookie串###前符串+"##"+待存儲串+"$$"+Str01ldSucTemp,將新串存入cookie,替換原cookie項,轉13);9)根據i生成cookie名"key"+(i+l);10)拼接待存儲串StrNew,key+"抑"+title+"||"+url+,,II,,+cachedUrl+,,||,,+summary;11)設置cookie項目生命周期;12)將新cookie項存入cookie中;結束。3基于向量空間的個性化檢索模型1)在用戶提交搜索時,搜索引擎將同時獲取用戶搜索關鍵字和用戶興趣記錄,如果未能獲取用戶興趣記錄或用戶興趣記錄為空,則搜索引擎進行普通查詢并返回結果。如果獲取了用戶興趣記錄,則搜索引擎將用戶興趣交由"用戶個性分析模塊"處理,處理過程算法如下2)搜索引擎讀取cookie,將每一個cookie項中用"$$"分隔的字符串轉換成interestWeb對象,將key01-keyM的所有cookie項轉換成用戶興趣訪問列表interestWebList;3)遍歷interestWebList,抽取各關鍵字,存入用戶興趣關鍵字向量interestKeyVector;4)抽取各網站標題interestWeb.getTitle(),對網站標題進行分詞處理,得到多個次關鍵字,將這些次關鍵字附加到用戶興趣關鍵字向量interestKeyVector中;5)建立用戶興趣關鍵字權值向量interestWeightVector,目前認定這些用戶興趣關鍵字權值是相同的,將interestWeightVector中各值初始化成1。其中,分詞也是搜索引擎需要解決的重要問題,中文分詞不同于英文分詞,因為英文單詞之間的空格足以區(qū)分不同的査詢關鍵字,而中文固有的特征決定了需要采取更有效的方式來實現分詞。一般的分詞方式有三種1)單字切分中文搜索詞一個一個單字分開來。這種方式的優(yōu)點是分詞算法簡單,最大的缺點是會極大增加索引,相應地,索引條目的內容也會增多,嚴重影響搜索效率。2)二分法對中文搜索詞中每兩個字進行次切分,比如,對搜索詞"計算機學院"進行二分法切分后得到的關鍵字將會是"計算/算機/機學/學院"。這種分詞方式只是機械地對搜索詞進行切分,不考慮詞義與詞法,所以會產生大量的無用關鍵字,同時增加了無用的索引開銷。3)詞庫分詞這是目前最理想的中文分詞方式,方式是根據已經建立好的詞的集合,即詞庫來匹配搜索詞的子串。比如,詞庫中已經存在"計算機"、"學院"和"計算機學院"三個詞,則"計算機學院"便可以切分成這三個關鍵字。假設搜索引擎中"抓取模塊"獲取的索引庫中,每個URL包含的關鍵字身量為尺=(n…人)其中n…人該URL中的關鍵字每個關鍵字的權值向量為'F=(Vl,V2,""v)其中v"v"…,v"是每個關鍵字對應的權值用戶興趣模型中用戶特征向量為[/=(Ml,"2,"")其中"""2"'"""是用戶興趣關鍵字(包括分詞后的次關鍵字),用戶興趣模型中每個關鍵字的權值都設置為默認值l。接下去的任務是建立用戶興趣模型與信息源文本集之間的相關性,相關性的算法如下1)搜索引擎通過普通査詢得到初始査詢結果;2)對于1)中査詢結果中給出的各URL,篩選符合條件《門U^0的URL,其中0為空集,若不存在這些URL轉5),否則轉3);3)為滿足條件的URL計算與用戶興趣模型之間的相關性S-J^(1"'《"),其中K的計算方法為若Ae《,且^=、J化=v尸否則K=04)排除相關性為零的頁面,按相關性S從大到小對搜索結果進行排序,最后將結果返回給用戶,轉6);5)將普通査詢結果返回給用戶;6)結束。權利要求1、一種輕量級個性化搜索引擎,由信息抓取模塊、信息檢索模塊和用戶個性分析模塊三部分連接組成,其特征是其中信息抓取模塊由抓取程序和索引程序組成,因特網信息資源和Web庫接入信息抓取模塊,信息抓取模塊的輸出連接用戶個性分析模塊,用戶興趣記錄與查詢關鍵字輸入信息檢索模塊,信息檢索模塊與用戶個性分析模塊,信息檢索模塊與用戶個性分析模塊結合提供個性化檢索服務。2、一種輕量級個性化搜索引擎的搜索方法,其特征是(1)信息抓取模塊從配置了需要抓取的URL的Web庫中獲取抓取列表,提交給抓取程序,通過抓取程序抓取因特網信息資源提交給索引程序,同時根據需要更新Web庫內容;(2)信息檢索模塊獲取用戶的査詢請求,提取用戶客戶端的興趣記錄,同時把査詢結果返回給用戶,信息檢索模塊將用戶興趣記錄與査詢關鍵字同時提交給用戶個性分析模塊;用戶個性分析模塊生成用戶特征向量提交給索引器/査詢分析器索引器/査詢分析器根據索引庫中的信息與用戶特征向量結合得到査詢結果;最后通過信息檢索模塊返回給用戶。3、根據權利要求2所述的一種輕量級個性化搜索引擎的搜索方法,其特征是所述的用戶興趣記錄的獲取方法為搜索引擎記錄用戶的點擊搜索結果的行為,對于只點搜索表單按鈕而未訪問搜索結果的行為不予記錄,用戶可以通過點擊搜索結果中的"訪問并記錄我的興趣"鏈接來訪問搜索結果列表中感興趣的網站,并讓搜索引擎存儲訪問記錄。4、根據權利要求2所述的一種輕量級個性化搜索引擎的搜索方法,其特征是所述的用戶興趣記錄采用cookie形式存儲在用戶的客戶機中。5、根據權利要求2所述的一種輕量級個性化搜索引擎的搜索方法,其特征是所述的用戶個性分析模塊生成用戶特征向量是將用戶興趣記錄抽象成一個向量,同時根據用戶興趣記錄與信息源文本集、即抓取模塊所維護的信息庫的相似性特征。6、根據權利要求5所述的一種輕M:級個性化搜索引擎的搜索方法,其特征是所述的用戶個性分析模塊生成用戶特征向量還包括進一歩抽象成基于關鍵字權重的向量。全文摘要本發(fā)明提供的是一種輕量級個性化搜索引擎及其搜索方法。由信息抓取模塊、信息檢索模塊和用戶個性分析模塊三部分連接組成,其中信息抓取模塊由抓取程序和索引程序組成,因特網信息資源和Web庫接入信息抓取模塊,信息抓取模塊的輸出連接用戶個性分析模塊,用戶興趣記錄與查詢關鍵字輸入信息檢索模塊,信息檢索模塊與用戶個性分析模塊,信息檢索模塊與用戶個性分析模塊結合提供個性化檢索服務。本發(fā)明的服務器端不需要增加存儲開銷,充分利用客戶端的資源來實現個性化的搜索。通過客戶端的存儲與服務器端的用戶行為跟蹤引擎的結合,本發(fā)明給出了針對用戶不同需求,符合用戶興趣的個性化搜索引擎的解決方案。文檔編號G06F17/30GK101127043SQ200710072608公開日2008年2月20日申請日期2007年8月3日優(yōu)先權日2007年8月3日發(fā)明者研初,寒吳,張健沛,張澤寶,潑徐,磊徐,李泓波,李連江,靜楊,董喜雙申請人:哈爾濱工程大學