潘侃,張林山,劉增傳
(1.云南電網(wǎng)有限責任公司電力科學(xué)研究院,昆明 650217;2.昆明能訊科技有限責任公司,昆明 650217)
各種搜索引擎的功能側(cè)重不一樣,依靠單一的搜索引擎不能完全提供需要的信息,因此需要一種軟件或網(wǎng)站把各種搜索引擎無縫地融合在一起,智能搜索引擎是結(jié)合了人工智能技術(shù)的新一代搜索引擎。除了能提供傳統(tǒng)的快速檢索、相關(guān)度排序等功能,還能提供用戶角色登記、用戶興趣自動識別、內(nèi)容的語義理解、智能信息化過濾和推送等功能。智能搜索引擎設(shè)計追求的目標是:根據(jù)用戶的請求,從可以獲得的網(wǎng)絡(luò)資源中檢索出對用戶最有價值的信息。
Solr 是一個高性能,采用Java5 開發(fā),基于Lucene 的全文搜索服務(wù)器。同時對其進行了擴展,提供了比Lucene 更為豐富的查詢語言,同時實現(xiàn)了可配置、可擴展并對查詢性能進行了優(yōu)化,并且提供了一個完善的功能管理界面。具有易用性:Solr 簡化了Lucene 具體應(yīng)用,使用戶不用寫代碼或者簡單的代碼就可以實現(xiàn)搜索功能。Solr使用http 請求的方式完成索引的生成和查詢。Solr 支持從文本、web 頁面、數(shù)據(jù)庫中直接導(dǎo)入數(shù)據(jù),建立索引。Solr 提供了強大的配置功能,通過簡單的修改配置文件就可以完成字段定義、數(shù)據(jù)類型定義、中文分詞器、檢索字段、檢索方法、默認值等配置;異構(gòu)性:Solr 提供了對異構(gòu)系統(tǒng)的整合方案,在分布索引、結(jié)果排序、查詢篩選、顯示等方面俊提供了完整的解決方案;易集成性:Solr 是一個web 應(yīng)用,支持不同語言多種客戶端調(diào)用。
Nutch 是一個開源Java 實現(xiàn)的搜索引擎。它提供了運行搜索引擎所需的全部工具。包括全文搜索和Web 爬蟲。Nutch 提供了這樣一個不同的選擇.相對于那些商用的搜索引擎,Nutch 作為開放源代碼 搜索引擎將會更加透明,從而更值得大家信賴。
KAnalyzer 是一個開源基于JAVA 語言的輕量級的中文分詞第三方工具包。算法采用“正向迭代最細粒度切分算法”,支持細粒度和最大詞長兩種分詞方式,速度最大支持80 W 字/秒(1 600 KB/秒)。支持多子處理器分析模式:中文、數(shù)字、字母,并兼容日文、韓文。較小的內(nèi)存占用,優(yōu)化詞庫占有空間,用戶可自定義擴展詞庫。擴展Lucene 的擴展實現(xiàn),采用歧義分析算法優(yōu)化查詢關(guān)鍵字的搜索排列組合,提高Lucene 檢索命中率。
技術(shù)創(chuàng)新支持平臺的核心組件包括:Nutch+IKAnalyzer+Solr+Solrj。Nutch 用于爬取網(wǎng)頁。Solr作為搜索引擎服務(wù)器,負責索引的建立和查詢。由于Solr 自身的中文分詞功能比較弱,所以利用IKAnalyzer 完成中文分詞的功能。SolrJ 是操作Solr 的JAVA 客戶端??傮w架構(gòu)圖如下:
圖1 總體架構(gòu)圖
中文分詞是中文自然語言處理中最基本的一個步驟,非常多的研究者對它做了很深入的研究,也因此產(chǎn)生了很多不同的分詞方法,這些方法大體上可以分為兩類:基于詞典匹配的方法和基于統(tǒng)計的方法。技術(shù)創(chuàng)新平臺使用的是基于詞典匹配的方法。通用的分詞詞典更適用于日常語言環(huán)境,而在專業(yè)的領(lǐng)域的知識信息搜索中存在一定的不足之處。技術(shù)創(chuàng)新平臺更多的是面向電力行業(yè),通用詞庫中不包含電力行業(yè)特有的詞,如:一次設(shè)備、斷路器、飽和電抗器、熔斷器等。
針對通用分詞詞典的不足,整理專業(yè)領(lǐng)域的詞典。整理行業(yè)詞典的基本操作主要有:去重、去噪、篩選、規(guī)整。在現(xiàn)有電力行業(yè)詞典中加入整理、總結(jié)得到新的詞匯,由于有新的詞匯加入,很容易出現(xiàn)重復(fù),需對詞典進行去重操作。去噪和篩選,即去掉一些相關(guān)度比較低、甚至是特殊字符的詞,保留使用頻率較高的詞。對詞典進行規(guī)整,就是整理詞典的規(guī)范性,如可能出現(xiàn)錯別字,詞中包含其他符號、空格、后綴等。通過幾次以上操作的迭代,就可以得到一份高質(zhì)量的行業(yè)詞典。
企業(yè)級搜索引擎的建立還有一個極大的好處就是能夠適應(yīng)各種復(fù)雜的網(wǎng)絡(luò)環(huán)境。通過企業(yè)級搜索引擎的搭建可以提供單機、局域網(wǎng)、外網(wǎng)甚至內(nèi)外網(wǎng)結(jié)合的搜索服務(wù)。技術(shù)創(chuàng)新平臺的搜索需求需要融合內(nèi)外網(wǎng),既要能搜索到外部網(wǎng)絡(luò)的海量的信息內(nèi)容,又要能搜索到內(nèi)網(wǎng)中高質(zhì)量的技術(shù)知識。同時還要保護內(nèi)網(wǎng)中的信息。
根據(jù)平臺的特殊的網(wǎng)絡(luò)需求,設(shè)計網(wǎng)絡(luò)結(jié)構(gòu)如下:
圖2 網(wǎng)絡(luò)結(jié)構(gòu)圖
搜索引擎的服務(wù)器要求能同時訪問內(nèi)網(wǎng)網(wǎng)站和外網(wǎng),這樣就可以爬取內(nèi)外網(wǎng)的網(wǎng)站。限制外網(wǎng)不能訪問搜索引擎和和技術(shù)創(chuàng)新平臺,這樣內(nèi)網(wǎng)的相關(guān)信息就不會暴露在外部網(wǎng)絡(luò)環(huán)境中,保證了信息的安全。
技術(shù)創(chuàng)新平臺建設(shè)的目的是方便職工搜集技術(shù)創(chuàng)新信息、拓寬職工的技術(shù)創(chuàng)新思路。這就要求系統(tǒng)能夠充分獲取航天、能源、醫(yī)學(xué)等其他領(lǐng)域的新技術(shù)、新方法等信息。職工通過平臺獲取電力和其他行業(yè)的前沿技術(shù)信息,讓職工了解相關(guān)技術(shù)及其運用,啟發(fā)職工將其他領(lǐng)域的技術(shù)運用到電網(wǎng)生產(chǎn)運行中,解決相關(guān)問題和難點。
在搜索引擎爬取數(shù)據(jù)時,配置爬取各個領(lǐng)域的技術(shù)論壇、門戶等信息網(wǎng)站。將現(xiàn)有問題和解決思路存庫,方便添加和更新。同時在搜索引擎中建立問題和思路的索引,方便搜索。
技術(shù)創(chuàng)新平臺運用了當前發(fā)達的網(wǎng)絡(luò)體系和信息化技術(shù),目的在于幫助開展職工技術(shù)創(chuàng)新活動,加強職工隊伍建設(shè),組織動員職工積極參與技術(shù)創(chuàng)新實踐,是提高職工創(chuàng)新能力,促進創(chuàng)新型企業(yè)建設(shè)的良好途徑。
[1]李春濤.利用搜索引擎搭建企業(yè)搜索平臺[J].中文信息,2014.
[2]趙凱.基于Solr 的企業(yè)級搜索引擎的設(shè)計[J].電子世界,2013.
[3]李雪利.基于Solr 的企業(yè)搜索引擎的研究與實現(xiàn)[D].
[4]王曉琴.基于Nutch 的農(nóng)業(yè)垂直搜索引擎研究[J].計算機工程與設(shè)計,2014.
[5]王小正.基于Nutch 和Solr 的基礎(chǔ)教育垂直搜索引擎的實現(xiàn)[J].電腦知識與技術(shù),2012.