詹茂森 秦勇
摘要:在基于社會(huì)計(jì)算的個(gè)性化推薦系統(tǒng)設(shè)計(jì)中,采集模塊的設(shè)計(jì)是數(shù)據(jù)的源頭,也是系統(tǒng)數(shù)據(jù)分析的基礎(chǔ),關(guān)系到系統(tǒng)的質(zhì)量。因此,采集模塊作為個(gè)性化推薦系統(tǒng)的一個(gè)部分,有著舉足輕重的作用,該文對該模塊進(jìn)行了詳細(xì)的研究,為后面模塊的設(shè)計(jì)提供了理論基礎(chǔ),也為相關(guān)系統(tǒng)的開發(fā)設(shè)計(jì)提供一定的借鑒經(jīng)驗(yàn)。
關(guān)鍵詞:采集;模塊;系統(tǒng)
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2014)10-2446-04
Abstract: On the base of social computing personalized recommendation system design, design of the acquisition module is a data source, but also the basis for system data analysis, related to the quality of the system. Therefore, a collection module as a personalized recommendation system, play a decisive role, this paper makes a detailed study of the module, which provides a theoretical foundation for designing the back modules, and also provides some useful experience in development and design for the system.
Key words: acquisition; module; system
基于社會(huì)計(jì)算的個(gè)性化推薦系統(tǒng)的采集模塊,關(guān)系到系統(tǒng)的質(zhì)量,為系統(tǒng)的性能指標(biāo)提供可靠的保證。采集模塊實(shí)現(xiàn)了對網(wǎng)頁文檔信息的自動(dòng)采集“爬蟲”功能,能夠基于用戶的信息關(guān)鍵詞來搜索。
采集模塊由網(wǎng)頁文檔信息采集模塊、lucene索引建立模塊和搜索推薦主干模塊構(gòu)成,分別從模塊的描述、功能、輸入項(xiàng)、輸出項(xiàng)、流程邏輯和接口詳細(xì)介紹了其實(shí)現(xiàn)的原理。
1 網(wǎng)頁文檔信息采集模塊
1)模塊描述
本模塊的重點(diǎn)之一是網(wǎng)絡(luò)爬蟲的編制。網(wǎng)絡(luò)爬蟲需要實(shí)現(xiàn)自動(dòng)地抓取網(wǎng)頁文檔,提取網(wǎng)頁地址,并且循環(huán)進(jìn)行。盡管網(wǎng)絡(luò)資源在同一個(gè)域之內(nèi),但為了提高爬取效率,還需要實(shí)現(xiàn)多線程才能保證更新的效率。另外,對于抓取到的文本存儲(chǔ)路徑相對于網(wǎng)頁的網(wǎng)址,必須進(jìn)行轉(zhuǎn)換,才能更快速地在本地?cái)?shù)據(jù)庫中搜尋到該網(wǎng)頁。而對于 IP地址則要做一個(gè)判斷,以實(shí)現(xiàn)在規(guī)定范圍的搜索。
2)模塊功能
主要功能由start函數(shù)實(shí)現(xiàn),其原型為:Start(UribaseURI ,intthreads) ,UribaseURI參數(shù)是表示需要下載的鏈接,后面的函數(shù)表示線程數(shù)量。路徑的轉(zhuǎn)換則需要通過轉(zhuǎn)換字符實(shí)現(xiàn)?;竟δ苋绫?網(wǎng)頁文檔信息采集功能表所示:
3)模塊輸入項(xiàng)
模塊輸入主要是對爬蟲參數(shù)的設(shè)置,爬蟲參數(shù)的設(shè)置要求如表2爬蟲參數(shù)設(shè)置說明表所示:
4)模塊輸出項(xiàng)
本系統(tǒng)主要進(jìn)行新浪博客的網(wǎng)頁文檔抓取,數(shù)據(jù)采集結(jié)果主要包括該博客網(wǎng)頁文檔以及該博客的地址,博客的題目、內(nèi)容、作者以及采集的時(shí)間等。
5)模塊邏輯流程
本模塊的邏輯流程:首先分析源地址,然后獲得地址列表,接下來反復(fù)循環(huán)每個(gè)地址,并調(diào)用相關(guān)方法來獲取內(nèi)容,通過計(jì)算,并得到文章相關(guān)信息,最后將獲得的信息保存在數(shù)據(jù)庫中。
6)模塊接口
數(shù)據(jù)的采集是從新浪服務(wù)端將博客網(wǎng)頁文檔數(shù)據(jù)存儲(chǔ)到本地?cái)?shù)據(jù)庫的過程,模塊的接口如圖1所示。
2 lucene索引建立模塊
1)模塊描述
索引建立模塊獨(dú)立于運(yùn)行平臺(tái),實(shí)現(xiàn)了文檔的解析和索引的創(chuàng)建,在本系統(tǒng)中解析的文檔類型主要是html文檔。
以 IndexWriter 建立索引 IndexWriter 的構(gòu)造函數(shù)有三種接口,針對目錄 Directory 文件 File文件路徑 String 三種情況在索引結(jié)束時(shí)使用 Lucene 的 wirter. optimize( ) 方法優(yōu)化索引。
2)模塊功能
實(shí)現(xiàn)模塊功能之前需要利用IKAnalyzer中文分詞器對文檔內(nèi)容進(jìn)行分詞。分詞器IKAnalyzer可以進(jìn)行文檔的篩選,獲取目標(biāo)文檔,無用部分則剔除掉。其常用接口有org ,apache, Lucene, analysis,Analyzer 虛構(gòu)類。
在該模塊中主要利用格式轉(zhuǎn)換類的方法,對格式文件采用與其相對應(yīng)的解析方式來實(shí)現(xiàn)格式的轉(zhuǎn)換,HTML文檔利用 POI 解析。下一步則是將實(shí)現(xiàn)了轉(zhuǎn)換的文件作為分詞器的輸入,對其進(jìn)行處理,最后編寫框架為所有文檔實(shí)現(xiàn)索引的創(chuàng)建,通過為字節(jié)流創(chuàng)建索引來實(shí)現(xiàn)為所有文檔建立索引的目標(biāo),如表3索引建立模塊功能表所示。
3)模塊輸入項(xiàng)
a)采用IKAnalyzer分析器進(jìn)行目標(biāo)文檔篩選;
b)利用POI對HTML文檔進(jìn)行解析;
a)后臺(tái)管理頁面數(shù)據(jù)輸入手動(dòng)操作,下達(dá)“索引創(chuàng)建”命令;
d)執(zhí)行框架語句,通過為字節(jié)流創(chuàng)建索引來實(shí)現(xiàn)為所有文檔建立索引。
4)模塊輸出項(xiàng)
此模塊的操作是通過登入系統(tǒng)后臺(tái)管理,在建立索引頁面下達(dá)命令,進(jìn)行索引的創(chuàng)建,自動(dòng)生成,如圖2 索引創(chuàng)建界面圖所示。
5)模塊邏輯流程
本模塊的邏輯流程是:首先從本地?cái)?shù)據(jù)庫中獲取數(shù)據(jù),得到待篩選文檔,通過判斷該文檔信息是否為目標(biāo)文檔。如果不是的話,就剔除,重新原有的操作,如果是目標(biāo)文檔,則將目標(biāo)文檔進(jìn)行格式轉(zhuǎn)換,從而來建立索引。
6)模塊接口
從模塊邏輯流程可以知道,本模塊的接口也是由本地?cái)?shù)據(jù)庫,通過后臺(tái)管理程序來自動(dòng)完成索引的建議,其模塊的接口如圖3所示。
3 搜索推薦主干模塊
1)模塊描述
模塊中包含服務(wù)器 Action 類, Action 類有對應(yīng)的 Service 類和 Lucene 搜索類。連接應(yīng)用服務(wù)器,下達(dá)命令之后可以從索引文件中搜尋出目標(biāo)文檔,其整體框架如圖4搜索推薦主干模塊整體框架圖所示。
服務(wù)器接收命令,傳遞給對應(yīng)的 Action 類, 然后Action 類調(diào)用對應(yīng)的 Service 類,再利用 Lucene 搜索類從找到目標(biāo)文檔,最后在JSP 頁面顯示搜索結(jié)果。此過程中采用 Action 類解析方法,把字節(jié)流以JSP 頁面高亮顯示出來,檢索目標(biāo)文檔則是利用 Lucene 的檢索接口 Query 與QueryParser 實(shí)現(xiàn)。采用QueryParser.parse 完成對搜索結(jié)果的排序,通過org.apache.Lucene.search.Sort 實(shí)現(xiàn),。
2)模塊功能
服務(wù)器可以利用搜索模塊傳遞文檔 URL,進(jìn)而搜尋到文檔的位置,并采用文件系統(tǒng)將文檔解析到一個(gè)動(dòng)態(tài)頁面,即一個(gè)可以顯示不同文檔內(nèi)容的頁面。最后是將搜索結(jié)果,即找到的目標(biāo)文檔 URL 集合倒排展示,并且對輸入的關(guān)鍵詞,以及關(guān)鍵詞出現(xiàn)次數(shù)等,以高亮顯示出來,如表4搜索推薦主干功能表所示。
3)模塊輸入項(xiàng)
a)前臺(tái)頁面數(shù)據(jù)輸入:名稱:搜索關(guān)鍵詞;標(biāo)識(shí):keyword;數(shù)據(jù)類型:varchar;數(shù)據(jù)來源:用戶鍵盤輸入。
b)模塊類調(diào)用命令:
服務(wù)器識(shí)別用戶提交的關(guān)鍵詞,傳遞給對應(yīng)的 Action 類,Action 類再調(diào)用對應(yīng)的的 Service 類,然后交給 Lucene 的搜索類處理。
4)模塊輸出項(xiàng)
Jsp界面將搜索結(jié)果推薦出來,以高亮顯示博客作者,搜索關(guān)鍵詞以及關(guān)鍵詞出現(xiàn)次數(shù)等,如圖5搜索結(jié)果推薦頁面圖所示:
5) 模塊流程邏輯
本模塊的邏輯流程是:首先從接收搜索命令獲得搜索的目標(biāo),傳遞給Action類,從而找出其對應(yīng)的Service類,再通過Lucene搜索類來實(shí)現(xiàn)目標(biāo)文檔的推薦,最后以設(shè)置好的高量度形式顯示出來。
6) 模塊接口
本模塊主要是把數(shù)據(jù)存儲(chǔ)層的數(shù)據(jù),通過業(yè)務(wù)邏輯層的業(yè)務(wù)處理,來實(shí)現(xiàn)表示層的表示,從而實(shí)現(xiàn)目標(biāo)文檔的搜索推薦功能,其接口如圖6 搜索推薦主干模塊接口圖所示。
4 模塊管理
為了更好的實(shí)現(xiàn)資源的統(tǒng)一管理,將其設(shè)計(jì)在后臺(tái)統(tǒng)一界面進(jìn)行管理,其管理頁面結(jié)構(gòu)如圖7統(tǒng)一管理結(jié)構(gòu)圖所示。
參考文獻(xiàn):
[1] 詹茂森.基于社會(huì)計(jì)算的個(gè)性化推薦系統(tǒng)的設(shè)計(jì)[J].電腦知識(shí)與技術(shù),2013,12.
[2] 梁弼,王光瓊,鄧小青.基于 Lucene 的全文檢索系統(tǒng)模型的研究及應(yīng)用[J].微型機(jī)與應(yīng)用,2011,30 (1).
[3] 黃明,梁旭.JSP信息系統(tǒng)設(shè)計(jì)與開發(fā)實(shí)例[D].北京:機(jī)械工業(yè)出版社,2004.