本發(fā)明屬于信息檢索技術(shù)領(lǐng)域,尤其涉及一種面向行業(yè)的主題搜索方法。
背景技術(shù):
互聯(lián)網(wǎng)已經(jīng)成為人們最重要的信息傳播和內(nèi)容獲取方式。以谷歌、百度、必應(yīng)為代表的通用搜索引擎,為人們在互聯(lián)網(wǎng)上快速、準(zhǔn)確地獲取信息提供了巨大的便利。然而,通用搜索引擎需要建立龐大的搜索數(shù)據(jù)庫,搜索內(nèi)容面向全網(wǎng),在用戶需要對特定行業(yè)進(jìn)行垂直搜索時,其查準(zhǔn)率相對偏低、資源耗費大。與此同時,以去哪兒、搜狗購物為代表的垂直搜索引擎,針對特殊領(lǐng)域?qū)iT建立自己的數(shù)據(jù)庫,行業(yè)約束大、應(yīng)用靈活性不足,查全率方面也不能盡如人意。
通過對現(xiàn)有垂直搜索引擎技術(shù)的分析可以發(fā)現(xiàn),針對給定主題的搜索算法,通常利用基于內(nèi)容的搜索方式(如fish-search,shark-search等),計算網(wǎng)頁與主題的相關(guān)度從而過濾掉與主題無關(guān)的網(wǎng)頁;然后利用基于網(wǎng)絡(luò)連接結(jié)構(gòu)的搜索算法(如相關(guān)度排序算法、pagerank算法等),計算得到的網(wǎng)頁可信度分值排序從而建立索引庫。這種方式能夠建立冗余度小的主題數(shù)據(jù)庫,但若采用相關(guān)度大小排序,雖然檢索結(jié)果與主題相關(guān)度很高,卻降低了全局性,且不能保證內(nèi)容的可靠性;若按照網(wǎng)頁可信度分值排序,則檢索結(jié)果與主題的相關(guān)度又不能保證,造成“主題漂移”。
技術(shù)實現(xiàn)要素:
本發(fā)明的發(fā)明目的是:為了解決現(xiàn)有技術(shù)中存在的以上問題,本發(fā)明提出了一種面向行業(yè)的主題搜索方法,實現(xiàn)高效獲取高準(zhǔn)確率、高覆蓋率的檢索結(jié)果。
本發(fā)明的技術(shù)方案是:一種面向行業(yè)的主題搜索方法,包括以下步驟:
a、初始化爬行站點seedurls、爬蟲爬取時間t1、主題關(guān)鍵詞向量vectortopic和爬蟲再次爬取的時間間隔t2,通過爬行站點seedurls建立初始待爬取隊列url_queue;
b、判斷是否到達(dá)爬蟲爬取時間t1,若是則結(jié)束操作,若否則進(jìn)一步判斷步驟a中建立的待爬取隊列url_queue是否為空;若待爬取隊列url_queue為空則結(jié)束操作,若待爬取隊列url_queue不為空則進(jìn)行下一步驟;
c、采用shark-search-advanced算法計算網(wǎng)頁與主題的相關(guān)度值potential_score;
d、采用pagerank-advanced算法計算網(wǎng)頁的連接值pr和網(wǎng)頁排序分值rank;
e、判斷是否到達(dá)爬蟲再次爬取的時間間隔t2,若是則返回步驟c,若否則重復(fù)步驟e。
進(jìn)一步地,所述步驟c采用shark-search-advanced算法計算網(wǎng)頁與主題的相關(guān)度值potential_score具體包括以下分步驟:
c1、初始化待爬取隊列url_queue中各網(wǎng)頁的深度depth和相關(guān)度值potential_score;
c2、從待爬取隊列url_queue隊首彈出一個網(wǎng)頁并將其設(shè)定為current_node;
c3、判斷步驟c2中的current_node對應(yīng)的深度depth是否大于0,若是則進(jìn)行下一步驟,若否則返回步驟c2;
c4、采用shark-search算法計算步驟c2中的current_node與主題的相關(guān)度值potential_score。
c5、采用shark-search算法計算步驟c2中的current_node網(wǎng)頁內(nèi)容與主題的相關(guān)度值simcurr,并選取當(dāng)前網(wǎng)頁的前n個子網(wǎng)頁;
c6、根據(jù)當(dāng)前所有網(wǎng)頁構(gòu)建網(wǎng)絡(luò)圖,采用pagerank算法計算每一個網(wǎng)頁的pr值;
c7、采用shark-search算法計算子網(wǎng)頁的simi值和深度depth;
c8、計算每個網(wǎng)頁的聯(lián)合分值scorei,再根據(jù)每個網(wǎng)頁的聯(lián)合分值scorei計算當(dāng)前已爬取網(wǎng)頁的平均分值
c9、判斷每個網(wǎng)頁的聯(lián)合分值scorei是否大于網(wǎng)頁相關(guān)性判定系數(shù)δ;若是則將該網(wǎng)頁加入待爬取隊列url_queue隊尾,若否則將該網(wǎng)頁從待爬取隊列url_queue中刪除;
c10、動態(tài)維護待爬取隊列url_queue,返回步驟c2。
進(jìn)一步地,所述步驟c5還包括判斷current_node與主題的相關(guān)度值simcurr是否大于0,若是則選取當(dāng)前網(wǎng)頁的前α*width個子網(wǎng)頁,其中α為要加入url_queue子網(wǎng)頁數(shù)目的系數(shù);若否則選取當(dāng)前網(wǎng)頁的前width個子網(wǎng)頁。
進(jìn)一步地,所述步驟c8中計算每個網(wǎng)頁的聯(lián)合分值scorei的計算公式具體為:
scorei=β*simi+(1-β)*pri
其中,β為simi在scorei中所占比重,i∈[1,n],n為網(wǎng)頁總數(shù)量。
進(jìn)一步地,所述步驟c8中計算當(dāng)前已爬取網(wǎng)頁的平均分值
進(jìn)一步地,所述步驟c8中計算網(wǎng)頁相關(guān)性判定系數(shù)δ的計算公式具體為:
其中,nmax為當(dāng)前已爬取網(wǎng)頁中聯(lián)合分值大于平均分值的網(wǎng)頁數(shù)量,nmin為當(dāng)前已爬取網(wǎng)頁中聯(lián)合分值小于平均分值的網(wǎng)頁數(shù)量。
進(jìn)一步地,所述步驟d采用pagerank-advanced算法計算網(wǎng)頁的連接值pr和網(wǎng)頁排序分值rank具體包括以下分步驟:
d1、對所有已爬取網(wǎng)頁設(shè)定初始pr值,得到頁面初始pr值向量π0;
d2、采用pagerank-advanced算法計算所有網(wǎng)頁的pr值,并進(jìn)行向量表示;
d3、根據(jù)步驟c中網(wǎng)頁與主題的相關(guān)度值potential_score,結(jié)合步驟d2中網(wǎng)頁的pr值得到網(wǎng)頁排序分值rank。
進(jìn)一步地,所述步驟d2中網(wǎng)頁的pr值進(jìn)行向量表示具體為:
πk+1=πkg
其中,πk為第k次計算網(wǎng)頁的pr值向量,
進(jìn)一步地,所述步驟d3中網(wǎng)頁排序分值rank表示為:
rank=γ*potential_score+(1-γ)*pr。
本發(fā)明的有益效果是:本發(fā)明首先利用ssa算法在互聯(lián)網(wǎng)上爬取與指定主題相關(guān)的網(wǎng)頁,并計算輸出各個網(wǎng)頁與主題的相關(guān)度;其次將ssa算法中計算出來的相關(guān)度值和pra算法計算得到的基于連接的值聯(lián)合作為網(wǎng)頁最后排序的分值,通過該分值對檢索結(jié)果進(jìn)行排序,能夠有效的提高搜索結(jié)果的準(zhǔn)確性和可靠性,從而高效獲取高準(zhǔn)確率、高覆蓋率的檢索結(jié)果,保證搜索引擎可高效率、高準(zhǔn)確度、高覆蓋率的響應(yīng)用戶面向特定行業(yè)的搜索需求。
附圖說明
圖1是本發(fā)明的面向行業(yè)的主題搜索方法的流程示意圖。
圖2是本發(fā)明中ssa算法的的流程示意圖。
圖3是本發(fā)明中pra算法的的流程示意圖。
具體實施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
如圖1所示,為本發(fā)明的面向行業(yè)的主題搜索方法的流程示意圖。一種面向行業(yè)的主題搜索方法,包括以下步驟:
a、初始化爬行站點seedurls、爬蟲爬取時間t1、主題關(guān)鍵詞向量vectortopic和爬蟲再次爬取的時間間隔t2,通過爬行站點seedurls建立初始待爬取隊列url_queue;
b、判斷是否到達(dá)爬蟲爬取時間t1,若是則結(jié)束操作,若否則進(jìn)一步判斷步驟a中建立的待爬取隊列url_queue是否為空;若待爬取隊列url_queue為空則結(jié)束操作,若待爬取隊列url_queue不為空則進(jìn)行下一步驟;
c、采用shark-search-advanced算法計算網(wǎng)頁與主題的相關(guān)度值potential_score;
d、采用pagerank-advanced算法計算網(wǎng)頁的連接值pr和網(wǎng)頁排序分值rank;
e、判斷是否到達(dá)爬蟲再次爬取的時間間隔t2,若是則返回步驟c,若否則重復(fù)步驟e。
本發(fā)明首先利用ssa算法在互聯(lián)網(wǎng)上爬取與指定主題相關(guān)的網(wǎng)頁,并計算輸出各個網(wǎng)頁與主題的相關(guān)度;再將ssa算法中計算出來的相關(guān)度值和pra算法計算得到的基于連接的值聯(lián)合作為網(wǎng)頁最后排序的分值,通過該分值對檢索結(jié)果進(jìn)行排序。
在步驟a中,本發(fā)明對搜索環(huán)境進(jìn)行初始化,即初始化爬行站點seedurls、爬蟲爬取時間t1、主題關(guān)鍵詞向量vectortopic和爬蟲再次爬取的時間間隔t2,這里的爬行站點為行業(yè)內(nèi)的權(quán)威網(wǎng)站;再通過爬行站點seedurls建立初始待爬取隊列url_queue。
在步驟b中,本發(fā)明分別判斷是否到達(dá)爬蟲爬取時間t1及步驟a中建立的待爬取隊列url_queue是否為空,當(dāng)未達(dá)到爬蟲爬取時間t1且待爬取隊列url_queue不為空時進(jìn)行下一步驟。
在步驟c中,如圖2所示,為本發(fā)明中ssa算法的的流程示意圖。本發(fā)明采用shark-search-advanced算法計算網(wǎng)頁與主題的相關(guān)度值potential_score,根據(jù)輸入的種子站點seedurls和主題關(guān)鍵詞向量vectortopic在互聯(lián)網(wǎng)上爬取并下載行業(yè)相關(guān)的網(wǎng)站,最終輸出結(jié)構(gòu)化的網(wǎng)頁內(nèi)容和已經(jīng)計算出的網(wǎng)頁相關(guān)度值potential_score和pr值,具體包括以下分步驟:
c1、初始化待爬取隊列url_queue中各網(wǎng)頁的深度depth和相關(guān)度值potential_score;
c2、從待爬取隊列url_queue隊首彈出一個網(wǎng)頁并將其設(shè)定為current_node;
c3、判斷步驟c2中的current_node對應(yīng)的深度depth是否大于0,若是則進(jìn)行下一步驟,若否則返回步驟c2;
c4、采用shark-search算法計算步驟c2中的current_node與主題的相關(guān)度值potential_score。
c5、采用shark-search算法計算步驟c2中的current_node網(wǎng)頁內(nèi)容與主題的相關(guān)度值simcurr,并選取當(dāng)前網(wǎng)頁的前n個子網(wǎng)頁;
c6、根據(jù)當(dāng)前所有網(wǎng)頁構(gòu)建網(wǎng)絡(luò)圖,采用pagerank算法計算每一個網(wǎng)頁的pr值;
c7、采用shark-search算法計算子網(wǎng)頁的simi值和深度depth;
c8、計算每個網(wǎng)頁的聯(lián)合分值scorei,再根據(jù)每個網(wǎng)頁的聯(lián)合分值scorei計算當(dāng)前已爬取網(wǎng)頁的平均分值
c9、判斷每個網(wǎng)頁的聯(lián)合分值scorei是否大于網(wǎng)頁相關(guān)性判定系數(shù)δ;若是則將該網(wǎng)頁加入待爬取隊列url_queue隊尾,若否則將該網(wǎng)頁從待爬取隊列url_queue中刪除;
c10、動態(tài)維護待爬取隊列url_queue,返回步驟c2。
在步驟c1中,本發(fā)明對待爬取隊列url_queue中各網(wǎng)頁的深度depth和相關(guān)度值potential_score賦初值為0。
在步驟c5中,本發(fā)明還包括判斷current_node與主題的相關(guān)度值simcurr是否大于0,若是則選取當(dāng)前網(wǎng)頁的前α*width個子網(wǎng)頁,其中α為預(yù)定義常量,通常被設(shè)為1.5,表示要加入url_queue子網(wǎng)頁數(shù)目的系數(shù);若否則選取當(dāng)前網(wǎng)頁的前width個子網(wǎng)頁。
在步驟c6中,本發(fā)明根據(jù)當(dāng)前已經(jīng)爬取和加入url_queue中所有網(wǎng)頁構(gòu)建結(jié)構(gòu)化的網(wǎng)絡(luò)圖,采用pagerank算法遞歸計算每一個網(wǎng)頁的pr值。
在步驟c8中,本發(fā)明計算每個網(wǎng)頁的聯(lián)合分值scorei的計算公式具體為:
scorei=β*simi+(1-β)*pri
其中,β為simi在scorei中所占比重,i∈[1,n],n為網(wǎng)頁總數(shù)量。
計算當(dāng)前已爬取網(wǎng)頁的平均分值
計算網(wǎng)頁相關(guān)性判定系數(shù)δ的計算公式具體為:
其中,nmax為當(dāng)前已爬取網(wǎng)頁中聯(lián)合分值大于平均分值的網(wǎng)頁數(shù)量,nmin為當(dāng)前已爬取網(wǎng)頁中聯(lián)合分值小于平均分值的網(wǎng)頁數(shù)量。
在步驟c10中,本發(fā)明通過對聯(lián)合分值scorei是否大于網(wǎng)頁相關(guān)性判定系數(shù)δ的網(wǎng)頁加入待爬取隊列url_queue隊尾,實現(xiàn)動態(tài)維護待爬取隊列url_queue,當(dāng)處理完當(dāng)前網(wǎng)頁的current_node后,返回步驟c2從待爬取隊列url_queue隊首彈出新的網(wǎng)頁繼續(xù)計算。
本發(fā)明通過從互聯(lián)網(wǎng)上爬取與主題相關(guān)的網(wǎng)頁,再對網(wǎng)頁進(jìn)行結(jié)構(gòu)化處理后建立數(shù)據(jù)庫。根據(jù)用戶的種子站點和查詢的關(guān)鍵詞或短語,將包含查詢串的頁面看作與主題相關(guān),計算該頁面與主題的相關(guān)度,動態(tài)地維護待爬行的優(yōu)先級隊列url_queue。本發(fā)明將與主題相關(guān)度高的url排在隊列前端,優(yōu)先被爬蟲爬??;同時將相關(guān)度低的url排在隊列后端,后被爬蟲爬取。在計算頁面與主題的相關(guān)度時,本發(fā)明不僅計算了網(wǎng)頁內(nèi)容與主題的相關(guān)度,同時將網(wǎng)頁附近的錨文本、以及錨文本上下文與主題的相關(guān)度也考慮進(jìn)來,使信息更全面。若只是考慮網(wǎng)頁與主題的相關(guān)度,便忽略了網(wǎng)頁在全網(wǎng)的影響力,可能造成網(wǎng)頁內(nèi)容相關(guān)但信息本身不可靠的情況。因此本發(fā)明將pagerank算法利用進(jìn)來,通過pagerank的全局性再次對保留下來的主題相關(guān)網(wǎng)頁進(jìn)行過濾,以此保證剩下網(wǎng)頁的全局性。
在步驟d中,如圖3所示,為本發(fā)明中pra算法的的流程示意圖。本發(fā)明采用pagerank-advanced算法計算網(wǎng)頁的連接值pr和網(wǎng)頁排序分值rank,利用網(wǎng)頁之間的鏈接結(jié)構(gòu)采用隨機沖浪的模型建立分值計算方法,公平合理的將父親站點的分值分配給孩子站點,并將ssa算法中計算得到的potential_score與該方法得到的pr值進(jìn)行結(jié)合得到一種新型的計分機制,具體包括以下分步驟:
d1、對所有已爬取網(wǎng)頁設(shè)定初始pr值,得到頁面初始pr值向量π0;
d2、采用pagerank-advanced算法計算所有網(wǎng)頁的pr值,并進(jìn)行向量表示;
d3、根據(jù)步驟c中網(wǎng)頁與主題的相關(guān)度值potential_score,結(jié)合步驟d2中網(wǎng)頁的pr值得到網(wǎng)頁排序分值rank。
在步驟d1中,本發(fā)明根據(jù)網(wǎng)頁構(gòu)成的網(wǎng)絡(luò)圖g(v,e)對所有已爬取網(wǎng)頁設(shè)定初始pr值,其中權(quán)威網(wǎng)頁賦值為prauthority,普通網(wǎng)頁賦值為1,得到頁面初始pr值向量π0。網(wǎng)絡(luò)圖g(v,e)是網(wǎng)頁之間連接結(jié)構(gòu)形成的有向圖,其中v為點集即網(wǎng)頁集合,e為邊集,即網(wǎng)頁之間的連接關(guān)系。
在步驟d2中,本發(fā)明將所有網(wǎng)頁的pr值進(jìn)行向量表示:
πk+1=πkg
其中,πk為第k次計算網(wǎng)頁的pr值向量,
在步驟d3中,本發(fā)明計算網(wǎng)頁排序分值rank的計算公式具體為:
rank=γ*potential_score+(1-γ)*pr。
針對主題較明確的搜索,將γ值設(shè)定得較大可以篩選出與主題相關(guān)度很高的結(jié)果;而如果用戶對搜索關(guān)鍵詞主題不明確,可將γ設(shè)定得較小,篩選出權(quán)威性高的網(wǎng)頁,順便也給用戶提供了一些建議。
本發(fā)明利用pagerank-advanced算法解決檢索結(jié)果相關(guān)度排序問題,具體是根據(jù)網(wǎng)頁鏈接結(jié)構(gòu)構(gòu)建有向的網(wǎng)頁連接圖,依此計算網(wǎng)頁在全網(wǎng)中的重要性,并結(jié)合網(wǎng)頁內(nèi)容與主題的相關(guān)度,建立一種新型的排序機制。網(wǎng)頁在全網(wǎng)的重要性是基于其被引用的次數(shù)和被權(quán)威網(wǎng)頁引用與否來衡量的,即一個頁面的重要性被均分并傳遞給它所引用的頁面當(dāng)中,這能代表其全局性;網(wǎng)頁的主題相關(guān)度是通過ssa算法計算而來,代表內(nèi)容局部性,能夠避免只利用網(wǎng)頁鏈接結(jié)構(gòu)帶來的“主題漂移”的缺點。將兩個能體現(xiàn)網(wǎng)頁信息相關(guān)性和可靠性的量值進(jìn)行結(jié)合,建立一種新型的排序機制,將有效的提高搜索結(jié)果的準(zhǔn)確性和可靠性。
本發(fā)明基于相關(guān)度大小和網(wǎng)頁可信度分值對檢索結(jié)果進(jìn)行更合理的排序,同時,為了避免shark-search算法的局部性,結(jié)合pagerank算法建立一種改進(jìn)的選擇性爬取網(wǎng)頁的策略,下載只與主題相關(guān)的網(wǎng)頁,建立信息冗余度小的數(shù)據(jù)庫,同時又能避免傳統(tǒng)算法的主題漂移問題。
本領(lǐng)域的普通技術(shù)人員將會意識到,這里所述的實施例是為了幫助讀者理解本發(fā)明的原理,應(yīng)被理解為本發(fā)明的保護范圍并不局限于這樣的特別陳述和實施例。本領(lǐng)域的普通技術(shù)人員可以根據(jù)本發(fā)明公開的這些技術(shù)啟示做出各種不脫離本發(fā)明實質(zhì)的其它各種具體變形和組合,這些變形和組合仍然在本發(fā)明的保護范圍內(nèi)。