本發(fā)明涉及數據檢索,特別涉及一種基于集成搜索引擎的數據發(fā)現(xiàn)方法。
背景技術:
隨著web技術的不斷發(fā)展,網絡信息資源正以幾何速度的方式增長。如何從互聯(lián)網海量信息中快速檢索出與用戶相關的有用數據已成為當前急需解決的問題。搜索引擎正是在信息檢索技術的基礎上發(fā)展起來的。搜索引擎幫助本發(fā)明更好的表達和存儲現(xiàn)實世界中的本質信息,而且通過對搜索引擎中的聯(lián)接信息進行分析,可作為一種挖掘隱藏信息的有用工具?,F(xiàn)有搜索引擎單純的依賴有限搜索詞去表達用戶需求,存在這表達不完整的問題。即使是同樣的搜索詞,不同的用戶所期望的結果可能也是不同的。例如微博系統(tǒng),如果考慮微博以及相關交互對象的關系,它可以抽象為一個異構網絡,其中包含了微博、信息、標簽以及用戶等節(jié)點。微博和微博之間存在著關注和粉絲關系,微博和信息之間存在著發(fā)表和轉發(fā)關系,微博和標簽之間是一個包含關系,而用戶和微博之間存在著擁有關系?,F(xiàn)有的搜索工具并未考慮上述多維對象形成的復雜環(huán)境進行數據挖掘。
技術實現(xiàn)要素:
為解決上述現(xiàn)有技術所存在的問題,本發(fā)明提出了一種基于集成搜索引擎的數據發(fā)現(xiàn)方法,包括:
網絡爬蟲首先讀取程序配置文件,并預加載緩存采集時要用到的數據;事務管理器根據配置信息,初始化各個事務,并控制事務的運行;事務獲取處理任務,先進行爬取鏈接去重檢查,分析爬取鏈接的類型,對不同的采集類型執(zhí)行不同的處理方式,在采集時,分析是新的采集事務還是更新任務,并在獲取到鏈接的網頁源碼后,對采集到的網頁源碼執(zhí)行清洗、過濾,根據網頁信息相關特征規(guī)律提取出有效信息;事務對提取出的信息進行轉換處理,進行緩存;當緩存待保存數據達到一定數量時,事務執(zhí)行緩存數據入庫處理;同時事務管理器定時監(jiān)控各個事務的執(zhí)行狀態(tài),對異常事務進行控制管理。
優(yōu)選地,采用多層緩存結構,根據計算機的內存大小對各層緩存大小進行配置;
首先對全局爬取進行緩存;在對爬取數據庫的訪問連接過程中,采用一次性獲取批量爬取結果進行緩存;
其次采用單個事務自身的爬取緩存,每個事務各自擁有一個采集數據源緩存區(qū)域;
然后對事務在處理過程中的產生的數據進行緩存,包括在鏈接去重檢查時,緩存訪問過的網頁、媒體鏈接地址;
最后一層緩存是緩存待保存的數據,當待保存的數據達到一定數量以后,事務才對數據進行入庫保存。
優(yōu)選地,在爬取之前,根據域名生成規(guī)則依次遍歷所有可能的組合域名,對組合域名進行依次檢測,識別有效域名與無效域名,建立根域名庫;然后獲取導航站點的網頁源碼,根據根域名組成規(guī)則從網頁源碼中提取根站點地址與鏈接文本,更新根域名庫。
優(yōu)選地,對于頁面重復鏈接,為每個事務部署專門的去重容器,每個容器只存儲自己已經訪問過的鏈接地址的映射碼;去重容器只記錄自己訪問過在同一個根域名站點下的鏈接,對不屬于此根域名下的網頁地址進行丟棄處理;
當事務開始采集另一個根站點信息時,清空去重容器的歷史訪問記錄,重新記錄新的根站點訪問記錄;將信息采集器爬取站點的深度設置閾值,每個事務運行時,實際去重容器所占的內存通過爬取站點深度的閾值來控制。
本發(fā)明相比現(xiàn)有技術,具有以下優(yōu)點:
本發(fā)明提出了一種基于集成搜索引擎的數據發(fā)現(xiàn)方法,利用事務控制策略進行高效數據采集,針對多維對象之間的耦合關系進行數據挖掘。
附圖說明
圖1是根據本發(fā)明實施例的基于集成搜索引擎的數據發(fā)現(xiàn)方法的流程圖。
具體實施方式
下文與圖示本發(fā)明原理的附圖一起提供對本發(fā)明一個或者多個實施例的詳細描述。結合這樣的實施例描述本發(fā)明,但是本發(fā)明不限于任何實施例。本發(fā)明的范圍僅由權利要求書限定,并且本發(fā)明涵蓋諸多替代、修改和等同物。在下文描述中闡述諸多具體細節(jié)以便提供對本發(fā)明的透徹理解。出于示例的目的而提供這些細節(jié),并且無這些具體細節(jié)中的一些或者所有細節(jié)也可以根據權利要求書實現(xiàn)本發(fā)明。
本發(fā)明的一方面提供了一種基于集成搜索引擎的數據發(fā)現(xiàn)方法。圖1是根據本發(fā)明實施例的基于集成搜索引擎的數據發(fā)現(xiàn)方法流程圖。
本發(fā)明的搜索引擎可分為采集模塊和分析模塊。采集模塊包括爬取站點數據庫、爬取站點調度單元,事務管理控制器、事務容器、數據控制器、基礎數據庫。事務管理控制器用于多個爬取事務的創(chuàng)建、啟動、運行控制和銷毀。事務有自己獨立的容器,用于事務資源的管理,具體包括:爬取站點緩存單元,用于在內存中建立隊列來緩存事務要爬取的站點數據;事務緩存單元,用于緩存事務自身的數據;存儲緩存單元,緩存待存儲到數據庫的相關數據;采集事務處理單元,用于對采集數據的加載、實現(xiàn)數據更新、鏈接去重、存儲處理;數據清洗抽取單元,對采集的代碼進行清洗,抽取出有效信息。這些有效信息包括網頁的標題、關鍵字、摘要、正文、網頁中出現(xiàn)的字體類型、媒體特征信息。獲取網頁質量等級評價的相關信息和獲取網頁中新的爬取站點;數據存儲分析單元,將清洗抽取出來數據轉換為易存儲的形式,數據進行壓縮,組成待執(zhí)行的數據庫搜索字符串。數據控制器用于程序與數據庫之間的數據交換處理;包括全局數據源緩存單元、數據調度單元、數據訪問管理單元。全局爬取緩存單元用于處理多事務在對臨界資源訪問時的事務等待,減少多事務對數據庫的操作訪問次數。每個網絡爬蟲只有一個全局爬取緩存單元實例。數據訪問管理單元用于數據庫與程序的數據交互處理。數據調度單元實現(xiàn)單事務爬取的調度,當單事務爬取緩存單元中沒有爬取時,由數據調度單元從全局爬取緩存單元中獲取若干爬取到事務爬取緩存單元。數據調度單元在整個程序中只有一個實例。
搜索引擎的網絡爬蟲在工作時,首先讀取程序配置文件,并預加載緩存采集時要用到的數據;事務管理器。根據配置信息,初始化各個事務,并控制事務的運行;事務獲取處理任務,先進行爬取鏈接去重檢查,分析爬取鏈接的類型,對不同的采集類型執(zhí)行不同的處理方式,在采集時,分析是新的采集事務還是更新任務,并在獲取到鏈接的網頁源碼后,對采集到的網頁源碼執(zhí)行清洗、過濾,根據網頁信息相關特征規(guī)律,提取出有效信息;事務對提取出的信息進行轉換處理,進行緩存;當緩存待保存數據達到一定數量時,事務執(zhí)行緩存數據入庫處理;同時事務管理器定時監(jiān)控各個事務的執(zhí)行狀態(tài),對異常事務進行控制管理。
在爬取之前,根據域名生成規(guī)則依次遍歷所有可能的組合域名,對組合域名進行依次檢測,識別有效域名與無效域名,建立根域名庫;然后獲取導航站點的網頁源碼,根據根域名組成規(guī)則從網頁源碼中提取根站點地址與鏈接文本,更新根域名庫。
每個網絡爬蟲只有一個全局的采集事務調度單元。當事務的爬取站點緩存為空時,事務請求或等待數據調度單元從全局采集緩存站點或數據庫傳送爬取站點。事務調度過程具體為:事務獲取數據調度單元控制權限;判斷全局采集緩存站點是否為空,如為空,則從數據庫獲取一定數量的爬取緩存到全局采集緩存源,如不為空,則從全局爬取站點獲取一定數量的爬取給當前事務的爬取緩存單元。
對于單事務,其采集流程具體如下:
1.事務從事務隊列中獲取一個非空采集事務對象。如果獲取到空事務對象,則執(zhí)行事務調度。
2.判斷采集事務的深度是否超過最大的深度;事務從當前采集事務對象中獲取其當前事務對象所在的采集深度。如果采集深度超過系統(tǒng)配置的站點采集深度,則當前事務采集結束。如采集深度未超過系統(tǒng)配置的站點采集深度,則事務繼續(xù)步驟3。
3.判斷采集事務的類型;如果是網頁采集事務,則執(zhí)行步驟4,如果不是網頁采集事務,則執(zhí)行步驟5。
4.判斷是否是新網頁還是未完成的網頁鏈接;如果此采集事務訪問地址不在歷史抓取庫中,則按新發(fā)現(xiàn)的網頁進行采集即步驟7。如果此采集事務在歷史抓取庫中,從歷史抓取庫中獲取此網頁地址的上次采集信息:訪問地址、訪問時間、頁面大小、更新頻率、根域名。計算上次訪問時間與本次訪問當前時間的間隔時間是否已經超過更新頻率,如果未超過,則不進行采集,采集結束;如果已經超過,則比較當前網頁地址的頁面內容大小與上一次頁面內容大小,如果相等,則不進行采集,如果不相等,則繼續(xù)步驟6。
5.如果是媒體或文件鏈接,則執(zhí)行相應的采集文檔處理;如果是非法鏈接,則記錄此異常鏈接。
6.獲取此網頁鏈接頁面源碼,更新歷史訪問庫中此網頁地址的采集信息,執(zhí)行步驟8。
7.采集新任務網頁,獲取此網頁鏈接頁面的源碼,在歷史訪問庫中增加此網頁地址的訪問記錄。
8.執(zhí)行網頁清洗抽取,該網頁清洗抽取步驟用于從網頁源碼中提取指定的特征信息,清除網頁源碼中的無用信息或噪聲數據,然后再從清洗好數據中提取出需要的信息。進一步地,根據文本相似度算法,從網頁中提取標題,網頁中定義的關鍵字、描述性文本、標題,正文,網頁中的鏈接、媒體資源供排序分析使用。在清洗時,事務采集程序首先獲取當前事務的網頁編碼。啟動清洗器,并初始化。清除網頁編碼中的樣式編碼和注解編碼;清除網頁編號中的腳本代碼,并同時根據腳本編碼信息識別當前網頁是否存在媒體文件。如果存在則進行保存。將提取后的信息進行壓縮轉換成易于存儲的格式并進行存儲。
對于頁面重復鏈接,為每個事務部署專門的去重容器,每個容器只存儲自己已經訪問過的鏈接地址的映射碼。去重容器只需要記錄自己訪問過在同一個根域名站點下的鏈接,對不屬于此根域名下的網頁地址進行丟棄處理。當事務開始采集另一個根站點信息時,清空去重容器的歷史訪問記錄,重新記錄新的根站點訪問記錄。將信息采集器爬取站點的深度設置閾值,每個事務運行時,實際去重容器所占的內存可以通過爬取站點深度閾值來控制。
為減少事務等待,本發(fā)明采用多層緩存結構,根據計算機的內存大小對各層緩存大小進行配置。首先對全局爬取進行緩存。在對爬取數據庫的訪問連接過程中,采用一次性獲取批量爬取結果進行緩存。其次采用單個事務自身的爬取緩存。每個事務各自擁有一個采集數據源緩存區(qū)域。然后對事務在處理過程中的產生的數據進行緩存,包括在鏈接去重檢查時,緩存訪問過的網頁、媒體鏈接地址。最后一層緩存是緩存待保存的數據。當待保存的數據達到一定數量以后,事務才對數據進行入庫保存。
所述搜索引擎的分析模塊用于將采集回來的文本、媒體的基礎數據進行分析處理,為關鍵字建立索引,便于檢索系統(tǒng)的搜索。分析模塊對文本進行關鍵字提取時,依次對文本進行關鍵字提取。對于數字或中文數字漢字,如果是連續(xù)存在的,本發(fā)明當成一個關鍵詞進行處理。對于英文字母,如果遇到空格等非英文字母時,則進行劃分。對于中文漢字組成的句子,則按下面的次序進行處理:①如果字符是一連續(xù)的漢字數字,則將漢字數字連續(xù)放在一起。②如果連續(xù)三個漢字都是獨立的,沒有形成詞組,本發(fā)明將這個三個獨立的字作為一個新的詞組進行劃分。③如果①、②兩種情況都不存在,則采用基于詞庫算法進行劃分。對于其它不是數字、英文字母、簡體中文的計算機符號,則將這些計算機符號看成特別字符,每個特別字符為一個關鍵詞。
對文本進行關鍵字提取步驟進一步包括:
加載中文詞組。從分詞對象中獲取待劃分的文本;獲取分析位置及字符,判斷分析的位置是否已經是待劃分文本的末尾,如果是待劃分文本的最后位置,則劃分好的文本加上切分符,再加上待劃分文本的最后一個字符,組在新的劃分好的文本,此時文本劃分完成。從分析位置開始,尋找切分符位置。找到切分符的位置后,截取分析位置到切分符位置之間的字符,切分符加上劃分后的文本,組成已經劃分好的文本。
中文基礎詞庫的存儲采用雙層散列列表對象存儲。以單詞詞組的首個漢字為鍵,以另一個散列列表對象為鍵值的存儲結構;鍵值的散列列表對象存儲的是以鍵開頭的詞組的除去首個漢字后的詞組剩余部分。首漢字的鍵值的存儲結構是以單詞的第二個漢字為鍵,以鏈式數組為鍵值。這個鏈式數組存儲詞庫中的單詞的前兩個漢字相同、從單詞的第三個漢字開始不同的文本序列。
通過使用詞庫為依據對文本進行劃分,來尋找詞組在詞庫中是否存在。如果在詞庫中存在,則繼續(xù)匹配過程,如果不存在于詞庫中,則匹配結束,進行劃分。
進一步地,在搜索得到網頁集合后,根據搜索和網頁自身內容特征分別構造基于特征的相似圖,同時基于搜索和網頁之間的興趣關系構建搜索網頁二元關系圖,在給定少量搜索和網頁類別標記的情況下預測未標記搜索和網頁的類別。
首先要根據樣本數據及其聯(lián)系構建一個圖,節(jié)點表示樣本數據,邊表示樣本之間的聯(lián)系,邊的權重表示樣本之間聯(lián)系的緊密程度。包含了多種不同類型對象構建的搜索引擎可以表示為g=(v,e),其中v=q∪d可以表示為不同類型的頂點的集合,e為連接頂點的邊的集合。q為搜索的集合,d為網頁的集合。e=eqq∪eqd∪edd,其中eqq=q×q,eqd=q×d,edd=d×d。令gq=(q,eqq),gqd=(q,d,eqd),gd=(d,edd),則g=gqq∪gqd∪gdd。其中gq表示由搜索節(jié)點構建的子圖,gd表示由網頁節(jié)點構建的子圖,gqd表示由搜索節(jié)點和網頁節(jié)點根據興趣關系構建的子圖。
基于節(jié)點之間的以下距離函數進行定義邊的權重wij
wij=exp(-d(xi,xj)/2σ2)
在文本計算中,為兩個文本向量xi,xj之間的夾角余弦;xi和xj互為k近鄰中的節(jié)點;其中d(xi,xj)為距離函數||xi-xj||,σ為調節(jié)參數。
根據預先標記樣本的判別信息修改原有的圖結構:
1.構造gq和gd和gqd。計算gq上所有節(jié)點之間邊的平均權重wq,gd上所有節(jié)點之間邊的平均權重wd。
2:設搜索標記數據被劃分為c個類,表示為pq={pq1,pq2,...,pqc},其中pqi表示第i個類別的標記搜索的核心集。令mqi表示第i個搜索類別標記的成對約束集,若x∈pqi且y∈pqi,則將(x,y)加入mqi。設網頁標記數據被劃分為c個類,表示為pd={pd1,pd2,...,pdc},其中pdi表示第i個類別的標記網頁的核心集。令mdi表示第i個網頁類別標記的成對約束集,若x∈pdi且y∈pdi,則將(x,y)加入mdi。
3:若搜索樣本對(ql,qm)∈mqi,qk為ql和qm的鄰居,wlk<wq且wmk>wq,則將qk加入pqi,將(ql,qk)和(qm,qk)加入mqi。
4:重復3,直到pq不再變化。
5:若網頁樣本對(dl,dm)∈mdi,dk為dl和dm的鄰居,wlk<wd且wmk>wd,則將dk加入pdi,將(dl,dk)和(dm,dk)加入mdi。
6:重復5,直到pd不再變化。
7:若搜索樣本對(ql,qm)∈mqi,則修改gq令wlm=1,若ql∈pqi則修改gq令wlm=0。若網頁樣本對(dl,dm)∈mdi,則修改gd令wlm=1,若dl∈pdi則修改gd令wlm=0。
8:若搜索ql∈gp:且網頁dmgpj,則且修改gqd令wlm=1。
其中wlk,wmk,wlm分別為在搜索ql、qm、ql分別在網頁dk,dk,dm中的權重。
通過上述過程能夠豐富搜索和網頁之間的關系,使同類節(jié)點之間的聯(lián)系更為緊湊,不同類別的節(jié)點之間的聯(lián)系更加松散,從而可以更好的采用以下過程來進行分類:
1.對于類別j∈{1,...,c},以及上述子圖中的節(jié)點i∈{1,...,n},構造n×c的初始化標記矩陣y。
2.根據同構節(jié)點之間的相似性度量分別構造同構網絡上的鄰接矩陣wqq,wdd,根據異構節(jié)點之間的關系構造鄰接矩陣wqd及相應的轉置矩陣wdq。
3.構造矩陣
4.取f(0)=y(tǒng),迭代計算f(t+1)=μαsf(t)+(1-μα)y,其中μα為介于(0,1)之間的參數。
5.設f*為{f(t)}序列的極限,則圖g中的節(jié)點vi根據yi=argmaxj<cfij進行分類標記。
上述在迭代過程中,圖的每個節(jié)點都不斷的將標記信息傳播給自己的鄰居節(jié)點直到它們達到一個穩(wěn)定的狀態(tài)。
綜上所述,本發(fā)明提出了一種基于集成搜索引擎的數據發(fā)現(xiàn)方法,利用事務控制策略進行高效數據采集,針對多維對象之間的耦合關系進行數據挖掘。
顯然,本領域的技術人員應該理解,上述的本發(fā)明的各模塊或各步驟可以用通用的計算系統(tǒng)來實現(xiàn),它們可以集中在單個的計算系統(tǒng)上,或者分布在多個計算系統(tǒng)所組成的網絡上,可選地,它們可以用計算系統(tǒng)可執(zhí)行的程序代碼來實現(xiàn),從而,可以將它們存儲在存儲系統(tǒng)中由計算系統(tǒng)來執(zhí)行。這樣,本發(fā)明不限制于任何特定的硬件和軟件結合。
應當理解的是,本發(fā)明的上述具體實施方式僅僅用于示例性說明或解釋本發(fā)明的原理,而不構成對本發(fā)明的限制。因此,在不偏離本發(fā)明的精神和范圍的情況下所做的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內。此外,本發(fā)明所附權利要求旨在涵蓋落入所附權利要求范圍和邊界、或者這種范圍和邊界的等同形式內的全部變化和修改例。