一種垂直搜索引擎中對信息單元的調度方法
【專利摘要】本發明提供一種垂直搜索引擎中對信息單元的調度方法,該方法基于采集調度系統,包括如下步驟:所述調度模塊發起入口域名調度;所述抽取模塊辨識抽取出的二級域名的類型并做標記;所述調度模塊接收抽取出的二級域名并識別所述標記;判斷識別出的信息單元是否出現更新;將信息單元的域名信息、歷史更新記錄加入或更新到更新單位頁。根據歷史更新記錄預測下次出現更新的時間點,并在該時間點上執行信息單元調度。本方法對于垂直搜索中,具有信息單元特征,且每個信息單元更新周期和更新時間點差異性很大的網站有較好的適用效果。
【專利說明】一種垂直搜索引擎中對信息單元的調度方法
【技術領域】
[0001]本發明涉及一種網絡信息調度方法,具體講涉及一種垂直搜索引擎中對信息單元的調度方法。
【背景技術】
[0002]現在用戶有很多個性化的搜索要求,這類要求一般范圍特定,對數據質量要求很高,所以對應的搜索廠商推出了基于特定方向的垂直搜索,例如新聞搜索、視頻搜索、音樂搜索、微博搜索及小說搜索等等。這些垂直頻道都有一些很明顯的特點:1.數據類型一致,來源很窄,幾乎都是定向抓取;2.對于數據及時性要求很高,希望在第一時間收錄到系統中;3.數據需要持續更新;4.數據更新活躍度差異很大。
[0003]有了這些特定需求,對于采集系統,就不能像通用爬蟲那樣抓取數據了,會用一些垂直采集特定數據的方法。例如:只采集指定網站的數據,周期抓取對方網站的特定更新頁面,同時不能對對方網站進行過于頻繁的抓取。
[0004]在原有的采集系統中,調度算法是從指定網站入口頁面進入,這些頁面通常都是信息列表頁。從列表頁中抽取特定的url,通過調度,下載那些需要更新的頁面。新頁面回來后,繼續抽取url進行調度。這樣層層深入,能夠逐漸抓取到所有的頁面。
[0005]這個方法,簡單實用,但不夠高效。第一,所有的更新必須從入口發起,即使只有少量的頁面有更新,也得把入口下所有的頁面下載一遍;第二,每個頁面的更新時間不一致,卻要統一按入口的更新周期被調度,不能保證頁面抓取的及時性,或為了保證信息的及時性而增加調度頻次。這兩個問題,都會造成大量的下載浪費;同時,還可能因為施加壓力過大,導致對方網站封鎖采集方的ip出口。
[0006]例如一個網站,A視頻或者A小說是每日0點更新,B視頻或者B小說是每日10點更新。如果按照常用更新辦法,需要從入口頁發起采集,兩個信息單元共用一個調度時間,那么如果在0點的時候調度,只有A能更新,B會無效下載;如果在5點調度,A會更新不及時,B會無效下載;如果在10點調度,A會更晚被收錄。而且通常一個入口會包含很多信息單元,每個信息單元的更新時間又不一致,那么該入口的采集周期會難以協調和預測,眾口難調。
[0007]所以,如何在保證每個更新信息都能被及時采集的前提下,盡量減小下載量,是一個丞需解決的問題。
【發明內容】
[0008]為了克服上述現有技術的不足,本發明提供一種垂直搜索引擎中對信息單元的調度方法。
[0009]為了實現上述發明目的,本發明采取如下技術方案:
[0010]一種垂直搜索引擎中對信息單元的調度方法,該方法基于采集調度系統,所述采集調度系統包括:下載模塊、抽取模塊、框架和調度模塊;所述信息單元為垂直搜索引擎中的一個事物的信息聚類單位;其特征在于,所述方法包括如下步驟:
[0011]A.所述調度模塊發起入口域名調度;
[0012]B.所述抽取模塊辨識抽取出的二級域名的類型并做標記;
[0013]C.所述調度模塊接收抽取出的二級域名并識別所述標記;
[0014]D.判斷識別出的信息單元是否出現更新;
[0015]E.將信息單元的域名信息、歷史更新記錄加入或更新到更新單位頁。
[0016]F.根據歷史更新記錄預測下次出現更新的時間點,并在該時間點上執行信息單元調
[0017]度。
[0018]優選地,步驟A包括:調度模塊根據預設期調度初始入口域名。
[0019]優選地,步驟B中,所述二級域名的類型包括:列表頁、信息單元頁、信息單元頁下層頁面和圖片頁;所述信息單元頁為一個信息單元的頂層頁面。
[0020]優選地,步驟C包括:
[0021]C-1.若接收到的所述二級域名的類型為列表頁,調度模塊按該二級域名所在入口的
[0022]調度周期進行調度;返回步驟A ;
[0023]C-2.若接收到的所述二級域名的類型為信息單元頁,執行步驟E ;
[0024]C-3.若接收到的所述二級域名的類型為信息單元頁下層頁面,直接調度該二級域名;
[0025]繼續執行步驟D。
[0026]優選地,步驟D包括:
[0027]D-1.生成所述信息單元的內容指紋,并將其與頁面指紋信息表中的歷史信息進行t匕
[0028]對,以判斷該信息單元是否出現更新;
[0029]D-2.對所述信息單元的域名進行結構分析,并將其與域名排重表進行比對,以判斷
[0030]該信息單元的域名是否為首次出現。
[0031]優選地,步驟E包括:調度模塊創建所述更新單位表;所述更新單位表包括如下字段:更新單位頁域名、更新時間點、更新單位位置權重、更新單位更新頁面數和歷史更新記錄;所述更新單位為有更新需求的信息單元;所述調度包括:下載更新單位頁及其下層頁面;將每次調度的更新狀況存入所述更新單位表的歷史更新記錄中。
[0032]優選地,步驟F包括:
[0033]F-1.判斷一個更新單位是否完成全部調度,如果完成調度,將本次調度的更新狀況存入所述更新單位表的歷史更新記錄中;否則,回到步驟A ;
[0034]F-2.根據歷史更新記錄,調用預測模型,計算下次更新的時間點,并將該時間點存入所述更新單位表的更新時間點字段中,回到步驟A ;
[0035]F-3.檢查更新單位的更新時間點,當到達所述更新時間點時,繼續執行調度。
[0036]優選地,所述預測模型用于計算下次的更新時間,該預測模型包括如下參數:本次更新的時間點,更新周期,未出現更新的時間跨度,信息單元頁所在入口的位置,歷史調度次數,下載失敗次數;通過所述參數的權重配置完成所述計算。
[0037]與現有技術相比,本發明的有益效果在于:
[0038]本方法提出一種精確到更新單位的調度算法,定義單個信息體的描述單位及其更新所影響的范圍,并建立信息單元級的更新記錄,對于垂直搜索中,具有信息單元特征,且每個信息單元更新周期差異性很大的網站有較好的適用效果;
[0039]本方法應用于中搜視頻搜索項目的采集模塊中,根據每個信息單元的更新記錄,通過計算模型預測下次更新的時間,并在該時間點調度,大幅降低下載的消耗,同時對于視頻采集的及時性和穩定性,有一定的提高。
【專利附圖】
【附圖說明】
[0040]圖1是本發明實施例中的調度系統結構圖;
[0041]圖2是本發明實施例中更新單位表示意圖;
[0042]圖3是本發明實施例中入口調度流程圖;
[0043]圖4是本發明實施例中更新單位調度流程圖;
[0044]圖5是本發明實施例中更新單位調度時間預測流程圖。
【具體實施方式】
[0045]下面結合附圖對本發明作進一步詳細說明。
[0046]本發明實現了一種以更新單位作為一個調度單位進行計算的調度方法。該方法基于這樣一個現狀:同一網站的不同更新單位的更新狀態和更新時間點不同,無法統一時間更新。對于這類信息,如果以一個更新單位為一個信息更新單位,分別處理,每一個更新單位統計和使用自己的更新策略,就能及時有效的更新每一個調度單位,同時減少下載消耗。
[0047]本發明中的幾個概念描述:
[0048]入口:是指一個網站的起始頁面,通過這個頁面,我們可以遍歷出該網站的信息。調度模塊會從入口開始進行周期調度,抽取模塊會把抽取出的url在送還給調度模塊。
[0049]信息單元是指,垂直搜索引擎中,表現一個事物的信息聚類單位。在采集目標網站中,一個信息單元所需要的數據分布在一個或多個頁面。當頁面多于一個時,分頁面位于主頁面的下層。
[0050]列表頁:是指羅列出多個更新單位的頁面。例如視頻網站中的頻道頁,一個頻道頁包含多個視頻。
[0051]更新單位:網站中的信息單元,當部分數據發生更新時,只會影響自身。并且信息單元在展示期,總處于持續更新中與更新完結兩種狀態之一。對于這種正在更新或曾經更新的信息單元,把它定義為一個更新單位。例如,一個視頻網站的一部電視劇,在某個時期,它會定時增加新的分集信息,直到全部分集更新結束,那么這個電視劇所存在的頁面上的任何更新,都視為該信息單元的更新,這些頁面就是屬于一個更新單位。
[0052]更新單位頁:是指一個更新單位的頂層頁,通過該頁面,能夠訪問到該更新單位的幾乎所有信息。例如視頻網站中,“快樂大本營”這個視頻的詳情頁,該頁面會描述視頻的詳情信息,也會給出所有分集的超鏈接。它就可以作為“更新單位頁”。
[0053]更新單位表:更新單位信息集合。記錄了更新單位頁的url、上次調度時間,預計下次更新的時間點、歷史更新的記錄及其他的相關信息等。“更新單位表”如圖2所示。
[0054]本發明調度系統的結構圖如圖1所示,其流程包括:
[0055]1)框架類負責串聯采集系統的多個模塊:
[0056]a.從調度模塊中獲取需要下載的url,送給下載模塊;
[0057]b.從下載模塊拿到下載數據送給抽取抽取模塊進行內容抽取;
[0058]c.從抽取模塊拿到抽取內容后,判斷更新單位是否發生內容更新;
[0059]d.把更新的內容送給發送模塊進行信息輸出;
[0060]e.拿到抽取url再傳給調度模塊,調度模塊的決策系統決定是否調度該url。
[0061]2)調度模塊負責采集系統的調度工作,包括入口周期調度,url存儲,url調度,更新單位調度,入口調度算法,更新單位調度算法等工作。
[0062]3)下載模塊負責下載頁面,并對下載狀態進行反饋,作為調度算法的依據。
[0063]4)抽取模塊負責根據人工編寫的抽取模板,從頁面中抽取需要的數據,并進行類型標記。
[0064]具體方法是:調度模塊在啟動時,由人工加入的入口頁url開始,進行調度;下載模塊根據url下載到入口頁的信息;抽取模塊根據抽取模板,從頁面中獲取指定內容和待下載url。并標記url類型為url是信息列表頁、更新單位頁、更新單位頁下層頁面、圖片頁。當一個信息單位的主頁面和下層頁面被下載和抽取后,會被制作內容指紋,內容指紋會和頁面指紋信息表中的歷史信息進行對比,分辨頁面內容是否更新。抽取出的url會進行結構分析,并和url排重表進行比對,分辨url是否是新url。
[0065]框架模塊把抽取出的url和本頁調度狀態傳入調度模塊。
[0066](1)對于信息列表頁url繼續進行調度,處理流程和入口頁處理流程一致,依次是下載、抽取、分辨url類型、繼續調度……
[0067](2)對于更新單位頁url,存入“更新單位表”中。更新單位頁url第一次進入更新單位表中,沒有任何歷史更新記錄,需要把上次調度時間初始化為零,預計下次更新周期初始化為九小時,下次更新時間點就是上次的更新時間加上預計更新周期且比當前時間小時的當前時間,所以在首次加入后,更新單位頁會立即調度。如果更新單位頁url已存在于更新單位表中,就對更新單位頁所在入口的位置、入口的id、入口的調度類型進行修改。
[0068](3)對于更新單位頁分頁以及圖片url。這些頁面是更新單位的附屬頁面,調度模塊會根據更新單位的調度策略,對附屬頁面進行調度。
[0069](4)更新本頁調度信息。如果本頁是更新單位的頁面之一,根據本頁的下載狀態,抽取狀態、頁面更新狀態,對更新單位表進行更新。當一個更新單位的所有頁面都被下載以及更新完畢后,就意味著該更新單位的本次調度已經結束,同時記錄本次調度的更新狀況至|J“更新單位表”的“HISTORY”(歷史更新記錄)字段。這樣每一個更新單位都有一個自己的更新狀況記錄。接著根據歷史更新記錄,使用預測模型,計算下次可能更新的時間點,存入“更新單位表”的“CYCLE” (更新時間點)字段。
[0070]預測模型是一個根據歷史記錄計算未來更新時間的計算方法。通過考慮影響更新時間的多個要素以及權重組成,要素主要有更新時間點,更新周期,未更新時間長度,更新單位頁所在入口的位置,調度歷史次數,下載失敗次數。這些參數通過權重的配置,對未來的每一個按小時劃分的時間點進行計算,每個時間點獲得一個分數,如果該時間點的分數超過0.6,就把該時間點作為下次更新的預測時間。為了進行更精確的預測,會有一個探測期,在探測期,當預測時間大于九個小時,就按九小時作為預測時間,對于初期采樣有更好的適用性。待探測器結束,再按實際預測時間執行。
[0071]因為每個更新單位都是使用自己的更新記錄進行預測計算的,所以能夠計算出最適合自己的調度時間點,從而避免了舊方法中一刀切的弊端。使得正在更新的數據,能夠較精確的獲得更新時間,從而獲得更短的采集時間;對于停止更新的數據,能夠逐漸停止調度,節約下載資源。
[0072]最后,更新單位調度線程就負責檢查每個更新單位的調度時間點,當到達調度時間點,且當前入口處于工作狀態時,就進行更新單位的調度。周而復始,持續更新。
[0073]例如,視頻類網站調度時間預測模型實現過程如下:
[0074]1.記錄最近128次更新單位的調度信息和更新信息,包括調度的時間和本次調度的更新頁面數量。
[0075]i1.當本次調度結束時更新本次的調度記錄并進行下次預測時間的計算。
[0076]ii1.計算方法是把最近的128次更新記錄放入7*24的表格中,標示一周的144個小時。
[0077]iv.不同日期同一時間的放入一個單元格中,并累加。例如第一周周二 12點有更新,就放入第二列第12行,第二周周二 12點也更新了,也放在第二列第12行。同一時間點的計算方法是,距離當前時間點越近的更新狀態,占的比重越大,歷史越遠的更新狀態,占得比重越小。這樣,歷史更新記錄就被映射到一個一周的按每小時劃分的時間表里。這是根據視頻更新有周期性決定的。
[0078]V.同時根據兩次更新的時間點,得到更新周期,并把多個更新周期去除最長和最短周期,計算一個平均的更新周期。
[0079]v1.再把記錄映射到一個一周的按每天劃分的時間表里,這是為了標示是否每天有更新。
[0080]vi1.從當前時間開始,計算后面每個小時的更新概率,當更新概率大于0.6或時間超過144小時,計算停止。
[0081]vii1.更新概率=初始化區參數*權重+未調度次數參數*權重+未更新周期次數參數*權重+更新周期參數*權重+當前時間點歷史更新參數*權重+當前時間點調度參數*權重+入口層級參數*權重+入口排序位置參數*權重+時間點未更新次數參數*_權重+未更新周參數*_權重;
[0082]ix.初始化區參數=當前時間-第一次入庫時間是否小于14天,如果是,就為1,否則為O。
[0083]X.未調度次數參數=如果更新周期等于0,那么未調度次數參數等于0,否則,等于(當前時間點-上次調度時間)/更新周期。當未調度次數大于3時,未調度次數=I/未調度次數。
[0084]x1.更新周期參數=如果(取絕對值(當前時間點-上次更新時間-更新周期)+3600)/3600.0< = 0,更新周期參數等于I,否則等于1/((取絕對值(當前時間點-上次更新時間-更新周期)+3600)/3600.0)。同時,如果當前時間點-上次更新時間-更新周期的結果在0-3600秒,更新周期參數再增大0.2 ;
[0085]xi1.當前時間點歷史更新參數=如果該時間點,歷史更新、調度比大于0.3,就為1,否則為0 ;
[0086]xii1.當前時間點調度參數=如果當前時間點在0-10點之間,就為1,否則為0 ;同時如果當前時間點在0點,歷史上當日無調度或者更新/調度比大于0.2,當日最近無更新次數小于3,,那么當前時間點調度參數再擴大4倍。
[0087]xiv.入口層級參數=1/視頻在入口下所在頁面的編號。
[0088]XV.入口排序位置參數=1/視頻在頁面中的順序號。
[0089]xv1.時間點未更新次數參數=log(該時間點未更新最近次數*時間權重)
[0090]xvi1.未更新周參數=不更新時間長度小于1周時等于0,大于一周時,取一周的倍數。
[0091]xvii1.根據計算公式,當分值大于0.6時,就認為該時間點的更新概率達到要求,就退出計算。或者計算144個小時還沒有找到符合的時間也結束。
[0092]xix.如果當前時間點沒有更新,但歷史更新概率大于0.3,調度周期就是3600秒。
[0093]XX.如果找到了分值大于0.6的時間點,或者沒找到,但最大分值的時間點的分值大于0.4,調度周期就是距離當前的小時數*3600秒。
[0094]xx1.如果最大分值都不超過0.4,那么調度周期等于(未更新時間/更新周期)倍數按斐波那契數列*更新周期+(最大分值時間點到當前時間的秒數)。
[0095]xxi1.最后,如果當前調度次數在24次以內(初始化時期),且調度周期大于九小時,就調整調度周期為九小時。這是為了在初期,為保證足夠的采樣次數,和采樣密度做的限定。
[0096]最后應當說明的是:以上實施例僅用以說明本發明的技術方案而非對其限制,盡管參照上述實施例對本發明進行了詳細的說明,所屬領域的普通技術人員應當理解:依然可以對本發明的【具體實施方式】進行修改或者等同替換,而未脫離本發明精神和范圍的任何修改或者等同替換,其均應涵蓋在本發明的權利要求范圍當中。
【權利要求】
1.一種垂直搜索引擎中對信息單元的調度方法,該方法基于采集調度系統,所述采集調度系統包括:下載模塊、抽取模塊、框架和調度模塊;所述信息單元為垂直搜索引擎中的一個事物的信息聚類單位;其特征在于,所述方法包括如下步驟: A.所述調度模塊發起入口域名調度; B.所述抽取模塊辨識抽取出的二級域名的類型并做標記; C.所述調度模塊接收抽取出的二級域名并識別所述標記; D.判斷識別出的信息單元是否出現更新; E.將信息單元的域名信息、歷史更新記錄加入或更新到更新單位頁。 F.根據歷史更新記錄預測下次出現更新的時間點,并在該時間點上執行信息單元調度。
2.如權利要求1所述的方法,其特征在于,步驟A包括:調度模塊根據預設期調度初始入口域名。
3.如權利要求1所述的方法,其特征在于,步驟B中,所述二級域名的類型包括:列表頁、信息單元頁、信息單元頁下層頁面和圖片頁;所述信息單元頁為一個信息單元的頂層頁面。
4.如權利要求1所述的方法,其特征在于,步驟C包括: C-1.若接收到的所述二級域名的類型為列表頁,調度模塊按該二級域名所在入口的調度周期進行調度;返回步驟A ; C-2.若接收到的所述二級域名的類型為信息單元頁,執行步驟E ; C-3.若接收到的所述二級域名的類型為信息單元頁下層頁面,直接調度該二級域名; 繼續執行步驟D。
5.如權利要求1所述的方法,其特征在于,步驟D包括: D-1.生成所述信息單元的內容指紋,并將其與頁面指紋信息表中的歷史信息進行比對,以判斷該信息單元是否出現更新; D-2.對所述信息單元的域名進行結構分析,并將其與域名排重表進行比對,以判斷該信息單元的域名是否為首次出現。
6.如權利要求1所述的方法,其特征在于,步驟E包括:調度模塊創建所述更新單位表;所述更新單位表包括如下字段:更新單位頁域名、更新時間點、更新單位位置權重、更新單位更新頁面數和歷史更新記錄;所述更新單位為有更新需求的信息單元;所述調度包括:下載更新單位頁及其下層頁面;將每次調度的更新狀況存入所述更新單位表的歷史更新記錄中。
7.如權利要求1所述的方法,其特征在于,步驟F包括: F-1.判斷一個更新單位是否完成全部調度,如果完成調度,將本次調度的更新狀況存入所述更新單位表的歷史更新記錄中;否則,回到步驟A ; F-2.根據歷史更新記錄,調用預測模型,計算下次更新的時間點,并將該時間點存入所述更新單位表的更新時間點字段中,回到步驟A ; F-3.檢查更新單位的更新時間點,當到達所述更新時間點時,繼續執行調度。
8.如權利要求7所述的方法,其特征在于,所述預測模型用于計算下次的更新時間,該預測模型包括如下參數:本次更新的時間點,更新周期,未出現更新的時間跨度,信息單元頁所在入口的位置,歷史調度次數,下載失敗次數;通過所述參數的權重配置完成所述計笪
【文檔編號】G06F17/30GK104361005SQ201410535206
【公開日】2015年2月18日 申請日期:2014年10月11日 優先權日:2014年10月11日
【發明者】齊彥杰 申請人:北京中搜網絡技術股份有限公司