李佳倩 項來易 金才波 董心媛 何坤榮 蘇瑞
摘要:近年來,網(wǎng)絡(luò)技術(shù)的蓬勃發(fā)展引發(fā)了互聯(lián)網(wǎng)數(shù)據(jù)的爆炸式增長,以新聞?wù)军c、微博等為代表的網(wǎng)絡(luò)媒體時時刻刻在產(chǎn)生大量不規(guī)則、異構(gòu)的新聞輿情數(shù)據(jù)。該文在分析互聯(lián)網(wǎng)新聞輿情數(shù)據(jù)特點的基礎(chǔ)上,提出了支持大規(guī)?;ヂ?lián)網(wǎng)新聞輿情數(shù)據(jù)ETL過程的解決方案,實現(xiàn)對多源、非結(jié)構(gòu)化的新聞輿情數(shù)據(jù)的格式化存儲。
關(guān)鍵詞:新聞輿情數(shù)據(jù);ETL過程
中圖分類號:TP3 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2019)05-0011-02
1 引言
隨著網(wǎng)絡(luò)技術(shù)的迅猛發(fā)展,網(wǎng)絡(luò)新聞的發(fā)布渠道逐漸呈現(xiàn)多元化的態(tài)勢,如新聞評論、新聞跟帖、博客、微博、論壇等。這些強交互性、范圍廣泛的網(wǎng)絡(luò)傳播方式使得傳播者和受傳者間的關(guān)系發(fā)生了翻天覆地的變化,顛覆了傳統(tǒng)媒體傳播新聞的方式,網(wǎng)絡(luò)新聞輿情向人們的生活、社會經(jīng)濟(jì)、國家政治等方面滲透,網(wǎng)絡(luò)參與者可以自由地獲取信息,也可以就某些事件發(fā)表看法和意見[1][2]。目前,網(wǎng)絡(luò)新聞輿論已經(jīng)成為社會輿論的重要表現(xiàn)形式之一。
但是,與傳統(tǒng)媒體的出版和傳播流程不同,網(wǎng)絡(luò)處在弱約束環(huán)境中,輿情數(shù)據(jù)來源復(fù)雜、數(shù)據(jù)不規(guī)則,加之當(dāng)前對傳播內(nèi)容監(jiān)管機制的不完善,網(wǎng)絡(luò)新聞輿情數(shù)據(jù)中往往也充斥著負(fù)面信息,如迷信、黃賭毒等,這嚴(yán)重威脅到了社會公共安全。因此,必須加強對網(wǎng)絡(luò)輿情的監(jiān)控,在新聞輿情采集的基礎(chǔ)上,首先要將不規(guī)則網(wǎng)絡(luò)新聞數(shù)據(jù)進(jìn)行格式化處理,即新聞輿情數(shù)據(jù)ETL(Extract、Transform、Load,抽取、轉(zhuǎn)換、加載)[3]。
2 互聯(lián)網(wǎng)新聞數(shù)據(jù)ETL需求分析
2.1 數(shù)據(jù)分析及其預(yù)處理
為了有效降低網(wǎng)絡(luò)輿情數(shù)據(jù)分析的復(fù)雜度,需要根據(jù)輿情數(shù)據(jù)的不同來源對其進(jìn)行預(yù)處理。不同方面的輿情數(shù)據(jù)各自的特點,比如新聞評論數(shù)據(jù)中的新聞標(biāo)題、發(fā)表單位等,論壇數(shù)據(jù)中有回帖內(nèi)容、回帖時間等,需要針對不同的數(shù)據(jù)進(jìn)行個性化處理。而對類似的新聞數(shù)據(jù),由于數(shù)據(jù)來源的不同,數(shù)據(jù)的格式也不盡相同,比如不同來源的貼吧輿情數(shù)據(jù),其“貼吧發(fā)布時間”數(shù)據(jù)字段格式可能有多種形式,如“yyyy/MM/dd”、“yyyy-MM-dd”、“yyyy-MM”等,這就需要根據(jù)目標(biāo)數(shù)據(jù)的需求對其進(jìn)行格式化統(tǒng)一處理。
2.2 ETL需求分析
新聞數(shù)據(jù)的ETL過程的需求分析首先給出目標(biāo)數(shù)據(jù)格式化精確的描述,在新聞數(shù)據(jù)ETL過程中逐步實現(xiàn)既定的設(shè)計目標(biāo)[4]??偟膩碚f,新聞數(shù)據(jù)ETL需求分析主要包含如下幾個方面:
1)新聞輿情數(shù)據(jù)可能因抓取數(shù)據(jù)失敗或者本身沒有內(nèi)容而成為空數(shù)據(jù),所以需要設(shè)計一定的規(guī)則來處理這些空數(shù)據(jù);
2)數(shù)據(jù)源中存在大量重復(fù)或無效的數(shù)據(jù),需要通過設(shè)置相應(yīng)條件來清洗這些數(shù)據(jù);
3)為了提高數(shù)據(jù)質(zhì)量,刪除非必要的字段;
4)數(shù)據(jù)源字段中的具體數(shù)據(jù)格式不規(guī)整,需要對不符合要求的數(shù)據(jù)進(jìn)行裁剪或者替換,使數(shù)據(jù)規(guī)范化;
5)數(shù)據(jù)源中數(shù)據(jù)的格式存在差異,需要以目標(biāo)數(shù)據(jù)庫表的數(shù)據(jù)格式為轉(zhuǎn)換目標(biāo),轉(zhuǎn)換這些數(shù)據(jù)的數(shù)據(jù)格式;
6)源數(shù)據(jù)的字段名稱與目標(biāo)數(shù)據(jù)庫表的字段名稱不統(tǒng)一,需要進(jìn)行格式化處理;
7)為保障ETL過程的魯棒性,需要設(shè)置錯誤識別與檢測機制。
3 互聯(lián)網(wǎng)新聞數(shù)據(jù)ETL設(shè)計與實現(xiàn)
針對大規(guī)模新聞輿情數(shù)據(jù),ETL過程主要難點在于對多源異構(gòu)數(shù)據(jù)的清洗和轉(zhuǎn)換。而不同領(lǐng)域的數(shù)據(jù)有著各自的特點,難以以通用的處理方法對其進(jìn)行統(tǒng)一處理。所以,為了保證數(shù)據(jù)的質(zhì)量,通常研究是針對一個專門領(lǐng)域的數(shù)據(jù)集,或者是針對不同性質(zhì)的數(shù)據(jù)進(jìn)行通用處理[5]。
具體來講,ETL過程主要通常包括數(shù)據(jù)抽取、轉(zhuǎn)換和裝載這三個核心步驟,其中,數(shù)據(jù)轉(zhuǎn)換又可細(xì)分為清洗和轉(zhuǎn)換兩個模塊,ETL過程如圖1所示。首先,根據(jù)數(shù)據(jù)源的不同,抽取數(shù)據(jù)庫或者文件數(shù)據(jù),再通過清洗規(guī)則和轉(zhuǎn)換規(guī)則實現(xiàn)對數(shù)據(jù)的清洗轉(zhuǎn)換,轉(zhuǎn)化為與目標(biāo)數(shù)據(jù)匹配的數(shù)據(jù),并裝載到指定數(shù)據(jù)庫中,同時,把異常數(shù)據(jù)儲存到指定文件或者數(shù)據(jù)庫中。
ETL過程主要實現(xiàn)多源、異構(gòu)數(shù)據(jù)的整合,抽取源數(shù)據(jù)到中間層進(jìn)行數(shù)據(jù)ETL處理,再把處理完畢的數(shù)據(jù)存入目標(biāo)數(shù)據(jù)庫中。支持大規(guī)模互聯(lián)網(wǎng)新聞數(shù)據(jù)ETL系統(tǒng)架構(gòu)如圖2所示。
本文網(wǎng)絡(luò)輿情ETL數(shù)據(jù)處理以網(wǎng)易新聞和新浪新聞為例。為了便于管理和控制整個ETL過程,且使其能自動化地完成數(shù)據(jù)處理操作,ETL過程作業(yè)包含開始、2個轉(zhuǎn)換、成功、中止運行這5個節(jié)點。其中,2個轉(zhuǎn)換名為網(wǎng)易新聞處理、新浪新聞處理,分別對應(yīng)2個數(shù)據(jù)源的數(shù)據(jù)操作;中止作業(yè)節(jié)點是為了防止處理過程錯誤而設(shè)置的,當(dāng)三個轉(zhuǎn)換中某個執(zhí)行失敗時,整個ETL過程會中止;成功節(jié)點是為了判斷整個ETL過程是否執(zhí)行完整,當(dāng)兩個轉(zhuǎn)換都執(zhí)行成功時,成功節(jié)點才會執(zhí)行。網(wǎng)絡(luò)輿情數(shù)據(jù)ETL過程的流程圖如圖3所示:
數(shù)據(jù)ETL處理的清洗轉(zhuǎn)換規(guī)則設(shè)計主要包括如下幾個方面:
1)重復(fù)數(shù)據(jù)的處理:設(shè)置數(shù)據(jù)是否重復(fù)的判斷條件,如果數(shù)據(jù)重復(fù),把該數(shù)據(jù)舍棄,反之,則保留該數(shù)據(jù);
2)無效數(shù)據(jù)的處理:據(jù)實際需求判斷哪些字段是關(guān)鍵字段,再判斷該字段的數(shù)據(jù)是否為空,刪除所有的空數(shù)據(jù);
3)空數(shù)據(jù)的處理:對無效數(shù)據(jù)進(jìn)行刪除后,數(shù)據(jù)源中還存在許多空數(shù)據(jù),要根據(jù)每個字段的特點設(shè)定一定的規(guī)則對這些空數(shù)據(jù)進(jìn)行替換,保證數(shù)據(jù)的完整性;
4)數(shù)據(jù)字段的刪除,在源數(shù)據(jù)中,若存在無意義的字段,要使用Kettle的相關(guān)組件,在數(shù)據(jù)輸出前對字段進(jìn)行篩選,保留需要的字段;
5)數(shù)據(jù)的裁剪和替換,數(shù)據(jù)源中,部分字段的數(shù)據(jù)存在錯誤。有些數(shù)據(jù)中摻雜著其他字段的數(shù)據(jù),要通過裁剪,去掉不屬于本字段的數(shù)據(jù),使數(shù)據(jù)規(guī)范化。
此外,為了增強數(shù)據(jù)ETL過程的穩(wěn)定性,需要對錯誤進(jìn)行輸出,即定義部分組件的錯誤處理步驟。
4 實驗結(jié)果與分析
使用爬蟲程序分別從網(wǎng)易新聞、新浪新聞上爬取新聞數(shù)據(jù)信息,包括新聞的標(biāo)題、來源、發(fā)布時間、參與人數(shù)、評論人數(shù)、評論人、評論內(nèi)容、評論時間、評論點贊人數(shù)等字段,形成了2個名為網(wǎng)易新聞、新浪新聞形式的數(shù)據(jù)源,具體如表1所列。
Kettle轉(zhuǎn)換平臺中處理器采用的是Intel i5 4200U,1.6GHz,8G內(nèi)存,硬盤轉(zhuǎn)速7200RPM,接口是SATA2.0,軟件平臺是Windows 10 操作系統(tǒng),Kettle 7.1版本。使用Kettle對表1中的數(shù)據(jù)進(jìn)行格式化轉(zhuǎn)換,時間開銷如表2所示。
5 結(jié)束語
網(wǎng)絡(luò)新聞輿情數(shù)據(jù)來源范圍廣、數(shù)據(jù)格式不統(tǒng)一等,這個給輿情數(shù)據(jù)的處理帶來的挑戰(zhàn)。本文首先給出了輿情數(shù)據(jù)預(yù)處理的方法,并給出了網(wǎng)絡(luò)輿情數(shù)據(jù)ETL過程的設(shè)計方法,并以Kettle開源軟件為基礎(chǔ),設(shè)計了面向互聯(lián)網(wǎng)新聞輿情數(shù)據(jù)的ETL過程。
參考文獻(xiàn):
[1]唐勇.互聯(lián)網(wǎng)輿情監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn)[D].北京郵電大學(xué), 2013.
[2]郝文江,武捷.互聯(lián)網(wǎng)輿情監(jiān)管與應(yīng)對技術(shù)探究[J].信息網(wǎng)絡(luò)安全, 2012(3): 1-4.
[3]崔有文,周金海.基于KETTLE的數(shù)據(jù)集成研究[J].計算機技術(shù)與發(fā)展, 2015, 25(4): 153-157.
[4]韓強飛,張國晨,張發(fā)光.基于Kettle構(gòu)建企業(yè)數(shù)據(jù)倉庫[J].信息系統(tǒng)工程, 2017(2): 108.
[5]程子傲,董博,趙悅,等.基于Kettle的數(shù)據(jù)交換平臺研究與實踐[J].遼寧大學(xué)學(xué)報:自然科學(xué)版, 2018, 45(01): 13-18.
【通聯(lián)編輯:代影】