王樹文1,鄭闊實2,陳竟博3
(1.吉林省計算中心,吉林長春 130012;2.中共吉林省委黨校(吉林省行政學(xué)院),吉林長春 130012;3.吉林大學(xué)計算機科學(xué)與技術(shù)學(xué)院,吉林長春 130012)
隨著互聯(lián)網(wǎng)技術(shù)的快速發(fā)展和網(wǎng)絡(luò)信息量的爆炸式增長,如何快速、有效、準(zhǔn)確地從海量信息中獲取所需的有價值的信息,越來越受到人們的關(guān)注。通用搜索引擎在信息采集、存儲等方面都面臨著很大的挑戰(zhàn)。通用搜索引擎試圖返回面向所有用戶的查詢結(jié)果,使得其搜索到的信息量過大、查準(zhǔn)率低、深度不夠,不能滿足針對某一特定領(lǐng)域精確搜索的要求。在這樣的背景下,垂直搜索引擎應(yīng)運而生。它是一種與通用搜索引擎截然不同的搜索模式,是專門針對某一領(lǐng)域的專業(yè)搜索引擎。其特點就是專、精、深,具有行業(yè)色彩,是通用搜索引擎的細分和延伸[1]。
在教育資源數(shù)字化、網(wǎng)絡(luò)化的趨勢下,互聯(lián)網(wǎng)上產(chǎn)生了大量分布廣泛、不同格式的教育資源,專門針對教育領(lǐng)域的數(shù)字化教育資源搜索成為垂直搜索引擎的重要應(yīng)用之一,其可以為人們提供大量有價值的綠色教育信息,比如數(shù)字圖書搜索、教育視頻搜索、考試信息搜索、名師介紹搜索等。本文設(shè)計的面向教育領(lǐng)域的垂直搜索引擎系統(tǒng)在通用搜索引擎的技術(shù)基礎(chǔ)上,采用了面向教育主題網(wǎng)絡(luò)蜘蛛選擇性的收集僅包含教育主題相關(guān)信息的網(wǎng)頁,建立面向教育主題的網(wǎng)頁數(shù)據(jù)庫,并把網(wǎng)頁中非結(jié)構(gòu)化信息提取、轉(zhuǎn)化為結(jié)構(gòu)化數(shù)據(jù),建立索引數(shù)據(jù)庫。最后以檢索的方式同用戶進行信息交互,為用戶提供面向教育主題的垂直搜索服務(wù)。
通用搜索引擎系統(tǒng)主要由采集器、索引器、檢索器、相關(guān)數(shù)據(jù)庫及用戶接口等部分組成[2],而本文設(shè)計的面向教育主題的垂直搜索引擎為了實現(xiàn)查詢結(jié)果與教育主題相關(guān),還需要增加面向主題的特征詞數(shù)據(jù)庫及主題相關(guān)性計算器,用于判斷爬取的網(wǎng)頁信息是否與主題相關(guān)。
面向教育主題的垂直搜索引擎系統(tǒng)主要包含信息采集模塊與主題識別模塊、信息抽取與索引模塊、用戶接口與信息檢索模塊三部分,總體結(jié)構(gòu)設(shè)計如圖1所示。
圖1 面向教育主題垂直搜索引擎總體結(jié)構(gòu)設(shè)計圖
在信息采集模塊中,運用面向教育主題的網(wǎng)絡(luò)蜘蛛對教育主題相關(guān)信息進行抓取,這是搜索引擎的第一個步驟。從某一個具有主題意義的種子URL開始,按照深度優(yōu)先算法,采用多線程并行抓取方式自動在互聯(lián)網(wǎng)上搜索爬行。遍歷教育領(lǐng)域的門戶網(wǎng)站,抓取與教育主題相關(guān)的網(wǎng)頁,采集網(wǎng)頁信息,抽取并壓縮網(wǎng)頁內(nèi)容存入原始數(shù)據(jù)庫中,然后跳轉(zhuǎn)到網(wǎng)頁中鏈接指向的其他網(wǎng)頁,直至遍歷整個網(wǎng)絡(luò)。
在此過程中,運用主題識別算法對網(wǎng)絡(luò)蜘蛛所采集的頁面進行主題相關(guān)性判斷,根據(jù)計算得到的相關(guān)度結(jié)果,對采集到的網(wǎng)頁進行取舍,將相關(guān)度大于預(yù)先設(shè)定的閾值的網(wǎng)頁保存到面向主題網(wǎng)頁數(shù)據(jù)庫中,舍棄與主題不相關(guān)的網(wǎng)頁。這垂直搜索引擎的核心部分,可以控制信息采集的規(guī)模,保證采集到的信息的專業(yè)性,提高搜索的準(zhǔn)確性。
信息抽取與索引模塊對存儲于面向主題數(shù)據(jù)庫中的大量結(jié)構(gòu)和非結(jié)構(gòu)化的數(shù)據(jù)進行抽取,將網(wǎng)頁主題塊中特定的結(jié)構(gòu)化信息抽取出來。并進行過濾、分詞等預(yù)處理操作,構(gòu)造索引,計算詞的權(quán)值按檢索結(jié)果合理排序,并存入索引數(shù)據(jù)庫中。
用戶接口與信息檢索模塊是接受用戶輸入查詢請求并將查詢結(jié)果反饋給用戶的接口界面。模塊首先對用戶輸入的搜索關(guān)鍵字、排序方式進行分詞等信息分析處理,然后在索引數(shù)據(jù)庫中查找到包含搜索關(guān)鍵詞的文本記錄,并根據(jù)相關(guān)度評價和用戶需要將記錄排序,最后以超級鏈接的形式將提取網(wǎng)頁的摘要信息反饋給用戶。
為了盡可能多地實現(xiàn)對教育主題相關(guān)網(wǎng)頁信息的自動獲取,本文在通用搜索引擎的基礎(chǔ)上設(shè)計了一個面向教育主題的網(wǎng)絡(luò)蜘蛛系統(tǒng)模型,它是面向教育主題垂直搜索引擎系統(tǒng)的核心部分[3]。面向教育主題網(wǎng)絡(luò)蜘蛛系統(tǒng)模型主要由信息采集模塊、頁面解析與過濾模塊、主題相關(guān)性計算器、鏈接剪枝控制器4部分構(gòu)成。頁面采集模塊主要負責(zé)從初始URL隊列出發(fā),通過HTTP協(xié)議請求并下載web頁面,采集URL指向的頁面信息,送入頁面解析與過濾模塊中。本文采用了多線程并發(fā)技術(shù),大大提高了頁面采集效率[4]。頁面解析與過濾對下載到原始數(shù)據(jù)庫中的頁面信息進行消重處理,解析web頁面,提取例如鏈接文本、結(jié)構(gòu)信息、鏈接URL地址等數(shù)據(jù)。主題相關(guān)性計算器主要是對網(wǎng)址解析與過濾模塊中提取的網(wǎng)頁內(nèi)容文本進行主題相關(guān)性判定,將主題相關(guān)度大于預(yù)先設(shè)定閾值的網(wǎng)頁保存在面向主題數(shù)據(jù)庫中,過濾掉與主題相關(guān)度較低或不相關(guān)的頁面,從而保證網(wǎng)絡(luò)所采集頁面的主題的相關(guān)性與專業(yè)性。鏈接剪枝控制器的任務(wù)是從與經(jīng)過過濾后得到的主題相關(guān)的頁面中抽取出鏈接URL,并采用主題相關(guān)計算方法對URL進行篩選,將有價值的URL暫存在待搜索URL隊列中,按照主題相關(guān)度大小進行排序,相關(guān)度越高的越先被訪問。
面向教育主題的網(wǎng)絡(luò)蜘蛛工作流程如圖2所示。面向教育主題的網(wǎng)絡(luò)蜘蛛首先依次從人工預(yù)設(shè)的種子URL隊列中取出以獲取URL,訪問該URL指向的網(wǎng)頁并解析其內(nèi)容,使用主題相關(guān)性計算方法計算頁面及頁面內(nèi)URL鏈接的主題相關(guān)度,將與主題相關(guān)的網(wǎng)頁信息存入面向主題網(wǎng)頁數(shù)據(jù)庫中,將頁面中與主題相關(guān)的URL加入待搜索URL隊列中。不斷從待搜索URL隊列中取出URL進行訪問,這樣迭代訪問web,直到遍歷整個web或滿足某一條件為止。
圖2 面向教育主題的網(wǎng)絡(luò)蜘蛛設(shè)計模型圖
本文采用了計算頁面主題相關(guān)度時使用較多、效果較好的數(shù)學(xué)模型VSM(veclor space modle)[5],對網(wǎng)頁內(nèi)容與主題的相關(guān)程度進行評價,保留與主題相關(guān)度大于設(shè)定閾值的頁面,過濾掉與主題相關(guān)度較低或不相關(guān)的頁面,以提高采集頁面的準(zhǔn)確性。
在VSM中,將網(wǎng)頁看成由相互獨立的詞條組成,將教育領(lǐng)域主題詞庫看作一個n維向量(c1,c2,…,cn),n為教育領(lǐng)域主題詞庫中關(guān)鍵詞的個數(shù),頁面Pi可以表示成一個一維向量P=(w1c1,w2c2,…,wncn)。其中,wi為評價教育領(lǐng)域主題詞庫中關(guān)鍵詞ci在頁面P中重要程度的權(quán)值。若關(guān)鍵詞ci未在頁面P中出現(xiàn),則權(quán)值wi值為0。本文中權(quán)值wi采用傳統(tǒng)的TF-IDF算法計算,其計算公式為:
其中,cFi為關(guān)鍵詞cj在頁面Pi中出現(xiàn)的頻率,由于關(guān)鍵詞在頁面中出現(xiàn)的位置不同,重要程度也不同,所以cj在頁面Pi中出現(xiàn)的頻率cFi應(yīng)該由在標(biāo)題和正文出現(xiàn)次數(shù)加權(quán)求和來計算。
這樣,頁面與主題相關(guān)度問題就轉(zhuǎn)化為向量空間的矢量匹配問題,可利用向量空間中向量間夾角的余弦值來度量目標(biāo)網(wǎng)頁與主題的相關(guān)度,向量間夾角的余弦值越小則兩者相似度越高,算法流程如下。
(i)在初始種子集合的URL指向頁面中提取關(guān)鍵詞并加權(quán),得到關(guān)于教育主題的特征向量及向量權(quán)值。
(ii)分別對目標(biāo)網(wǎng)頁的標(biāo)題和正文內(nèi)容進行分詞、篩選并合并關(guān)鍵詞,得到目標(biāo)網(wǎng)頁關(guān)于教育主題的特征向量,根據(jù)關(guān)鍵詞在文章中出現(xiàn)的位置和頻率計算其權(quán)重。(iii)根據(jù)公式(3)計算目標(biāo)網(wǎng)頁與主題的相關(guān)度值。
其中wic為關(guān)鍵詞ci在主題詞向量中C的權(quán)重。
(iv)將計算得到的目標(biāo)網(wǎng)頁的相關(guān)度與閾值s進行比較,若相關(guān)度大于閾值,則將目標(biāo)網(wǎng)頁存于面向主題網(wǎng)頁數(shù)據(jù)庫中,否則,忽略此頁面。
垂直搜索引擎在同一時間會接受大量的用戶的查詢請求,這就要求索引模塊完成大量的運算操作,以提高檢索模塊的工作效率。Lucene是用JAVA實現(xiàn)的開放源代碼的全文檢索引擎工具包,是一個高性能、可伸縮的信息搜索庫[7],本文正是基于Lucene技術(shù)建立索引,其工作方式如圖3所示。
圖3 索引建立流程圖
索引網(wǎng)頁庫存儲鏈接與其指向網(wǎng)頁的映射。文本解析器用來分析和處理不同格式的文檔,提取正文信息、過濾垃圾信息、中文分詞切分索引項等操作,形成統(tǒng)一格式的文檔,存儲于文本中間格式數(shù)據(jù)庫中。由于中文構(gòu)詞方式的差異,需要對中文網(wǎng)頁進行分詞,以便建立索引文件。本文采用雙向哈希索引詞典,對數(shù)據(jù)庫中中文網(wǎng)頁進行分詞處理。文本中間格式數(shù)據(jù)庫存儲經(jīng)文本解析器提取、過濾、分詞等操作的數(shù)據(jù),數(shù)據(jù)格式為純文本格式,為索引器提供可分析數(shù)據(jù)。索引器是垂直搜索引擎中用來分析處理文本中間格式數(shù)據(jù)庫中的非結(jié)構(gòu)化文檔信息、建立索引的程序,主要任務(wù)是按照預(yù)設(shè)的索引項建立索引列表、更改索引字典。文本索引庫中存儲以索引形式組織存放的文檔信息數(shù)據(jù)文件,一般的數(shù)據(jù)庫系統(tǒng)不能同時滿足大量用戶的查詢請求,所以在本系統(tǒng)中采用了倒排索引技術(shù)。創(chuàng)建倒排索引包括建立正向索引、創(chuàng)建反向索引、歸并索引等操作。將存放詞和編碼意義映射關(guān)系存儲于索引字典中。
面向教育主題的垂直搜索引擎通過檢索模塊實現(xiàn)與用戶的交互,系統(tǒng)對通過接口輸入的查詢短語進行分詞等操作,將它傳送至檢索器,檢索器根據(jù)查詢項在索引文件上查找,按照與查詢項相關(guān)程度排序,并將結(jié)果通過用戶接口呈獻給用戶。其主要流程如下:
(1)通過用戶接口接受用戶的查詢項,并對其進行分析、分詞等處理。
(2)搜素包含關(guān)鍵詞的網(wǎng)頁,過濾掉與查詢項不相關(guān)的網(wǎng)頁。
(3)按照與查詢項相關(guān)度大小對匹配的網(wǎng)頁排序,以鏈接形式呈現(xiàn)給用戶。
本文采用Java開發(fā)的開源的主題網(wǎng)絡(luò)蜘蛛從吉林省內(nèi)各中小學(xué)校、培訓(xùn)機構(gòu)網(wǎng)站上爬取與教育主題相關(guān)的信息資源,利用主題相關(guān)度算法判斷爬取到的信息的主題相關(guān)性,后對信息進行分析和提取、運用、擴展,并成功應(yīng)用luene極其相關(guān)技術(shù),構(gòu)建了檢索結(jié)果比較精準(zhǔn)的面向教育主題的垂直搜索引擎系統(tǒng),為人們提供了大量的綠色教育資源,極大地方便了人們的日常生活。
本文詳細描述了面向教育主題的垂直搜索引擎系統(tǒng)的總體設(shè)計,從教育領(lǐng)域信息搜索的實際出發(fā),著重研究了主題網(wǎng)絡(luò)蜘蛛、向量空間模型、倒排索引建立等關(guān)鍵技術(shù),并給出了具體的實現(xiàn)細節(jié)。在此基礎(chǔ)上,開發(fā)了一個面向教育主題的垂直搜索引擎,該系統(tǒng)能夠有效地采集分散的教育主題相關(guān)網(wǎng)頁,形成面向教育主題網(wǎng)頁數(shù)據(jù)庫,快速地響應(yīng)用戶的查詢請求,準(zhǔn)確地返回相關(guān)度較高的網(wǎng)頁,實現(xiàn)了教育資源的共享,具有較高的社會價值。
[1]劉暢.綜合搜索引擎與垂直搜索引擎的比較[J].情報科學(xué),2007,25(1):97-102.
[2]閆俊英.垂直搜索引擎的研究與實現(xiàn)[D].哈爾濱:哈爾濱工業(yè)大學(xué),2004.
[3]張博,蔡皖東.面向主題的網(wǎng)絡(luò)蜘蛛技術(shù)研究與系統(tǒng)實現(xiàn)[J].微電子學(xué)與計算機,2009,26(5):52-55.
[4]彭濤.面向?qū)I(yè)搜索引擎的主題爬行技術(shù)研究[D].長春:吉林大學(xué),2007.
[5]張昌年.一種基于VSM的檢測相似重復(fù)記錄的方法[J].微電子學(xué)與計算機,2008(8):184-187.
[6]朱學(xué)昊,王儒敬,余鋒林,等.基于Lucene的站內(nèi)搜索設(shè)計與實現(xiàn)[J].計算機應(yīng)用與軟件,2008,25(10):6-8.