互聯(lián)網(wǎng)的飛速發(fā)展促進(jìn)了很多新媒體的發(fā)展,不論是知名的大 V,明星還是圍觀群眾都可以通過手機(jī)在微博,朋友圈或者點(diǎn)評網(wǎng)站上發(fā)表狀態(tài),分享自己的所見所想,使得“人人都有了麥克風(fēng)”。不論是熱點(diǎn)新聞還是娛樂八卦,傳播速度遠(yuǎn)超我們的想象??梢栽诙潭虜?shù)分鐘內(nèi),有數(shù)萬計轉(zhuǎn)發(fā),數(shù)百萬的閱讀。如此海量的信息可以得到爆炸式的傳播,如何能夠?qū)崟r的把握民情并作出對應(yīng)的處理對很多企業(yè)來說都是至關(guān)重要的。大數(shù)據(jù)時代,除了媒體信息以外,商品在各類電商平臺的訂單量,用戶的購買評論也都對后續(xù)的消費(fèi)者產(chǎn)生很大的影響。商家的產(chǎn)品設(shè)計者需要匯總統(tǒng)計和分析各類平臺的數(shù)據(jù)做為依據(jù),決定后續(xù)的產(chǎn)品發(fā)展,公司的公關(guān)和市場部門也需要根據(jù)輿情作出相應(yīng)的及時處理,而這一切也意味著傳統(tǒng)的輿情系統(tǒng)升級成為大數(shù)據(jù)輿情采集和分析系統(tǒng)。
分析完輿情場景后,我們再來具體細(xì)化看下大數(shù)據(jù)輿情系統(tǒng),對我們的數(shù)據(jù)存儲和計算系統(tǒng)提出哪些需求:
海量原始數(shù)據(jù)的實(shí)時入庫:為了實(shí)現(xiàn)一整套輿情系統(tǒng),需要有上游原始輸出的采集,也就是爬蟲系統(tǒng)。爬蟲需要采集各類門戶,自媒體的網(wǎng)頁內(nèi)容。在抓取前需要去重,抓取后還需要分析提取,例如進(jìn)行子網(wǎng)頁的抓取。 原始網(wǎng)頁數(shù)據(jù)的處理:不論是主流門戶還是自媒體的網(wǎng)頁信息,抓取后我們需要做一定的數(shù)據(jù)提取,把原始的網(wǎng)頁內(nèi)容轉(zhuǎn)化為結(jié)構(gòu)化數(shù)據(jù),例如文章的標(biāo)題,摘要等,如果是商品點(diǎn)評類消息也需要提取有效的點(diǎn)評。 結(jié)構(gòu)化數(shù)據(jù)的輿情分析:當(dāng)各類原始輸出變成結(jié)構(gòu)化的數(shù)據(jù)后,我們需要有一個實(shí)時的計算產(chǎn)品把各類輸出做合理的分類,進(jìn)一步對分類后的內(nèi)容進(jìn)行情感打標(biāo)。根據(jù)業(yè)務(wù)的需求這里可能會產(chǎn)生不同的輸出,例如品牌當(dāng)下是否有熱點(diǎn)話題,輿情影響力分析,轉(zhuǎn)播路徑分析,參與用戶統(tǒng)計和畫像,輿論情感分析或者是否有重大預(yù)警。 輿情分析系統(tǒng)中間和結(jié)果數(shù)據(jù)的存儲,交互分析查詢:從網(wǎng)頁原始數(shù)據(jù)清洗到最終的輿情報表這中間會產(chǎn)生很多類型的數(shù)據(jù)。這些數(shù)據(jù)有的會提供給數(shù)據(jù)分析同學(xué)進(jìn)行輿情分析系統(tǒng)的調(diào)優(yōu),有的數(shù)據(jù)會提供給業(yè)務(wù)部門根據(jù)輿情結(jié)果進(jìn)行決策。這些查詢可能會很靈活,需要我們的存儲系統(tǒng)具備全文檢索,多字段組合靈活的交互分析能力。 重大輿情事件的實(shí)時預(yù)警:對于輿情的結(jié)果除了正常的搜索和展示需求以外,當(dāng)有重大事件出現(xiàn)我們需要能做到實(shí)時的預(yù)警。
我們計劃分兩篇介紹完整的輿情新架構(gòu),第一篇主要是提供架構(gòu)設(shè)計,會先介紹時下主流的大數(shù)據(jù)計算架構(gòu),并分析一些優(yōu)缺點(diǎn),然后引入輿情大數(shù)據(jù)架構(gòu)。第二篇會有完整的數(shù)據(jù)庫表設(shè)計和部分示例代碼。大家敬請期待。
結(jié)合文章開頭對輿情系統(tǒng)的描述,海量大數(shù)據(jù)輿情分析系統(tǒng)流程圖大體如下:
圖 1 輿情系統(tǒng)業(yè)務(wù)流程 原始網(wǎng)頁存儲庫,這個庫需要能支持海量數(shù)據(jù),低成本,低延時寫入。網(wǎng)頁數(shù)據(jù)寫入后,要做實(shí)時結(jié)構(gòu)化提取,提取出來的數(shù)據(jù)再進(jìn)行降噪,分詞,圖片 ocr 處理等。對分詞文本,圖片進(jìn)行情感識別產(chǎn)生輿情數(shù)據(jù)結(jié)果集。傳統(tǒng)的離線全量計算很難滿足輿情系統(tǒng)的時效性需求。 計算引擎在做數(shù)據(jù)處理時,可能還需要從存儲庫中獲取一些元數(shù)據(jù),例如用戶信息,情感詞元數(shù)據(jù)信息等。 除了實(shí)時的計算鏈路,對存量數(shù)據(jù)定期要做一些聚類,優(yōu)化我們的情感詞識別庫,或者上游根據(jù)業(yè)務(wù)需要觸發(fā)情感處理規(guī)則更新,根據(jù)新的情感打標(biāo)庫對存量數(shù)據(jù)做一次輿情計算。 輿情的結(jié)果數(shù)據(jù)集有不同類的使用需求。對于重大輿情,需要做實(shí)時的預(yù)警。完整的輿情結(jié)果數(shù)據(jù)展示層需要支持全文檢索,靈活的屬性字段組合查詢。業(yè)務(wù)上可能根據(jù)屬性字段中的置信度,輿情時間,或者關(guān)鍵詞組合進(jìn)行分析。
根據(jù)前面的介紹,輿情大數(shù)據(jù)分析系統(tǒng)需要兩類計算,一類是實(shí)時計算包括海量網(wǎng)頁內(nèi)容實(shí)時抽取,情感詞分析并進(jìn)行網(wǎng)頁輿情結(jié)果存儲。另一類是離線計算,系統(tǒng)需要對歷史數(shù)據(jù)進(jìn)行回溯,結(jié)合人工標(biāo)注等方式優(yōu)化情感詞庫,對一些實(shí)時計算的結(jié)果進(jìn)行矯正等。所以在系統(tǒng)設(shè)計上,需要選擇一套既可以做實(shí)時計算又能做批量離線計算的系統(tǒng)。在開源大數(shù)據(jù)解決方案中,Lambda 架構(gòu)恰好可以滿足這些需求,下面我們來介紹下 Lambda 的架構(gòu)。
Lambda 架構(gòu) (wiki)
圖 2 Lambda 架構(gòu)圖