關鍵詞: 節能減排; 搜索引擎; 網頁模板; 向量空間; 樸素貝葉斯。
搜索引擎的誕生,為人們快速查找互聯網信息提供了一種快捷的途徑,滿足了人們搜索網絡信息的日益迫切的需求。但使用傳統搜索引擎搜索相關信息,不可避免地會包含許多廣告以及與主題不相關的信息,影響了用戶對某個特定領域信息的獲取。
由于傳統搜索引擎檢索信息普遍存在信息量大、信息雜糅不全、結果不準確等問題,使得越來越多學者開始研究垂直搜索引擎[1].如今市場上也出現了大量的 CiteSeerx、去哪網等面向各個領域的垂直搜索引擎產品。
但目前市場上沒有一款成形的面向節能減排領域的垂直搜索引擎,該類搜索引擎仍處于發展探索時期?;陂_源框架 Nutch 設計和實現了一個面向節能減排領域的垂直搜索引擎。為了提高 Nutch 搜索引擎的效果,引入以下技術: ( 1) 網頁模板技術,該技術提高了網頁信息獲取的準確性,模板中關于網頁關鍵信息的提取,也為部分網頁的信息歸類提供了便利; ( 2) 特征詞提取技術,使用改進的 TF -IDF 算法計算權重提取主題詞庫和分類特征詞庫;( 3) 向量空間模型,該模型用于對節能減排領域進行主題相關性判斷; ( 4) 樸素貝葉斯算法,該算法針對網頁通過模板中提取的關鍵信息無法分類的情況,提供分類依據。
1 垂直搜索引擎設計及工作流程。
垂直搜索引擎是針對某一個特定領域、行業或學科內的網絡信息資源,制定一些特定的搜索策略,讓網絡爬蟲智能在互聯網上抓取相關的信息資源,為領域內或行業內的專家、學者和需要這方面信息的用戶提供一整套網絡信息資源的專業化搜索引擎[2].它對信息庫中某一類信息進行整合,將網頁的非結構化信息抽取成特定的結構化信息,最后以某種形式返回給用戶。
本次研究選用開源框架 Nutch 作為爬取數據、分析數據、建立索引的工具。選用 Nutch 的原因是其能非??焖俚嘏廊【W頁,能對這些網頁建立索引并提供維護工作,還能提供對索引文件每秒上千次的搜索,并盡可能地以最小的運作成本提供最高質量的搜索服務。其效率可以和一些商業搜索引擎相媲美。此外,Nutch 和 Solr 的源代碼是開放的,其提供的強大的插件機制為開發者定制自己的搜索引擎提供了便利。
針對節能減排領域,利用 Nutch 框架完成了垂直搜索引擎設計,并將節能減排信息分成政策資訊、標準規范、技術文獻等 3 類。其思路主要有 4 步:
( 1) 選擇爬取節能減排信息的網站。
( 2) 利用 Nutch 工具開始爬取網頁。
( 3) 利用 Nutch 插件機制對網頁信息進行提取,建立索引。步驟如下:
① 建立模版,模版包括提取網頁標題、正文內容、關鍵信息( 導航信息等) 、標準號以及技術文獻來源。若爬取的 URL 為一個網頁,則根據模板提取內容,不符合模板提取規則的網頁不需要建立索引,符合模板提取的網頁則進入下一步; 若爬取的 URL不是一個網頁,則直接進入下一步。
② 節能減排主題詞庫的建立以及向量空間模型的建立。利用向量空間模型,計算網頁內容與節能減排主題的相關度。若相關度大于設定的閾值,認為該網頁屬于節能減排領域,則進行下一步工作;否則,舍棄該網頁。
③ 建立樸素貝葉斯模型,完成對政策咨詢、標準規范、技術文獻以及相關行業信息特征詞庫和關鍵詞庫的建立,完成信息分類和行業分類。若爬取的 URL 為一個網頁,且根據模板提取的關鍵信息和關鍵詞庫信息可以直接歸類,則直接分類; 若不可以直接歸類,則利用樸素貝葉斯模型,計算得出網頁屬于哪個分類; 若爬取的 URL 不是一個網頁,則直接根據樸素貝葉斯模型計算分類。
( 4) 利用 SolrJ 以及 servlet + jsp 技術搭建垂直搜索引擎的用戶檢索平臺。平臺提供信息分類檢索、檢索關鍵詞提示等功能。用戶通過輸入檢索關鍵詞,利用 SolrJ 從索引數據庫中取得相關信息,并按照相關度的大小呈現給用戶。
2 系統設計與實現。
2. 1 模板的建立。
互聯網網頁中的元素節點存在父子關系。根據網頁元素節點之間的父子關系,以及元素節點上的屬性節點內容,則可以獲取包含在元素節點的文本節點內容。研究發現,在一個域名下的網站,其網頁很多都擁有相同或相近的網頁樹形結構。這說明搜索引擎對一個網頁特定信息進行提取時,該內容在網頁中所處的位置可能與其他很多頁面相同。利用相同站點下頁面結構存在的相似性,對站點下的網頁建立基于 DOM 的網頁模板。通常對一個站點下需要采集的網頁用幾個模板就可以表示[3].
( 1) 為了提高網頁模板的加載速度,縮小程序獲取網站模板的范圍,首先為網頁模板提供了配置文件 config. xml.該文件提供了 URL 的正則匹配式。一個網頁可以根據它的 URL 確定該網頁所處站點的模板存放位置。config. xml 文件格式如下所示。
< ? xml version = “ 1. 0” encoding = “ UTF - 8” ? >
< type >
< Distinguish >
< WebName > 中華人民共和國環境保護部< \ue4d4WebName >
< WebDomain > < \ue4d4WebDomain >
< WebTemplate > < \ue4d4WebTemplate >
< \ue4d4Distinguish >
< \ue4d4type >
其中,WebName 表示該站點的名稱; WebDomain表示該站點下任意網頁需要滿足的 URL 的正則表達式,符合該正則表達式的網頁則是來自該站點的網頁; WebTemplate 表示該站點下模板庫的存放位置。
( 2) 在指定位置文件夾下建立某一站點的模板template_xxx_xx. xml.模板包含對頁面標題、正文內容、關鍵信息、標準號以及技術文獻來源的提取規則,同時這些提取規則符合 jsoup 工具提取網頁信息的語法要求。模板文件格式如下所示。
< ? xml version = “ 1. 0” encoding = “ UTF - 8” ? >
< type >
< WebTitle > < \ue4d4WebTi-tle >
< WebNavigation > tbody> tr > td[align = left][style][height]]]> < \ue4d4Web-Navigation >
< WebContent > < \ue4d4WebContent >
< WebScifactory > < \ue4d4WebScifactory >
< \ue4d4type >
其中,WebTitle 表示網頁標題; WebNavigation 表示網頁關鍵信息; WebContent 表示網頁正文內容。
網頁先通過 config. xml 文件確定所屬的模板庫,再在相應的模板庫中匹配相應的模板。若匹配到相應模板,則可利用模板分析網頁,提取內容。