江文龍 趙逢禹 陳 章
加權(quán)映射匹配方法的站內(nèi)搜索引擎設(shè)計
江文龍 趙逢禹 陳 章
(上海理工大學(xué)光電信息與計算機工程學(xué)院 上海 200093)
通用搜索引擎與網(wǎng)站提供的站內(nèi)搜索機制都無法實現(xiàn)基于內(nèi)容的企業(yè)網(wǎng)站信息查找。在分析企業(yè)網(wǎng)站信息的類型后,針對該問題提出一個通用站內(nèi)搜索引擎架構(gòu)。給出該引擎的設(shè)計思想,介紹對象映射匹配方法、加權(quán)對象相似度計算算法、索引構(gòu)建等實現(xiàn)技術(shù)。實現(xiàn)基于網(wǎng)頁內(nèi)容、Word與pdf附件內(nèi)容的查找定位。實驗結(jié)果顯示,該方法具有很高的查準率和查全率。該引擎可為企業(yè)網(wǎng)站的內(nèi)容搜索與個性化服務(wù)提供支持。
站內(nèi)搜索 對象映射 附件內(nèi)容 對象相似度
隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展與廣泛應(yīng)用,網(wǎng)站信息的增長和傳播速度也越來越快,網(wǎng)站的差異化發(fā)展與特色服務(wù)需求也就更加強烈。事實上很多網(wǎng)站在特色信息采集方面都相當(dāng)成功,但由于缺少強有效的站內(nèi)搜索引擎用戶卻只會看首頁或相關(guān)欄目的第一頁。長期積累的高價值信息被沉積在數(shù)據(jù)庫的底部,信息資源被等同于新聞了。
目前企業(yè)內(nèi)的站內(nèi)搜索大多為基于數(shù)據(jù)庫數(shù)據(jù),用戶可以搜索到符合標題、正文等條件的內(nèi)容,但是對于存在頁面中附件里的文本內(nèi)容,當(dāng)前站內(nèi)搜索引擎是達不到的。例如,用戶若想查找一份企業(yè)網(wǎng)站中以附件的形式存在于頁面中的文件,要想獲得文件的內(nèi)容,用戶只能通過逐個頁面查找候選文件。然后下載、打開、閱讀查看以確定是否是所需文件,由于這種查找方法效率低,查找過程會使用戶有受挫感。而實際上,即使像百度、Google等大型通用搜索引擎,它們也主要是針對于整個因特網(wǎng)中的靜態(tài)頁面內(nèi)容,無法解決查找附件內(nèi)容的問題。因此,構(gòu)建一個滿足用戶對于企業(yè)網(wǎng)站內(nèi)部信息完全查找的引擎是十分必要的。
快速、精確、智能和人性化的站內(nèi)搜索引擎越來越得到用戶的青睞。探索和應(yīng)用高效的站內(nèi)搜索技術(shù)將有助于提升網(wǎng)站的價值, 發(fā)揮網(wǎng)站應(yīng)有的作用[1]。在許多電子商務(wù)網(wǎng)站中,采用了個性化定制以及消息推送技術(shù),這一技術(shù)也可以應(yīng)用到其他類型企業(yè)組織網(wǎng)站中,建立一個能對企業(yè)內(nèi)部網(wǎng)站信息深度搜索的站內(nèi)搜索引擎是實現(xiàn)個性化及消息推送的基礎(chǔ)。由于企業(yè)網(wǎng)站信息通常會包括文字、圖片、音頻、視頻、附件文檔等不同形式的信息類型,網(wǎng)站的實現(xiàn)技術(shù)、信息組織各不相同,有些企業(yè)的網(wǎng)站甚至有很多個下屬網(wǎng)站,因而開發(fā)一個通用的站內(nèi)搜索引擎以滿足用戶對站點內(nèi)容的查找是十分困難的。
本文分析了站內(nèi)信息類型、信息組織,給出了對于網(wǎng)站內(nèi)全部內(nèi)容查找的站內(nèi)搜索引擎架構(gòu)。運用Heritrix爬蟲程序獲取指定企業(yè)網(wǎng)站資源信息,然后構(gòu)建資源文件源對象(包括靜態(tài)網(wǎng)頁、動態(tài)網(wǎng)頁以及附件內(nèi)容),解析資源文件,建立相關(guān)索引。
然后通過擴展查詢條件構(gòu)建目標對象,采用加權(quán)的映射匹配方法對源對象和目標對象進行關(guān)系匹配與相似度計算,找出所有相似度大于給定閾值的網(wǎng)頁源對象,并對結(jié)果根據(jù)權(quán)重分配進行相關(guān)排序呈現(xiàn)給用戶。
站內(nèi)搜索通常是指在一個網(wǎng)站范圍內(nèi),對網(wǎng)站中內(nèi)容的搜索。這里的網(wǎng)站范圍是一個邏輯邊界,如果企業(yè)組織有很多子網(wǎng)站,子網(wǎng)站之間是相互獨立的,但由于同屬于一個企業(yè)組織,企業(yè)組織內(nèi)部資源信息是可以共享的。該網(wǎng)站的范圍就包括所有的子網(wǎng)站,可把對各個子網(wǎng)站的搜索也歸為該企業(yè)組織的站內(nèi)搜索。在形式上站內(nèi)搜索包括兩個要件:搜索入口和搜索結(jié)果頁面,但是其后臺搜索引擎是比較復(fù)雜的。
為了提高站內(nèi)搜索引擎的精確率,文獻[2]中提出了根據(jù)企業(yè)用戶具有行業(yè)背景穩(wěn)定的特點,提取出一些用戶背景信息。設(shè)計出了通過用戶的背景信息和查詢歷史記錄等條件共同來改善用戶所要查詢的結(jié)果。提高與用戶查詢條件的匹配度和搜索結(jié)果的準確度,但是只是針對于企業(yè)網(wǎng)站的靜態(tài)頁面進行檢索匹配,對網(wǎng)頁中的附件內(nèi)容并沒有涉及。
文獻[3]中提出了基于語義的搜索引擎的實現(xiàn)。通過OWL結(jié)合本體構(gòu)建工具Protégé構(gòu)建特定領(lǐng)域知識的本體,對查詢條件與構(gòu)建的本體進行匹配,查找出與匹配的本體相關(guān)度高的內(nèi)容,從而達到較高精確率和召回率的目的。但此舉耗費資源太大,特定領(lǐng)域知識的本體構(gòu)建需要該領(lǐng)域的專家進行采集和建立,可見開銷很大,并且本體數(shù)量不多。
文獻[4]中提出了一個自動查詢擴展方法,通過擴展用戶請求使其用自然語言來表示。在知識本體的形成過程中用這種方法對數(shù)據(jù)庫查詢進行了合適并且相關(guān)的擴展。這種方法卻并沒有針對于網(wǎng)頁中其他類型文件的處理,如附件文本。不能實現(xiàn)基于到附件里面的內(nèi)容。
在企業(yè)的個性化搜索中,文獻[5]提出了一個對海量數(shù)字作品信息的搜索引擎,為用戶提供對海量數(shù)字作品信息的快速、準確的搜索服務(wù)。文獻[6]提出了在電子商務(wù)中通過對傳統(tǒng)商品搜索算法的改進,引入模糊系統(tǒng)和文本匹配算法,使得在顧客搜索商品時,不僅顯示精確匹配的商品而且可以提供與其要求相似的商品供其參考。這些對于企業(yè)內(nèi)的個性化搜索有著很重要的參考價值。
2.1 站內(nèi)信息分類
每個網(wǎng)站都有不同形式的信息,如靜態(tài)頁面內(nèi)容、動態(tài)頁面內(nèi)容、圖片、音頻、視頻、可供下載的各種類型的文件等。用戶想要查找的東西可能在加載后的頁面內(nèi)容中,可能是在圖片、視頻以及各種類型附件文件中。因而對全站點內(nèi)容查找需要根據(jù)不同的信息,構(gòu)建不同的搜索方法,這也是為什么當(dāng)前的站內(nèi)搜索大多僅搜索頁面內(nèi)容的原因。
基于網(wǎng)絡(luò)爬蟲頁面抓取技術(shù),站內(nèi)搜索已經(jīng)能夠?qū)崿F(xiàn)對靜態(tài)頁面內(nèi)容的搜索;動態(tài)頁面內(nèi)容通過基于數(shù)據(jù)庫設(shè)計的站內(nèi)搜索引擎也能達到;站內(nèi)搜索的困難在于用戶對網(wǎng)頁附件(word文檔、pdf文檔、圖片、音頻、視頻)中基于內(nèi)容查找的問題。這里把研究的重點集中在對靜態(tài)頁面,動態(tài)頁面以及附件文檔(word、pdf、excel等文檔)內(nèi)容搜索三個方面。對于圖片、音頻、視頻等附件的搜索方法將在后續(xù)的研究中逐步完成。
2.2 引擎設(shè)計
站內(nèi)搜索引擎首先對企業(yè)網(wǎng)站結(jié)構(gòu)進行分析,利用爬蟲軟件對企業(yè)網(wǎng)站資源文件進行獲取,包括所有網(wǎng)頁和附件文檔。然后將獲取的資源文件解析成文本,構(gòu)建源對象。利用Lucene分詞技術(shù)對解析后的文本內(nèi)容分詞,根據(jù)標題、關(guān)鍵句、主體內(nèi)容等屬性分別建立索引。當(dāng)用戶查詢時,通過擴展查詢條件構(gòu)建目標對象,通過檢索器查找索引庫與源對象進行匹配并計算對象相似度,基于對象相似度的結(jié)果對相似的源對象進行排序呈現(xiàn)給用戶。
基于以上思想,本文提出的搜索引擎框架如圖1所示。圖1中主要包括搜索器、索引器、檢索器、用戶接口四大部分。
圖1 搜索引擎框架
搜索器:通過擴展Heritrix對指定網(wǎng)站進行資源獲取,信息搜集。
索引器:對靜態(tài)、動態(tài)網(wǎng)頁及附件內(nèi)容等分別用相關(guān)的解析技術(shù)解析,構(gòu)建源對象,對解析后的內(nèi)容分詞并建立索引;對音頻、視頻、圖片等提取特征值,建立索引。
檢索器:目標對象和源對象進行加權(quán)的相似度匹配,根據(jù)相似度值決定輸出結(jié)果并對結(jié)果進行排序。
用戶接口:接納用戶查詢、顯示查詢結(jié)果、提供個性化查詢項。
2.3 信息抓取設(shè)計
通過對Heritrix進行擴展實現(xiàn)對網(wǎng)頁與附件文檔的抓取。Heritrix 是一個純由Java 開發(fā)的、開源的Web 網(wǎng)絡(luò)爬蟲,用戶可以使用它從網(wǎng)絡(luò)上抓取想要的資源。Heritrix 最出色之處在于開發(fā)者可以在現(xiàn)有的框架基礎(chǔ)上對各個組件進行擴展,實現(xiàn)自己需要的抓取邏輯[7]。抓取步驟如下:
1) 編寫一個正則表達式用來描述所有想要獲取的鏈接,這里可以描述為包含企業(yè)組織域名下的所有鏈接。
2) 重寫Heritrix中抓取鏈接的schedule()方法,對待抓取鏈接用上述正則表達式進行匹配,若待抓取鏈接滿足條件則加入待抓取隊列中,否則跳過該鏈接。
通過Heritrix獲得相關(guān)網(wǎng)頁及附件文件等資源文件后,再使用Lucene分詞技術(shù)對資源文件進行解析。
2.4 索引器和檢索器設(shè)計
2.4.1 映射匹配思想
為了實現(xiàn)在獲得較高的查準率時還能有高的查全率,檢索時采取了一種映射匹配的方法,對構(gòu)建的源對象和目標對象進行加權(quán)的相似度匹配。通常用戶想要查找的信息來自于標題或者關(guān)鍵詞的重要性要大于來自于正文的,因此給不同的元數(shù)據(jù)屬性賦予不同的權(quán)值,標題、關(guān)鍵詞信息的權(quán)重大于正文信息的權(quán)重,結(jié)合權(quán)重進行對象的相似度匹配。
定義1 對象 對象是描述網(wǎng)頁和附件內(nèi)容的,用作映射匹配的結(jié)構(gòu)。對象={<類名>,
圖2 Document結(jié)構(gòu)圖
把網(wǎng)頁的Title、附件文檔的文件名作為類名;提取網(wǎng)頁、附件文檔對應(yīng)的路徑地址作為URI;從網(wǎng)站中提取網(wǎng)頁和附件文檔的元數(shù)據(jù)屬性,主要有標題、關(guān)鍵詞、時間、發(fā)布者、主體內(nèi)容等作為屬性名集合;根據(jù)屬性名分別提取出對應(yīng)的屬性值作為屬性值集合;因而利用Lucene構(gòu)建的用以存儲對象的Document結(jié)構(gòu)如圖2所示。本文中的源對象和目標對象就是通過該Document結(jié)構(gòu)構(gòu)建的。
定義2 映射匹配 映射匹配是指源對象和根據(jù)搜索參數(shù)構(gòu)建的目標對象之間的映射關(guān)系,即為這兩個對象中的各個元素(類名、屬性名或者關(guān)系)建立相應(yīng)的語義關(guān)系。
給定一個對象,用P表示其屬性名集合,P={p1,p2,…,pm},pi∈(1,…,m)是對象包含的屬性。?pi∈P,都有屬性值vi。則屬性值的集合V={v1,v2,…,vm}。
定義3 相似度map(P1→P2) 源對象P1與目標對象P2的相似度是指源對象和目標對象在多個屬性上的值存在包含關(guān)系。即P2的值集合V2={v1,v2,…,vm}和P1值集合V1={v1,v2,…,vn}(m≤n)有多個vm∈vn(m=1,2,…,m;n=1,2,…,n)。根據(jù)兩個對象相似度值s0與給定的閾值s進行比較,若s0≥s,則判定P1與P2相似,否則判定為不相似。
算法 加權(quán)的對象相似度計算
輸入:源對象P1,目標對象P2
輸出:相似度值s
while(p2.hasNext())
//遍歷p2
{
key=p2.getItem();
//獲取p2屬性key
value=p2.getValue(key);
//根據(jù)key獲取p2屬性值
while(p1.hasNext())
//遍歷p1
{
key1=p1.getItem();
//獲取p1屬性key
value1=p1.getValue(key1);
//根據(jù)key1獲取p1屬性值
if(value1包含value)
//判斷p2的屬性值是否是p1的子集
{
weight=getWeight(key)
//獲取p1中指定key的權(quán)值
s=s+1*weight;
//加權(quán)統(tǒng)計相似度
}
}
}
圖3是設(shè)計出的引擎映射結(jié)構(gòu)。索引模塊根據(jù)源對象結(jié)構(gòu)建立索引;索引庫中存儲各類索引,具體結(jié)構(gòu)在2.4.3節(jié)有詳細介紹;檢索模塊構(gòu)建目標對象,匹配模塊采用前文提出的映射匹配方法使目標對象與源對象進行匹配;排列模塊收集搜索結(jié)果,對結(jié)果排序。
圖3 引擎映射結(jié)構(gòu)
2.4.2 信息解析
在Heritrix獲取到所有的資源文件后,接下來提取資源文件的元數(shù)據(jù),包括標題、關(guān)鍵詞、時間、發(fā)布者、主體內(nèi)容等。對于網(wǎng)頁內(nèi)容,為了減少網(wǎng)頁噪音,使用HtmlParser和正則表達式結(jié)合的方式進行解析。利用正則表達式對網(wǎng)頁中所有的html標簽進行了去除。把去除后的網(wǎng)頁主體內(nèi)容進行了保存。既提高了解析效率又精確地提取了網(wǎng)頁信息。對于附件內(nèi)容,不同類型的附件需要采用不同的解析器進行解析。提取附件文件的名稱、標題、關(guān)鍵詞、內(nèi)容等信息,并保存所屬頁面的關(guān)系。
2.4.3 分詞及索引建立
圖4是索引的架構(gòu),該架構(gòu)將解析好的網(wǎng)頁文件和所有附件文件根據(jù)分詞詞典進行分詞,再利用Lucene建立索引。
圖4 索引結(jié)構(gòu)
當(dāng)前Lucene有多個中文分詞器,如StandardAnalyzer、ChineseAnalyze、CJKAnalyzer、IK_CAnalyzer、MMAnalyzer。由于IK_CAnalyzer的分詞切割得比較完全并且更貼近語義,因而采用IK_CAnalyzer分詞器。此外,建立了一個分詞詞典。初始詞匯包含該企業(yè)的一些特有詞匯(如企業(yè)組織名稱、部門名稱、產(chǎn)品名稱等)。并且,掃描解析后的附件文檔,提取出文檔中“關(guān)鍵詞”后的詞匯加入到詞典中。在分詞的時候先掃描分詞詞典,以詞典中的詞匯為基準進行分詞,其余的用分詞器固有的分詞方法分詞。 這樣,分詞就可以比較好地適用于指定企業(yè)組織內(nèi)部,達到一個比較高的準確率。分詞完畢后再對所有信息建立索引。至此,索引就建立完畢,接下來是建立檢索器和查詢結(jié)果的排序。
2.5 檢索與排序
檢索器是根據(jù)用戶輸入關(guān)鍵詞,在索引器進行查找,并且采用算法進行對結(jié)果的最終排序。首先對用戶輸入的查詢條件進行擴展,構(gòu)造出目標對象,通過檢索器與源對象進行匹配。根據(jù)前文敘述的加權(quán)相似度計算方法找出相似度大于給定閾值的所有源對象,將所有符合條件的結(jié)果放入TopScoreDocColletor收集器中。遍歷結(jié)果集取出結(jié)果,對含有關(guān)鍵字的部分使用Highlighter類進行高亮結(jié)果處理,然后再呈現(xiàn)給用戶。
基于上述的理論分析,在實驗環(huán)境為JDK1.7、Tomcat6.0、SqlServer 2008、Myeclipse 10、Win 7操作系統(tǒng),采用Heritrix-1.14.4對某單位網(wǎng)站進行了抓取結(jié)合Lucene-4.7和Struts2建立了站內(nèi)搜索引擎并進行相關(guān)實驗。分別對通用搜索引擎和參考文獻中部分搜索引擎從以下兩方面進行實驗:1)用戶輸入該網(wǎng)站內(nèi)頁面內(nèi)容信息進行檢索、測試;2)用戶輸入該網(wǎng)站中存在于附件中的內(nèi)容進行檢索、測試。
1) 和通用搜索引擎的對比
實驗過程中讓用戶在本搜索引擎與通用搜索引擎中隨機輸入50組關(guān)鍵字,分別搜索存在于頁面內(nèi)容中的信息和存在于附件中的信息并對搜索結(jié)果進行對比。圖5給出了頁面內(nèi)容查準率的對比,圖6給出了查全率的對比。
圖5 頁面內(nèi)容查準率對比 圖6 頁面內(nèi)容查全率對比
對于附件文本內(nèi)容,通用搜索引擎都不能達到這個深度,因而沒有對應(yīng)結(jié)果。圖7給出了附件內(nèi)容搜索的查準率對比。圖8給出了附件內(nèi)容的查全率對比。
圖7 附件內(nèi)容查準率對比 圖8 附件內(nèi)容查全率對比
從圖5-圖8的對比結(jié)果可以看出,本文設(shè)計出的站內(nèi)搜索引擎無論是在對于頁面內(nèi)容的搜索還是附件文本內(nèi)容的搜索都有著比通用搜索引擎更高的查全率和查準率。
2) 和參考文獻中搜索引擎對比
同樣,實驗過程中讓用戶在本搜索引擎與部分參考文獻中搜索引擎中隨機輸入50組關(guān)鍵字,分別搜索存在于頁面內(nèi)容中的信息和存在于附件中的信息并對搜索結(jié)果進行對比。這里選取了與文獻[2]和文獻[5]中設(shè)計的搜索引擎進行對比,如表1所示。
表1 查全率查準率對比表
表中每個引擎的第一行為查全率,第二行為查準率。從表中不難總結(jié)出,本文的搜索引擎在頁面內(nèi)容的查全率和查準率上與部分參考文獻中設(shè)計的搜索引擎基本持平。但是參考文獻中設(shè)計的搜索引擎都沒有針對網(wǎng)站的附件內(nèi)容,因而在附件內(nèi)容的搜索上本文的搜索引擎占有著絕對的優(yōu)勢。
目前站內(nèi)搜索和通用搜索引擎不支持對附件文本的檢索。為解決這一問題,本文提出了一個站內(nèi)搜索引擎,基于Lucene和網(wǎng)絡(luò)爬蟲技術(shù),采用了加權(quán)映射匹配的方法很好的解決了在用戶面臨數(shù)據(jù)量越來越大時對附件文檔內(nèi)容查找難的問題,大大提高了搜索的準確率和召回率。但仍然有一些問題沒有解決,如對圖片、音頻、視頻等附件的查找涉及到的相關(guān)處理技術(shù)問題還沒有解決,將在下一步的工作中進行研究實現(xiàn)。
[1] 劉俊熙,龍怡.站內(nèi)搜索是下一個網(wǎng)絡(luò)信息資源檢索的最佳點——網(wǎng)絡(luò)、行業(yè)和站內(nèi)搜索的技術(shù)分析[J].現(xiàn)代情報,2008(4):135-137.
[2] 王兆宇,樂嘉錦.基于Lucene的個性化站內(nèi)搜索引擎的研究[J].計算機應(yīng)用與軟件,2011,28(12):188-190,223.
[3] Sowmya Kamath S,Divya Piravi Perumal.A Semantic Search Engine for Answering Domain Specific User Queries[C]//International conference on Communication and Signal Processing,2013:1097-1101.
[4] Latiri C,Haddad H,Hamrouni T.Towards an effective automatic query expansion process using an association rule mining approach[J].Journal of Intelligent Information Systems,2012,39(1):209-247.
[5] 吳潔明,韓云輝,冀單單.基于Lucene的數(shù)字作品搜索引擎的研究與設(shè)計[J].計算機工程與科學(xué),2013(5):166-171.
[6] 陳明晶,姚建榮,唐志豪.電子商務(wù)系統(tǒng)的商品搜索算法研究[J].計算機工程與應(yīng)用,2006(3):213-215.
[7] 張敏,孫敏.基于Heritrix限定爬蟲的設(shè)計與實現(xiàn)[J].計算機應(yīng)用與軟件,2013,30(4):33-35,80.
[8] Pirro G,Talia D.An approach to Ontology Mapping based on the Lucene search engine library[C]//Database and Expert Systems Applications,2007.DEXA’07.18th International Workshop on.IEEE,2007:407-411.
[9] Bireshwar Ganguly,Devashri Raich.Performance Optimization of Focused Web Crawling Using Content Block Segmentation[C]//International Conference on Electronic Systems,Signal Processing and Computing Technologies,2014:365-370.
[10] Shanmugapriya,K Latha.Measuring Semantic Similarity Using Web Search Engine[C]//International Conference on Advanced Nanomaterials & Emerging Engineering Technologies,2013:639-644.
SITE SEARCH ENGINE DESIGN WITH WEIGHTED MAPPING METHOD
Jiang Wenlong Zhao Fengyu Chen Zhang
(SchoolofOptica1-ElectricalandComputerEngineering,UniversityofShanghaiforScienceandTechnology,Shanghai200093,China)
Neither the general search engine nor the site search mechanism provided by websites is able to achieve the content-based search of corporate websites information. After analysing the types of corporate websites information, we proposed a general site search engine architecture for this problem. Apart from discussing the design ideas of the engine, we also introduced the implementation techniques including the objects mapping and matching method, the algorithm of weighted objects similarity calculation, and the indexes construction, etc. The engine implements the search and positioning based on website contents and the attachment contents of Word and pdf. Experimental results showed that the search engine had high accuracy and recall rate. The engine could also serve the supports to content search and personalised services for corporate websites.
Site search Objects mapping Attachment content Object similarity
2014-09-12。江文龍,碩士,主研領(lǐng)域:搜索引擎,互聯(lián)網(wǎng)應(yīng)用。趙逢禹,教授。陳章,講師。
TP319
A
10.3969/j.issn.1000-386x.2016.04.022