基于Coreseek的垂直搜索引擎研究與優(yōu)化的方法
【專利摘要】一種基于Coreseek的垂直搜索引擎研究與優(yōu)化的方法:通過對(duì)圖書領(lǐng)域的網(wǎng)站進(jìn)行分析,將待爬取的關(guān)于圖書的網(wǎng)頁(yè)作為種子鏈接,進(jìn)行爬取信息;對(duì)主題爬蟲爬取到的圖書網(wǎng)頁(yè)信息進(jìn)行結(jié)構(gòu)化抽取,把非結(jié)構(gòu)化的數(shù)據(jù)轉(zhuǎn)化為結(jié)構(gòu)化數(shù)據(jù);擴(kuò)充LibMMSeg分詞庫(kù),將結(jié)構(gòu)化的數(shù)據(jù)存入數(shù)據(jù)庫(kù),并進(jìn)行中文分詞,使用Coreseek建立索引,通過主題爬蟲系統(tǒng)從互動(dòng)出版社網(wǎng)站爬取出版社和作者信息,結(jié)合搜狗細(xì)胞詞庫(kù),按照LibMMSeg的詞庫(kù)格式添加到詞典文件中;對(duì)用戶輸入的關(guān)鍵字通過索引在數(shù)據(jù)庫(kù)中查詢,對(duì)查詢到的數(shù)據(jù)按照制定的排序算法進(jìn)行排序后,返回給用戶查看。本發(fā)明適應(yīng)于短文本的圖書搜索,更加能滿足用戶使用搜索引擎尋找圖書信息的需求。
【專利說明】
基于Coreseek的垂直搜索引擎研究與優(yōu)化的方法
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及一種垂直搜索引擎研究與優(yōu)化。特別是涉及一種基于Coreseek的垂直搜索引擎研究與優(yōu)化的方法。
【背景技術(shù)】
[0002]目前在相關(guān)技術(shù)中,有搜索引擎和網(wǎng)絡(luò)爬蟲技術(shù)。其中搜索引擎主要分為兩類:一種是通用搜索引擎。通用搜索引擎采用關(guān)鍵詞匹配的方式檢索信息,搜索系統(tǒng)會(huì)根據(jù)查詢?cè)~將匹配到的所有結(jié)果全部返回給用戶,由于一個(gè)詞的含義可能有許多種,因此在這些返回結(jié)果中就存在很多不是用戶想要的信息。
[0003]另一類搜索引擎是垂直搜索引擎。垂直搜索引擎的出現(xiàn)解決了通用搜索引擎所面臨的問題,垂直搜索引擎并不索引網(wǎng)絡(luò)中的全部信息,它只關(guān)注某一類的特定信息,因此所需要的硬軟件資源耗費(fèi)相對(duì)較少。同時(shí)由于垂直搜索引擎只關(guān)注特定主題的信息,當(dāng)用戶需要較高準(zhǔn)確度的檢索結(jié)果時(shí),垂直搜索引擎就可以滿足這種特殊需求。
[0004]網(wǎng)絡(luò)爬蟲技術(shù)主要分為兩類:一種是通用網(wǎng)絡(luò)爬蟲技術(shù)。在通用網(wǎng)絡(luò)實(shí)際工作中,需要?jiǎng)討B(tài)地維護(hù)一個(gè)等待爬取的Uniform Resoure Locator(URL)隊(duì)列,開始時(shí)要提取隊(duì)列中已經(jīng)選取好的URL種子鏈接,運(yùn)用寬度優(yōu)先或者深度優(yōu)先的方法進(jìn)行遍歷,對(duì)其所指向的網(wǎng)頁(yè)進(jìn)行抓取工作,抓取后從這個(gè)網(wǎng)頁(yè)中解析出一個(gè)新的URL,然后把它存入到URL隊(duì)列中。而頁(yè)面庫(kù)可以將所有經(jīng)過解析的頁(yè)面以一定的數(shù)據(jù)結(jié)構(gòu)的方式進(jìn)行保存。爬蟲過程是不斷重復(fù)上述步驟直至待爬取隊(duì)列已空或者達(dá)到了終止條件。
[0005]另一類網(wǎng)絡(luò)爬蟲技術(shù)技術(shù)是主題網(wǎng)絡(luò)爬蟲技術(shù)。由于工作機(jī)制的不同,主體網(wǎng)絡(luò)爬蟲相比于通用網(wǎng)絡(luò)爬蟲具有兩個(gè)不同的功能模塊,分別為主題相關(guān)性計(jì)算模塊和候選鏈接優(yōu)先級(jí)計(jì)算模塊。這兩個(gè)模塊也是主題網(wǎng)絡(luò)爬蟲實(shí)現(xiàn)核心功能的關(guān)鍵模塊,它們對(duì)爬蟲的輸出結(jié)果的優(yōu)劣有著直接影響。主題相關(guān)性計(jì)算模塊用來計(jì)算已得到的網(wǎng)頁(yè)與主題的相關(guān)性。在進(jìn)行主題相關(guān)性計(jì)算前,首先需要設(shè)定閾值條件用來篩選網(wǎng)頁(yè)。候選鏈接優(yōu)先級(jí)計(jì)算模塊用來計(jì)算主題相關(guān)性計(jì)算模塊所得出的鏈接的處理優(yōu)先級(jí)。
【發(fā)明內(nèi)容】
[0006]本發(fā)明所要解決的技術(shù)問題是,提供一種更適應(yīng)于短文本的圖書搜索,可以返回給用戶更滿意答案的基于Coreseek的垂直搜索引擎研究與優(yōu)化的方法。
[0007]本發(fā)明所采用的技術(shù)方案是:一種基于Coreseek的垂直搜索引擎研究與優(yōu)化的方法,包括如下步驟:
[0008]I)通過對(duì)圖書領(lǐng)域的網(wǎng)站進(jìn)行分析,將待爬取的關(guān)于圖書的網(wǎng)頁(yè)作為種子鏈接,然后利用基于分類預(yù)測(cè)的主題爬蟲系統(tǒng)進(jìn)行爬取信息;
[0009]2)對(duì)主題爬蟲爬取到的圖書網(wǎng)頁(yè)信息進(jìn)行結(jié)構(gòu)化抽取,把非結(jié)構(gòu)化的數(shù)據(jù)轉(zhuǎn)化為結(jié)構(gòu)化數(shù)據(jù);
[0010]3)擴(kuò)充LibMMSeg分詞庫(kù),對(duì)結(jié)構(gòu)化的數(shù)據(jù)進(jìn)行中文分詞,并將結(jié)構(gòu)化的數(shù)據(jù)存入數(shù)據(jù)庫(kù),并使用Coreseek建立索引,通過主題爬蟲系統(tǒng)從互動(dòng)出版社網(wǎng)站爬取出版社和作者信息,結(jié)合搜狗細(xì)胞詞庫(kù),按照LibMMSeg的詞庫(kù)格式添加到詞典文件中;
[0011]4)對(duì)用戶輸入的關(guān)鍵字通過索引在數(shù)據(jù)庫(kù)中查詢,對(duì)查詢到的數(shù)據(jù)按照制定的排序算法進(jìn)行排序后,返回給用戶查看。
[0012]步驟I)所述的對(duì)圖書領(lǐng)域的網(wǎng)站進(jìn)行分析,是分析待爬取的網(wǎng)頁(yè)的網(wǎng)址的結(jié)構(gòu)。
[0013]步驟I)所述的將待爬取的關(guān)于圖書的網(wǎng)頁(yè)作為種子鏈接是在種子鏈接的頁(yè)面上必須包括各種圖書信息的起始鏈接,頁(yè)面上的鏈接能夠直接鏈接需要爬取的網(wǎng)頁(yè)。
[0014]步驟I)所述的利用基于分類預(yù)測(cè)的主題爬蟲系統(tǒng)進(jìn)行爬取信息,是使用Python編程語(yǔ)言實(shí)現(xiàn)基于分類預(yù)測(cè)的網(wǎng)絡(luò)爬蟲系統(tǒng)DouCrawler,爬取網(wǎng)站上關(guān)于圖書信息的網(wǎng)頁(yè)。
[0015]步驟4)包括:
[ΟΟ??] (I)利用Core seek全文搜索引擎工具對(duì)圖書信息進(jìn)行檢索,Core seek基礎(chǔ)的排序算法與TF-1DF算法結(jié)合,并且考慮到關(guān)鍵字在文檔的前面位置出現(xiàn)還是后面位置出現(xiàn)的因素,加入評(píng)分因子hit_loc和hit_else,形成C0RE_RANK算法如下:
[0017]C0RE_RANK = Σ((α Xtf_idf+PX(hit_loc= = I)+hit_else)Xuser_weight)X1000+BM25
[0018]其中,tf_idf為使用TF-1DF計(jì)算出的查詢與文件之間的相似度值,hit_loc為關(guān)鍵字第一次匹配的位置,hit_else為關(guān)鍵字在其他位置是否還有匹配,BM25為統(tǒng)計(jì)評(píng)分算法,user_weight為每個(gè)域中用戶定義的權(quán)重,α為tf_idf的權(quán)重,β為關(guān)鍵字在文檔中第一個(gè)位置命中的權(quán)重;
[0019](2)對(duì)用戶輸入的關(guān)鍵字通過索引在數(shù)據(jù)庫(kù)中查詢,對(duì)查詢到的數(shù)據(jù)按照改進(jìn)的排序算法進(jìn)行排序,返回給用戶查看。
[0020]本發(fā)明的基于Coreseek的垂直搜索引擎研究與優(yōu)化的方法,在研究垂直搜索引擎的關(guān)鍵技術(shù)的基礎(chǔ)上,擴(kuò)充了LibMMSeg分詞包并優(yōu)化了⑶RE_RANK排序算法,優(yōu)化后的C0RE_RANK排序算法更適應(yīng)于短文本的圖書搜索,并實(shí)現(xiàn)了一個(gè)面向圖書信息的垂直搜索系統(tǒng),并能提供圖書搜索服務(wù)。能更好的返回用戶的搜索結(jié)果,更加能滿足用戶使用搜索引擎尋找圖書信息的需求。
【附圖說明】
[0021]圖1是本發(fā)明基于Coreseek的垂直搜索引擎研究與優(yōu)化的方法的流程圖;
[0022]圖2是SPH_RANK_PR0XIMITY_BM25算法的檢索結(jié)果圖;
[0023]圖3是SPH_RANK_FIELDMASK算法檢索結(jié)果圖;
[0024]圖4是C0RE_RANK算法檢索結(jié)果圖。
【具體實(shí)施方式】
[0025]下面結(jié)合實(shí)施例和附圖對(duì)本發(fā)明的基于Coreseek的垂直搜索引擎研究與優(yōu)化的方法做出詳細(xì)說明。
[0026]本發(fā)明的基于Coreseek的垂直搜索引擎研究與優(yōu)化的方法,包括如下步驟:
[0027]I)通過對(duì)圖書領(lǐng)域的網(wǎng)站進(jìn)行了解和分析,將待爬取的關(guān)于圖書的網(wǎng)頁(yè)作為種子鏈接,然后利用基于分類預(yù)測(cè)的主題爬蟲系統(tǒng)進(jìn)行爬取信息;其中,
[0028]所述的對(duì)圖書領(lǐng)域的網(wǎng)站進(jìn)行了解和分析,是由于不同的網(wǎng)站的網(wǎng)址的結(jié)構(gòu)不同,所以要分析待爬取的網(wǎng)頁(yè)的網(wǎng)址的結(jié)構(gòu)。
[0029]在爬取網(wǎng)站之前首先需要對(duì)爬取的種子鏈接進(jìn)行選取,種子鏈接的選取關(guān)系到爬取的網(wǎng)頁(yè)的相關(guān)性,所述的將待爬取的關(guān)于圖書的網(wǎng)頁(yè)作為種子鏈接是在種子鏈接的頁(yè)面上必須包括各種圖書信息的起始鏈接,頁(yè)面上的鏈接能夠直接鏈接需要爬取的網(wǎng)頁(yè)。
[0030]所述的利用基于分類預(yù)測(cè)的主題爬蟲系統(tǒng)進(jìn)行爬取信息,是使用Python編程語(yǔ)言實(shí)現(xiàn)基于分類預(yù)測(cè)的網(wǎng)絡(luò)爬蟲系統(tǒng)DouCrawler,爬取網(wǎng)站上關(guān)于圖書信息的網(wǎng)頁(yè)。
[0031]2)對(duì)主題爬蟲爬取到的圖書網(wǎng)頁(yè)信息進(jìn)行結(jié)構(gòu)化抽取,把非結(jié)構(gòu)化的數(shù)據(jù)轉(zhuǎn)化為結(jié)構(gòu)化數(shù)據(jù);
[0032]3)擴(kuò)充LibMMSeg分詞庫(kù),對(duì)結(jié)構(gòu)化的數(shù)據(jù)進(jìn)行中文分詞,并將結(jié)構(gòu)化的數(shù)據(jù)存入數(shù)據(jù)庫(kù)進(jìn)行索引,通過主題爬蟲系統(tǒng)從互動(dòng)出版社網(wǎng)站爬取出版社和作者信息,結(jié)合搜狗細(xì)胞詞庫(kù),按照LibMMSeg的詞庫(kù)格式添加到詞典文件中;
[0033]4)對(duì)用戶輸入的關(guān)鍵字通過索引在數(shù)據(jù)庫(kù)中查詢,對(duì)查詢到的數(shù)據(jù)按照制定的排序算法進(jìn)行排序后,返回給用戶查看。包括:
[0034](I)利用Coreseek全文搜索引擎工具對(duì)圖書信息進(jìn)行檢索,針對(duì)Coreseek自身的基礎(chǔ)排序算法不適合短文本搜索排序的弱點(diǎn),基于TF-1DF(Term Freqency-1nverseDocument Frequency)算法對(duì)圖書名稱的權(quán)重增大,并改進(jìn)原有排序算法,具體是把Coreseek基礎(chǔ)的排序算法與TF-1DF算法結(jié)合,并且考慮到關(guān)鍵字在文檔的前面位置出現(xiàn)還是后面位置出現(xiàn)的因素,加入評(píng)分因子hit_loc和hit_else,形成C0RE_RANK算法。這里使用TF-1DF算法的原因是要把圖書名稱的權(quán)重增大,C0RE_RANK算法如下公式所示:
[0035]C0RE_RANK = Σ((α Xtf_idf+PX(hit_loc= = I)+hit_else)Xuser_weight)X1000+BM25
[0036]其中,tf_idf為使用TF-1DF計(jì)算出的查詢與文件之間的相似度值,hit_loc為關(guān)鍵字第一次匹配的位置,hit_else為關(guān)鍵字在其他位置是否還有匹配,BM25為統(tǒng)計(jì)評(píng)分算法,user-weight為每個(gè)域中用戶定義的權(quán)重,α為tf_idf的權(quán)重,β為關(guān)鍵字在文檔中第一個(gè)位置命中的權(quán)重,經(jīng)過實(shí)驗(yàn)測(cè)試,取為2,為4時(shí),可以得到很好的效果。
[0037](2)對(duì)用戶輸入的關(guān)鍵字通過索引在數(shù)據(jù)庫(kù)中查詢,對(duì)查詢到的數(shù)據(jù)按照改進(jìn)的排序算法進(jìn)行排序,返回給用戶查看。
[0038]本發(fā)明的基于Coreseek的垂直搜索引擎研究與優(yōu)化的方法,在研究垂直搜索引擎的關(guān)鍵技術(shù)的基礎(chǔ)上,優(yōu)化了分詞算法和C0RE_RANK排序算法,優(yōu)化后的⑶RE_RANK排序算法更適應(yīng)于短文本的圖書搜索,并實(shí)現(xiàn)了一個(gè)面向圖書信息的垂直搜索系統(tǒng),并能提供圖書搜索服務(wù)。
[0039]下面通過搭建面向圖書信息的搜索引擎,對(duì)比Coreseek的基本排序算法和改進(jìn)的排序算法C0RE_RANK在返回結(jié)果的評(píng)分和內(nèi)容上不同,判斷本發(fā)明方法的效果和實(shí)用性。
[0040]本發(fā)明在實(shí)施過程中選取搜索關(guān)鍵詞為“女孩”,圖2為SPH_RANK_PR0X頂ITY_BM25算法的實(shí)驗(yàn)結(jié)果,如圖2所示,當(dāng)搜索關(guān)鍵字“女孩”時(shí),檢索結(jié)果的評(píng)分為1637分,且所有的評(píng)分都是一樣,沒有按圖書名稱的字?jǐn)?shù)排列,對(duì)用戶來說搜索沒有差別性。
[0041 ] SPH_RANK_FIELDMASK算法檢索“女孩”的結(jié)果如圖3所示。
[0042]SPH_RANK_FIELDMASK排序算法認(rèn)定圖書內(nèi)容權(quán)重大于圖書名稱的權(quán)重,返回結(jié)果沒有特征性。即,SPH_RANK_FIELDMASK排序方式的結(jié)果評(píng)分都為2,算法規(guī)定如果在內(nèi)容匹配,則評(píng)分為2,所以算法認(rèn)定圖書內(nèi)容權(quán)重大于圖書名稱的權(quán)重,返回結(jié)果沒有特征性。
[0043]改進(jìn)后的排序算法C0RE_RANK算法搜索“女孩”的檢索結(jié)果如圖4所示。
[0044]C0RE_RANK算法為本發(fā)明中在以上幾個(gè)算法的基礎(chǔ)上做出的改進(jìn)算法,檢索結(jié)果顯示,《女孩》這本書的評(píng)分最高,為6243分,因?yàn)樗阉麝P(guān)鍵字和圖書名稱完全匹配,所以在返回結(jié)果的第一位并且分?jǐn)?shù)最高,顯示的其他書籍分?jǐn)?shù)一樣,為1243分,以最快的速度找到需要的結(jié)果。
[0045]本發(fā)明針對(duì)Coreseek的基本排序算法對(duì)短文本搜索不敏感的缺點(diǎn),結(jié)合圖書信息搜索用詞的相關(guān)特點(diǎn)對(duì)其進(jìn)行改進(jìn)。通過多個(gè)對(duì)比實(shí)驗(yàn)說明改進(jìn)后的排序算法能更好的返回用戶的搜索結(jié)果,更加能滿足用戶使用搜索引擎尋找圖書信息的需求。
【主權(quán)項(xiàng)】
1.一種基于Coreseek的垂直搜索引擎研究與優(yōu)化的方法,其特征在于,包括如下步驟: 1)通過對(duì)圖書領(lǐng)域的網(wǎng)站進(jìn)行分析,將待爬取的關(guān)于圖書的網(wǎng)頁(yè)作為種子鏈接,然后利用基于分類預(yù)測(cè)的主題爬蟲系統(tǒng)進(jìn)行爬取信息; 2)對(duì)主題爬蟲爬取到的圖書網(wǎng)頁(yè)信息進(jìn)行結(jié)構(gòu)化抽取,把非結(jié)構(gòu)化的數(shù)據(jù)轉(zhuǎn)化為結(jié)構(gòu)化數(shù)據(jù); 3)擴(kuò)充LibMMSeg分詞庫(kù),對(duì)結(jié)構(gòu)化的數(shù)據(jù)進(jìn)行中文分詞,并將結(jié)構(gòu)化的數(shù)據(jù)存入數(shù)據(jù)庫(kù),并使用Coreseek建立索引,通過主題爬蟲系統(tǒng)從互動(dòng)出版社網(wǎng)站爬取出版社和作者信息,結(jié)合搜狗細(xì)胞詞庫(kù),按照LibMMSeg的詞庫(kù)格式添加到詞典文件中; 4)對(duì)用戶輸入的關(guān)鍵字通過索引在數(shù)據(jù)庫(kù)中查詢,對(duì)查詢到的數(shù)據(jù)按照制定的排序算法進(jìn)行排序后,返回給用戶查看。2.根據(jù)權(quán)利要求1所述的基于Coreseek的垂直搜索引擎研究與優(yōu)化的方法,其特征在于,步驟I)所述的對(duì)圖書領(lǐng)域的網(wǎng)站進(jìn)行分析,是分析待爬取的網(wǎng)頁(yè)的網(wǎng)址的結(jié)構(gòu)。3.根據(jù)權(quán)利要求1所述的基于Coreseek的垂直搜索引擎研究與優(yōu)化的方法,其特征在于,步驟I)所述的將待爬取的關(guān)于圖書的網(wǎng)頁(yè)作為種子鏈接是在種子鏈接的頁(yè)面上必須包括各種圖書信息的起始鏈接,頁(yè)面上的鏈接能夠直接鏈接需要爬取的網(wǎng)頁(yè)。4.根據(jù)權(quán)利要求1所述的基于Coreseek的垂直搜索引擎研究與優(yōu)化的方法,其特征在于,步驟I)所述的利用基于分類預(yù)測(cè)的主題爬蟲系統(tǒng)進(jìn)行爬取信息,是使用Python編程語(yǔ)言實(shí)現(xiàn)基于分類預(yù)測(cè)的網(wǎng)絡(luò)爬蟲系統(tǒng)DouCrawler,爬取網(wǎng)站上關(guān)于圖書信息的網(wǎng)頁(yè)。5.根據(jù)權(quán)利要求1所述的基于Coreseek的垂直搜索引擎研究與優(yōu)化的方法,其特征在于,步驟4)包括: (1)利用Coreseek全文搜索引擎工具對(duì)圖書信息進(jìn)行檢索,Coreseek基礎(chǔ)的排序算法與TF-1DF算法結(jié)合,并且考慮到關(guān)鍵字在文檔的前面位置出現(xiàn)還是后面位置出現(xiàn)的因素,加入評(píng)分因子hit_loc和hit_else,形成C0RE_RANK算法如下: C0RE_RANK = Σ ((α X tf_idf+PX (hit_loc= = I)+hit_else) Xuser_weight) X 1000+BM25 其中,tf_idf為使用TF-1DF計(jì)算出的查詢與文件之間的相似度值,hit_loc為關(guān)鍵字第一次匹配的位置,hit_else為關(guān)鍵字在其他位置是否還有匹配,BM25為統(tǒng)計(jì)評(píng)分算法,user_weight為每個(gè)域中用戶定義的權(quán)重,α為tf_idf的權(quán)重,β為關(guān)鍵字在文檔中第一個(gè)位置命中的權(quán)重; (2)對(duì)用戶輸入的關(guān)鍵字通過索引在數(shù)據(jù)庫(kù)中查詢,對(duì)查詢到的數(shù)據(jù)按照改進(jìn)的排序算法進(jìn)行排序,返回給用戶查看。
【文檔編號(hào)】G06F17/30GK105912662SQ201610222675
【公開日】2016年8月31日
【申請(qǐng)日】2016年4月11日
【發(fā)明人】喻梅, 郭佳, 于健, 王建榮, 高潔, 姜月
【申請(qǐng)人】天津大學(xué)