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