余棟柱

摘要 國家高質(zhì)量發(fā)展戰(zhàn)略方案有序推進,隨著煙草行業(yè)監(jiān)管要求不斷升級,出臺的規(guī)章制度與方針政策也在不斷豐富與細化。內(nèi)部專賣監(jiān)督管理隊伍的員工在煙草行業(yè)網(wǎng)查找自己需要的信息資料,難度也在不斷加大。本文提出以垂直搜索引擎框架構(gòu)為基礎,構(gòu)建基于煙草行業(yè)內(nèi)部專賣監(jiān)督管理需求的信息整合方案,旨在為煙草員工提供準確的搜索結(jié)果,實現(xiàn)更加有效的科學監(jiān)管。
關(guān)鍵詞 煙草行業(yè);高質(zhì)量發(fā)展;垂直搜索引擎;信息整合;科學監(jiān)管
隨著煙草行業(yè)內(nèi)部網(wǎng)絡信息量的不斷增長以及行業(yè)監(jiān)管要求的升級,員工在工作中獲取自己所需信息的難度也在不斷加大。行業(yè)內(nèi)部網(wǎng)普通的搜索查詢結(jié)果難以滿足員工特定的搜索要求,并且上下級行業(yè)網(wǎng)的信息有不同程度的重復。這一現(xiàn)狀對于煙草行業(yè)內(nèi)部專賣監(jiān)督管理工作的開展,進行全過程閉環(huán)監(jiān)督,構(gòu)建監(jiān)管長效機制,帶來了一定的困難。
基于煙草行業(yè)內(nèi)部專賣監(jiān)督管理的現(xiàn)實需求,為員工提供準確的搜索結(jié)果,實現(xiàn)有效的科學監(jiān)管,需要構(gòu)建一個信息整合方案,對各級煙草行業(yè)內(nèi)部網(wǎng)進行頁面凈化、信息抽取、頁面分類、數(shù)據(jù)挖掘等深度加工,以獲取具有較高準確率、覆蓋率的搜索結(jié)果。經(jīng)過對比,垂直搜索引擎是符合需求的一種技術(shù)方案。
一、垂直搜索引擎的相關(guān)技術(shù)
垂直搜索引擎,是對專業(yè)特定的領(lǐng)域或行業(yè)的內(nèi)容進行專業(yè)和深入的分析挖掘、過濾篩選,使信息定位更精準的專業(yè)搜索引擎。它是搜索引擎的細分和延伸,能針對性地為某一特定領(lǐng)域、某一特定人群或某一特定需求提供專門的信息檢索服務,以滿足用戶個性化的信息需求。
二、Nutch框架的簡介
作為一個基于Java 實現(xiàn)的開源搜索引擎,Nutch提供了構(gòu)建垂直搜索引擎所需的全部工具,包括網(wǎng)頁爬蟲、網(wǎng)頁解析器、索引器以及檢索器。
總體上,它可以分為爬網(wǎng)程序以及搜索程序兩個部分。第一是爬網(wǎng)程序,它使用自帶的Crawl命令,負責搜集頁面,并把爬取回來的網(wǎng)頁數(shù)據(jù),解析做成反向索引;第二是搜索程序,網(wǎng)絡爬蟲的解析器將自動分析頁面,搜索第一步的反向索引,響應用戶的請求。
三、需要解決的行業(yè)需求問題
開源框架Nutch構(gòu)造出性能良好的垂直搜索引擎后,依然需要解決一些特定的問題,才可滿足煙草行業(yè)內(nèi)部專賣監(jiān)督管理的信息整合需求,主要包括:
針對上面這些問題,再結(jié)合煙草內(nèi)部專賣監(jiān)督管理的具體需求,還需要在以Nutch為基礎的框架,增加頁面解析(parser)、頁面分類(classifier)、中文分詞(analyzer)、檢索排序(sorter)這四個關(guān)鍵的功能模塊,用來完成頁面解析分類、中文分詞以及檢索結(jié)果排序等功能。
四、構(gòu)建垂直搜索引擎的方案
(一)網(wǎng)頁分類的設計
本方案的一個核心功能是讓網(wǎng)頁根據(jù)我們需要的內(nèi)容自動分類。classifier模塊將抓取下來的網(wǎng)頁進行個性化分類。Contents模塊把煙草行業(yè)內(nèi)部網(wǎng)頁的元素數(shù)據(jù)meta data和文本內(nèi)容儲存起來。在Classifier模塊中,維持了采用XML的配置文件進行定義分類的規(guī)則。在方案中,利用分詞器Analyzer,對每個行業(yè)內(nèi)部網(wǎng)頁的內(nèi)容進行分詞,再將分詞后的內(nèi)容和classifier模塊中的分類規(guī)則進行匹配檢驗,用分類便簽信息貼給網(wǎng)頁,這樣一來,索引器就能實現(xiàn)網(wǎng)頁分類的功能。
(二)網(wǎng)頁信息抽取的設計
框架的網(wǎng)頁解釋和網(wǎng)頁檢索是兩個相互獨立處理的過程,筆者把煙草行業(yè)內(nèi)部網(wǎng)頁的信息抽取處理過程,劃分為兩部分,即抽取原始頁面的結(jié)構(gòu)化信息與存儲抽取的結(jié)構(gòu)化信息。
筆者提出的方案,把煙草內(nèi)部網(wǎng)頁的處理分成四個步驟,分別是規(guī)范化網(wǎng)頁、凈化網(wǎng)頁、抽取結(jié)構(gòu)化信息、存儲信息。前三個是抽取信息的過程,最后一個是存儲信息的過程。
1.網(wǎng)頁內(nèi)容的凈化。普通網(wǎng)頁包括正文內(nèi)容和其他內(nèi)容。正文內(nèi)容是主題信息內(nèi)容,其他內(nèi)容是和主題信息內(nèi)容關(guān)聯(lián)不大的導航條、宣傳信息等內(nèi)容,也叫“網(wǎng)頁噪音”。網(wǎng)頁凈化模塊,就是為了盡量剔除“網(wǎng)頁噪音”,讓后面步驟里的信息抽取有更高的效率和準確率。
了解對比國內(nèi)中文網(wǎng)頁凈化算法后,再結(jié)合煙草行業(yè)內(nèi)部專賣監(jiān)督管理的現(xiàn)實情況,筆者提出一種特有的網(wǎng)頁凈化算法。將HTML頁面構(gòu)建成一顆標簽樹,再利用網(wǎng)頁的標簽(主要是TABLE標簽)進行分塊,并對其添加語義屬性。它是剪枝凈化的依據(jù),凈化后的標簽樹再還原成“去噪后”的HTML。分塊之間也有父子層次關(guān)系,這樣的標簽樹稱為擴展語義的DOM樹。
2.信息抽取。通過上面網(wǎng)頁凈化步驟的處理后的網(wǎng)頁結(jié)構(gòu)相對簡單,建議采用基于模版信息抽取的方式進行結(jié)構(gòu)化信息抽取。制定不同的正則表達式和使用XPath技術(shù)完成信息抽取的任務。
用XPath處理結(jié)點的優(yōu)勢是處理字段結(jié)點全部內(nèi)容為結(jié)構(gòu)化數(shù)據(jù)字段值的情況;正則表達式的優(yōu)勢是處理文本相關(guān)方面。算法中都用它們提取結(jié)構(gòu)數(shù)據(jù)的字段值。
(三)中文分析器的設計
煙草行業(yè)內(nèi)部網(wǎng)頁大多是中文字符,所以需要用Chinese Analyzer對網(wǎng)頁做索引,進一步對網(wǎng)頁內(nèi)容進行分析處理。同時,還要對員工用戶輸入的中文詞語進行自動分詞,讓系統(tǒng)識別出最接近語義組合的結(jié)果;然后在系統(tǒng)查詢數(shù)據(jù)庫數(shù)據(jù)的時候,對輸入的查詢詞語分詞后,得到相關(guān)的詞語。
首字Hash+折半查找高,第一層Hash是根據(jù)詞匯的長度來計算的,第二層Hash是首字Hash,最后得到詞匯子表進行折半查找。第一次對第0個字進行Hash,所有首字相同的詞語是一個子集合。這個子集合相對整個詞典稱為子詞典。循環(huán)每個子詞典。
如果這個子詞典的詞語數(shù)小于某個常數(shù)C(暫使用C=16),那這個子詞典使用二分查找;否則繼續(xù)對這個子詞典做與第一次一樣的Hash,分解出再下一級的子詞典。
(四)檢索結(jié)果的排序和分頁
1.結(jié)果數(shù)據(jù)的排序。基于框架內(nèi)部的Score和DocID的相關(guān)度,是本設計方案展示搜索結(jié)果的默認方式。Score是一種底層boost,它根據(jù)關(guān)鍵詞內(nèi)部評分和做索引的需要而建立。優(yōu)先排序Score高的條目,再根據(jù)索引先后順序排序,如果Score一樣,先索引的排前面。
可以根據(jù)需要,在每次執(zhí)行查找操作的時候,人為干預提升某個文檔的相關(guān)度,只要修改boost里面的Score數(shù)值,就可以讓它的搜索結(jié)果排在靠前的位置。也可以使用系統(tǒng)自帶的Sort類對檢索結(jié)果進行排序。
2.分頁的解決。當查詢結(jié)果數(shù)據(jù)量大,一個版面(或者web版面)無法完全顯示的時候,目前通常的解決方案有如下四種。第一種是利用session的暫存數(shù)據(jù)二次獲取;第二種是對數(shù)據(jù)庫進行多次查詢獲得查詢目標數(shù)據(jù);第三種,結(jié)合上面的第一種緩存和第二種的多次查詢;第四種,則是前面一二結(jié)合緩存和多次查詢后,再把數(shù)據(jù)緩存到數(shù)據(jù)庫級別當中。對于煙草行業(yè)整合數(shù)據(jù)的查詢,如果對定位的要求不高,第三種方式即可,當查詢用戶比較多的時候,推薦采用第四種方式。
這樣的好處是每個檢索結(jié)果在session緩存中的數(shù)據(jù)量可以進一步減少,這樣就可以用它緩存更多的檢索結(jié)果,能大大提升檢索速度。
五、結(jié)語
本文基于煙草行業(yè)內(nèi)部專賣監(jiān)督管理的信息整合需求,為了信息查詢操作更加方便,為了結(jié)果更符合行業(yè)部門人員的需求,提出了信息整合的方案,并對方案的設計方法作了闡述。在解決行業(yè)特定的問題的過程中,對網(wǎng)頁內(nèi)容自動分類、解析頁面內(nèi)容并提取、中文的分詞、檢索結(jié)果排序和分頁提出了設計解決方案,最終滿足行業(yè)自定義的信息整合需求。
(作者單位為廣州市煙草專賣局)
參考文獻
[1] 卷煙經(jīng)營內(nèi)部專賣管理監(jiān)督工作指引(試行)[Z].國家煙草專賣局,2019.
[2] 陳昌平,張捷,胡州明,等.垂直搜索引擎在企業(yè)內(nèi)部的應用探索[J].信息與電腦,2018(20):51-53.
[3] 趙雙雙,林紅,李仁旺.基于Lucene的煙草個性化搜索引擎的研究與實現(xiàn)[J].工業(yè)控制計算機,2015,28(1):114-116.