面向多租戶的SaaS輿情監(jiān)控系統(tǒng)及方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明設(shè)及輿論監(jiān)控領(lǐng)域,特別是一種面向多租戶的SaaS輿情監(jiān)控系統(tǒng)及方法。
【背景技術(shù)】
[0002] 2015年,中國的網(wǎng)民滲透率將達(dá)50%,隨著網(wǎng)民不斷增多,言論數(shù)量也表現(xiàn)出爆炸 性增長的趨勢。為了及時發(fā)現(xiàn)言論中的不良信息,掌控網(wǎng)絡(luò)言論的發(fā)展態(tài)勢,輿情監(jiān)控已經(jīng) 成為政府及大型企業(yè)的實際需求。但海量的媒體數(shù)據(jù)和異構(gòu)的信息內(nèi)容為輿情監(jiān)控帶來了 極大的挑戰(zhàn):
[0003] 1.傳統(tǒng)的輿情系統(tǒng)的設(shè)計多采用單機模型,主要面向單個領(lǐng)域進行監(jiān)控。隨著答 數(shù)據(jù)的涌現(xiàn)和數(shù)據(jù)結(jié)構(gòu)的多變,現(xiàn)有的輿情監(jiān)控系統(tǒng)難W同時滿足海量數(shù)據(jù)的實時獲取和 實現(xiàn)多領(lǐng)域的監(jiān)控,傳統(tǒng)的單機系統(tǒng)面對龐大的多源數(shù)據(jù)表現(xiàn)出可擴展性等問題。
[0004] 2.當(dāng)前的輿情監(jiān)控系統(tǒng)都是基于某類特定算法實現(xiàn)的,針對一個特定的用戶需求 可能需要多種算法進行分析。在面向不同用戶的需求,或者針對新的任務(wù)和功能,現(xiàn)有的系 統(tǒng)難W進行處理和擴展。
[0005] 因此,我們提出面向多租戶的SaaS輿情監(jiān)控系統(tǒng),針對海量、異構(gòu)、多源數(shù)據(jù)進行 爬取,在并行計算框架基礎(chǔ)上對數(shù)據(jù)分析,并通過云計算平臺W低成本提供海量輿情數(shù)據(jù) 的監(jiān)控服務(wù)。
【發(fā)明內(nèi)容】
[0006] 有鑒于此,本發(fā)明的目的是提出一種面向多租戶的SaaS輿情監(jiān)控系統(tǒng)及方法,在 多數(shù)據(jù)源、多租戶等方面體現(xiàn)了良好的可擴展性。
[0007] 本發(fā)明的系統(tǒng)采用W下方案實現(xiàn):一種面向多租戶的SaaS輿情監(jiān)控系統(tǒng),包括數(shù) 據(jù)采集與存儲模塊、基于并行處理框架的數(shù)據(jù)分析模塊;所述數(shù)據(jù)采集與存儲模塊是在 Nutch開源框架的基礎(chǔ)上,對指定的包括新聞、博客、論壇在內(nèi)的網(wǎng)站進行實時監(jiān)控,發(fā)現(xiàn)并 下載最新網(wǎng)頁的全文信息,自動提取網(wǎng)頁中的鏈接,訪問其他網(wǎng)頁進行抓取并存儲至數(shù)據(jù) 庫中,采集的輿情數(shù)據(jù)采用皿ase分布式存儲技術(shù)實現(xiàn)海量數(shù)據(jù)的存儲;所述數(shù)據(jù)分析模塊 在并行計算框架基礎(chǔ)上,采用基于Single-Pass的改進算法發(fā)現(xiàn)熱點話題,將挖掘出的熱點 話題與用戶預(yù)設(shè)的業(yè)務(wù)需求描述進行逐條匹配,用W實現(xiàn)用戶在海量數(shù)據(jù)上的篩選和過 濾。
[000引進一步地,本發(fā)明的數(shù)據(jù)采集與存儲模塊是基于Nutch開源框架實現(xiàn)的。Nutch是 一個由化va實現(xiàn)的開源web捜索引擎,主要用于收集網(wǎng)頁數(shù)據(jù),對其進行分析、索引,W提供 相應(yīng)的接口來對其網(wǎng)頁數(shù)據(jù)進行查詢的一套工具。Nutch 1.X版本將爬取的網(wǎng)頁存儲在 皿FS文件系統(tǒng)中,而2.X版本對底層的數(shù)據(jù)存儲進行了抽象,支持使用多種數(shù)據(jù)庫,例如 皿ase ,MySql來存儲數(shù)據(jù)??紤]到使用上的需求,本方法選取Nutch 2.2.1版本,方便讀取存 儲的網(wǎng)頁數(shù)據(jù)。
[0009]較佳的,輿情監(jiān)控系統(tǒng)在信息獲取上要求具有高度的針對性和時效性。為滿足上 述兩點,本發(fā)明基于Nutch搭建采集模塊,采用分布式部署和并行爬取的策略,由一臺服務(wù) 控制器和多個爬蟲端組成,服務(wù)控制器負(fù)責(zé)爬蟲端的監(jiān)測與控制,每個爬蟲端可單獨配置 爬取的站點、深度等參數(shù),進行全天候的數(shù)據(jù)獲取。對于爬取的數(shù)據(jù),按照一定的格式存儲 于分布式平臺皿ase中。皿ase是一個分布式的、面向列的開源數(shù)據(jù)庫,依托于化doop的皿FS 作為最基本存儲基礎(chǔ)單元。皿ase不同于一般的關(guān)系數(shù)據(jù)庫,它是一個適合于非結(jié)構(gòu)化數(shù)據(jù) 存儲的數(shù)據(jù)庫。
[0010] 進一步地,Nutch是為捜索引擎設(shè)計的爬蟲,主要針對互聯(lián)網(wǎng)上的信息進行漫無邊 際的爬取,在精準(zhǔn)數(shù)據(jù)抓取方面較為薄弱;另一方面,Nutch數(shù)據(jù)更新周期的長短,決定了采 集的數(shù)據(jù)是否具有時效性,但周期設(shè)置過短,Nutch則會浪費大量時間在已爬取網(wǎng)頁的更新 工作上。因此,對Nutch進行了 W下改進:
[0011] 1)限制數(shù)據(jù)的采集范圍。Nutch提供了一個迭代次數(shù)的設(shè)置參數(shù),爬蟲程序一旦達(dá) 到迭代次數(shù)即停止,但最后一次迭代解析出的鏈接將會作為下一次爬蟲的起始地址,因此 Nutch會對互聯(lián)網(wǎng)上的信息進行漫無邊際的爬取。但互聯(lián)網(wǎng)上太久遠(yuǎn)的網(wǎng)頁不是我們的采 集目標(biāo),為去除運部分網(wǎng)頁,我們設(shè)置一定的爬取深度。爬蟲程序從入口 URL開始抓取網(wǎng)頁, 一直采集到預(yù)設(shè)的深度即停止。最后一層深度的網(wǎng)頁只獲取內(nèi)容,不解析其鏈接,實現(xiàn)數(shù)據(jù) 采集范圍的限制功能。
[0012] 2)廢除數(shù)據(jù)更新周期。若一個網(wǎng)頁的所在位置與入口地址的距離已經(jīng)超出上述的 爬取深度,我們認(rèn)為該網(wǎng)頁已經(jīng)不在我們的采集范圍內(nèi),即該網(wǎng)頁對于本輿情監(jiān)控系統(tǒng)來 說"太久遠(yuǎn)"了,沒有必要再進行更新,因此本方法廢除了數(shù)據(jù)更新周期運個配置參數(shù)。針對 仍在采集范圍內(nèi)的網(wǎng)頁,每一次爬蟲程序啟動,都要獲取其HTTP header中的Last-Modified 屬性 ,判斷是否需要更新 ,若需要更新則將該 網(wǎng)頁的U化加入預(yù)取列表 ,等待重新 抓取。
[0013] 3)7*24小時采集。由于網(wǎng)絡(luò)輿情具有突發(fā)性,網(wǎng)絡(luò)上隨時可能產(chǎn)生新的言論,為實 時獲取網(wǎng)絡(luò)輿論信息,本方法采用全天候的監(jiān)控方法,為Nutch添加了一個時間調(diào)度模塊, W達(dá)到實時監(jiān)控的目的。
[0014] 特別的,數(shù)據(jù)分析模塊是輿情系統(tǒng)的核屯、部分,該模塊采用MapReduce并行處理框 架實現(xiàn)。數(shù)據(jù)分析模塊設(shè)及采用開源分詞工具IKAnalyzer對采集的輿情數(shù)據(jù)進行中文分詞 處理,提取出文本的特征詞并計算特征詞的權(quán)重,建立文本的向量空間模型,然后通過改進 的Single-Pass聚類算法實現(xiàn)熱點話題挖掘,并針對用戶的不同業(yè)務(wù)需求向用戶推送輿情 內(nèi)容,
[0015] 本發(fā)明還提供了一種基于上文所述的面向多租戶的SaaS輿情監(jiān)控系統(tǒng)的方法,具 體包括W下步驟;
[0016] 步驟SI:所述數(shù)據(jù)采集與存儲模塊采用Nutch開源框架對指定的包括新聞、博客、 論壇在內(nèi)的網(wǎng)站進行實時監(jiān)控,發(fā)現(xiàn)并下載最新網(wǎng)頁的全文信息,自動提取網(wǎng)頁中的鏈接, 訪問其他網(wǎng)頁進行抓取并存儲至數(shù)據(jù)庫中;
[0017] 步驟S2:將采集的輿情數(shù)據(jù)采用皿ase分布式存儲技術(shù)實現(xiàn)海量數(shù)據(jù)的存儲;
[0018] 步驟S3:所述數(shù)據(jù)分析模塊采用開源分詞工具IKAnalyzer對采集的輿情數(shù)據(jù)進行 中文分詞處理,提取出文本的特征詞并計算特征詞的權(quán)重,建立文本的向量空間模型,然后 通過改進的Single-Pass聚類算法實現(xiàn)熱點話題挖掘,并針對用戶的不同業(yè)務(wù)需求向用戶 推送輿情內(nèi)容。
[0019] 進一步地,所述步驟Sl中Nutch的工作具體包括W下步驟:
[0020] 步驟Sl 1:初始化抓取數(shù)據(jù)庫化awl抓,注入種子1]化;
[0021 ] 步驟S12:根據(jù)化awl抓創(chuàng)建抓取列表,并寫入相應(yīng)的segments,一個segments代表 一次抓??;
[0022] 步驟S13:根據(jù)預(yù)取列表中的鏈接進行抓取,獲取網(wǎng)頁文件;
[0023] 步驟S14:把獲取到的網(wǎng)頁文件的頁面信息存入所述數(shù)據(jù)庫中,解析獲取的頁面, 提取頁面內(nèi)的鏈接,并更新所述化awl抓;
[0024] 步驟S15:判斷Nutch的爬取工作是否達(dá)到預(yù)先設(shè)定的深度,若是,則停止爬取工 作,并進入步驟S16;若否,則返回步驟S12;
[00巧]步驟S16:從化awl抓獲取頁面重要性評分,同時更新segments;
[0026] 步驟S17:為獲取的頁面建立索引數(shù)據(jù)庫;
[0027] 步驟S18:去除重復(fù)的內(nèi)容,將索引進行合并生成最終可提供系統(tǒng)查詢的索引文 件。
[0028] 進一步地,步驟S3中所述提取出文本的特征詞并計算特征詞的權(quán)重具體為:采用 向量空間模型VSM表示文檔,即將文檔加央射為W下形式化的方式來描述:
[0029] d=(tl,Wl,t2,W2,t3,W3, . . . ,tn,Wn);
[0030] 其中,tl,t2,t3,…,tn是代表文檔內(nèi)容的特征詞;W1,W2,W3,…,Wn為對應(yīng)特征詞tl, ,tn的權(quán)重;
[0031] 其中,特征詞的權(quán)重為某個詞的TF ? IDF值,所述TF表示詞條在文檔中