晁緒耀,王穎穎
(1.鄭州職業(yè)技術(shù)學(xué)院,河南 鄭州450007;2.鄭州升達(dá)經(jīng)貿(mào)管理學(xué)院,河南 新鄭450001)
社交網(wǎng)絡(luò)已經(jīng)成為人們?nèi)粘I畹闹匾M成部分,是人們傳播信息、交流互動的重要途徑。用戶在社交網(wǎng)絡(luò)上活動時,會通過文本信息、轉(zhuǎn)發(fā)信息、評論等行為產(chǎn)生大量數(shù)據(jù)信息,分析、挖掘這些大數(shù)據(jù)具有重要意義。目前在世界范圍內(nèi)Twitter,F(xiàn)acebook是用戶最為活躍的社交網(wǎng)絡(luò)平臺,因此本研究針對這兩個平臺提出一種分析其數(shù)據(jù)信息的系統(tǒng)。本系統(tǒng)的主要需求包括以下3個方面。
一是數(shù)據(jù)采集與融合。大數(shù)據(jù)分析必須以數(shù)據(jù)采集與融合為前提,可以通過種子URL實時采集或通過設(shè)定關(guān)鍵詞實時采集,利用網(wǎng)絡(luò)爬蟲從Twitter,F(xiàn)acebook中采集數(shù)據(jù)信息。雖然社交網(wǎng)絡(luò)平臺的功能結(jié)構(gòu)不同,界面樣式也千差萬別,但是其都包含文本信息、評論信息、轉(zhuǎn)發(fā)信息、互動關(guān)系信息等,系統(tǒng)可以從中抽取存在共性的數(shù)據(jù)進(jìn)行分析、融合,再以結(jié)構(gòu)化的方式存儲于數(shù)據(jù)庫[1]。
二是信息檢索需求分析。信息檢索方式主要有兩種:一種是新任務(wù)檢索,即不保留之前的檢索數(shù)據(jù),開啟一個新的檢索任務(wù);另外一種是當(dāng)前任務(wù)檢索,在開啟一個新任務(wù)檢索時,上次任務(wù)檢索的數(shù)據(jù)也保留起來,兩次檢索得到的數(shù)據(jù)求交集或并集,最終實現(xiàn)多任務(wù)數(shù)據(jù)融合。兩種檢索方式都可以實現(xiàn)以下功能:關(guān)鍵詞檢索,即輸入關(guān)鍵詞即可獲取用戶信息、關(guān)系信息等相關(guān)結(jié)果;排除關(guān)鍵詞檢索,即輸入需要排除的關(guān)鍵詞后搜索結(jié)果中不包含關(guān)鍵詞相關(guān)的信息;人物檢索,即輸入人物相關(guān)的關(guān)鍵詞即可檢索到相關(guān)信息;時間檢索,可以實現(xiàn)在特定時間范圍內(nèi)的時間檢索;來源檢索,可以檢索到信息的來源數(shù)據(jù)等。
三是數(shù)據(jù)分析與可視化需求。數(shù)據(jù)分析模塊主要對社交網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行挖掘、分析,其也是整個系統(tǒng)的核心部分,主要功能包括內(nèi)容分析、行為分析、用戶畫像、發(fā)現(xiàn)熱點話題等。其中內(nèi)容分析中的內(nèi)容包括用戶發(fā)布、回復(fù)及轉(zhuǎn)發(fā)的相關(guān)信息,除了顯性的信息數(shù)據(jù)外,系統(tǒng)還可以對信息中隱含的內(nèi)容做出情感分析,將用戶感興趣的信息標(biāo)記出來;行為分析是指分析用戶在社交網(wǎng)絡(luò)平臺上的所有操作行為,將用戶的操作過程完整地記錄下來,將用戶的行為軌跡完整地構(gòu)建、預(yù)測出來;用戶畫像是將用戶信息進(jìn)行標(biāo)簽化處理,用標(biāo)簽將用戶的行為、觀點、屬性等個性化特征描述出來,并對用戶個性化的觀點、關(guān)注的話題進(jìn)行總結(jié)、分析;發(fā)現(xiàn)熱點話題主要是對用戶的帖子數(shù)據(jù)進(jìn)行聚類分析,發(fā)現(xiàn)用戶關(guān)注的熱點話題[2]。
根據(jù)上述需求可知,該系統(tǒng)需要實現(xiàn)數(shù)據(jù)采集、數(shù)據(jù)預(yù)處理與融合、信息檢索、數(shù)據(jù)分析與可視化功能,其中核心功能為數(shù)據(jù)分析,下文詳細(xì)介紹系統(tǒng)各功能設(shè)計開發(fā)過程。
數(shù)據(jù)采集是整個系統(tǒng)完成數(shù)據(jù)分析的基礎(chǔ)模塊,傳統(tǒng)數(shù)據(jù)分析過程中多采用社交網(wǎng)絡(luò)開放的應(yīng)用程序接口(Application Programming Interface,API)獲取數(shù)據(jù),但卻易受到限制。利用網(wǎng)絡(luò)爬蟲技術(shù)采集數(shù)據(jù),可以不受數(shù)據(jù)限制。網(wǎng)絡(luò)爬蟲可以根據(jù)特定的規(guī)則實現(xiàn)網(wǎng)頁內(nèi)容程序或腳本的自動采集,通過網(wǎng)絡(luò)爬蟲可以將Twitter,F(xiàn)acebook上的網(wǎng)頁下載到本地,再抽取數(shù)據(jù)信息。具體采集過程如下。
第一步,信息準(zhǔn)備。由于系統(tǒng)爬取的社交網(wǎng)絡(luò)平臺需要登錄才能正常訪問、下載網(wǎng)頁,因此需要準(zhǔn)備社交網(wǎng)絡(luò)平臺賬號、密碼等信息,而種子統(tǒng)一資源定位符(Uniform Resource Locator,URL)、爬蟲數(shù)據(jù)存放目錄等則需填寫于爬蟲配置文件中。第二步,使用代理服務(wù)器。使用代理服務(wù)器的主要目的是通過IP欺騙的形式抓取網(wǎng)站信息,因為固定的IP在短時間內(nèi)頻繁訪問一個網(wǎng)站,服務(wù)器會判斷出這個IP是機器爬蟲而將其屏蔽,影響到正常抓取數(shù)據(jù)。具體設(shè)計時要將代理服務(wù)器的賬號、密碼填寫在爬蟲屬性文件中。第三步,構(gòu)造登錄請求,獲取Cookie。服務(wù)器會在用戶第一次訪問時將用戶狀態(tài)記錄下來并向客戶端發(fā)送一小段文本信息,即Cookie,保存這個Cookie,服務(wù)器會據(jù)此判斷用戶的登錄狀態(tài),這就無需用戶頻繁登錄網(wǎng)站。第四步,發(fā)送頁面請求。本系統(tǒng)采取根據(jù)URL爬取及根據(jù)關(guān)鍵字爬取兩種方式采集社交網(wǎng)絡(luò)數(shù)據(jù),這兩種方式最終都是通過獲取網(wǎng)頁的URL發(fā)送頁面請求。第五步,解析超文本標(biāo)記語言(Hyper Text Markup Language,HTML)頁面,并存儲數(shù)據(jù)。應(yīng)用WebCollector集成的Jsoup對HTML頁面進(jìn)行解析,抽取系統(tǒng)需要的文本數(shù)據(jù)存儲于json格式文件中,注意在爬蟲配置文件中要對json格式文件的最大行數(shù)進(jìn)行設(shè)定,且單個文件只能存儲于固定行數(shù),以便于后續(xù)預(yù)處理。第六步,進(jìn)行下次爬取。抽取需要爬取的URL后要對其進(jìn)行判斷,如果是相對URL則要轉(zhuǎn)換為絕對URL,待爬取的URL加入待爬取隊列,網(wǎng)絡(luò)爬蟲再針對待爬取隊列中的URL進(jìn)行下一次爬取[3]。
在采集社交網(wǎng)絡(luò)平臺數(shù)據(jù)時,網(wǎng)絡(luò)爬蟲易受到噪聲干擾,從而采集到殘缺的、錯誤的、無關(guān)的數(shù)據(jù)信息,因此要針對這部分采集到的初始數(shù)據(jù)進(jìn)行預(yù)處理,具體步驟如下:第一步,對數(shù)據(jù)進(jìn)行定時掃描。本研究采用Java Timer定時器對存放json格式文件的文件夾進(jìn)行定時掃描,將文件名結(jié)尾為.success.json的文件轉(zhuǎn)換成.load.json結(jié)尾的文件格式。第二步,針對重復(fù)的、無價值的空數(shù)據(jù)等進(jìn)行預(yù)處理。剔除空格、HTML標(biāo)簽等信息;如果采集到空的文本數(shù)據(jù),系統(tǒng)也會自動剔除。第三步,針對多源異構(gòu)數(shù)據(jù)進(jìn)行融合,對其進(jìn)行匹配、整合。明確表示出帖子的屬性內(nèi)容、關(guān)系內(nèi)容、用戶屬性內(nèi)容等信息。第四步,將預(yù)處理好的數(shù)據(jù)存儲于數(shù)據(jù)庫中,并進(jìn)行同步索引構(gòu)建及內(nèi)容情感分析。
社交網(wǎng)絡(luò)平臺每天都會產(chǎn)生大量的數(shù)據(jù)信息,因此信息檢索是系統(tǒng)的重要組成部分。本研究采用全文搜索引擎Lucene構(gòu)建倒排索引進(jìn)行全文檢索,倒排索引是相對于正向索引而言,其通過構(gòu)建單詞-文檔矩陣,根據(jù)單詞快速獲取與其相關(guān)的文檔列表,實現(xiàn)從待檢索數(shù)據(jù)中提取信息并合理組織存儲結(jié)構(gòu),大大提高了檢索效率,該技術(shù)可提供創(chuàng)建索引、查詢索引等應(yīng)用程序接口。全文檢索最大的優(yōu)勢在于可以快速檢索海量數(shù)據(jù),并按照相關(guān)度對搜索結(jié)果進(jìn)行排序,以更好地滿足用戶需求。具體步驟如下:第一步,創(chuàng)建文檔對象。文檔包括帖子內(nèi)容、發(fā)布位置、時間、類型及相關(guān)鏈接等。第二步,分析文檔。主要分析帖子的文本內(nèi)容,注意將一些普通的、無意義的單詞去除,將余下的單詞進(jìn)行詞根化處理,并將大寫字母轉(zhuǎn)換為小寫。第三步,創(chuàng)建索引。將詞根化處理好的所有單詞構(gòu)建成一個詞典創(chuàng)建索引,根據(jù)字母順序排序,構(gòu)造單詞-文檔矩陣,通過詞語找到文檔,完成倒排索引的創(chuàng)建。第四步,索引查詢。索引查詢的過程就是信息搜索的過程,用戶可以通過查詢接口實現(xiàn)關(guān)鍵詞、人物信息、時間信息、來源、排除關(guān)鍵詞等相關(guān)檢索操作[4]。
數(shù)據(jù)分析與可視化模塊的主要功能包括內(nèi)容分析、行為分析、用戶畫像及發(fā)現(xiàn)熱點話題等。其中內(nèi)容分析主要采用卷積神經(jīng)網(wǎng)絡(luò)算法對文本信息進(jìn)行情感分類,其具有局部感知、權(quán)值共享的特點,可以大幅減少訓(xùn)練參數(shù)的數(shù)目,提高計算效率。卷積神經(jīng)網(wǎng)絡(luò)包括卷積層與池化層,其中若干卷積核組成了卷積層,可用于提取輸入的不同特征,池化層常用的有最大池化法和平均池化法,其主要作用是減少特征圖,將數(shù)據(jù)信息最顯著的特征提取出來。卷積層使用3種不同大小的卷積核提取文本不同粒度的特征,池化層對卷積層獲取的特征進(jìn)行池化處理,降低特征維度,保證提取到的特征具有最強表達(dá)能力[5]。
行為分析主要是對用戶的轉(zhuǎn)發(fā)、點贊、評論、發(fā)布帖子的行為進(jìn)行描述、統(tǒng)計、分析,將用戶的操作過程直觀地記錄下來,整理、統(tǒng)計用戶之間的關(guān)系,檢測其行為軌跡。用戶在訪問社交網(wǎng)絡(luò)平臺時,社交平臺啟用的地理定位功能可以獲取用戶的地理位置信息,根據(jù)用戶在平臺上的活動時間、地理位置信息,可以檢測到用戶的行為軌跡。當(dāng)然,社交平臺都會為用戶提供是否暴露地理位置的選擇,有些用戶可能不愿意暴露自己的地理位置,因此檢測用戶行為軌跡時要先判斷其地理位置信息的內(nèi)容,如果用戶的操作行為不包含地理位置信息,系統(tǒng)只會在時間軸上顯示帖子信息[6]。
用戶畫像主要對用戶信息進(jìn)行標(biāo)簽化處理,系統(tǒng)不僅會展示出用戶的頭像、昵稱、地點、簡介、個人網(wǎng)址等相關(guān)內(nèi)容,而且會對用戶發(fā)布的信息內(nèi)容進(jìn)行整合,抽取其中的關(guān)鍵詞,用以確定用戶所關(guān)注的話題及表達(dá)的觀點。用戶畫像的實現(xiàn)包括以下5個步驟:第一步,搜索用戶信息。包括昵稱、簡介及所處位置。第二步,搜索用戶所發(fā)布的信息。如果帖子數(shù)量過多,系統(tǒng)會抽取1 000條相關(guān)信息進(jìn)行分析。第三步,對用戶發(fā)布的信息進(jìn)行合并、預(yù)處理。主要是去除噪聲信息。第四步,抽取關(guān)鍵詞。將所有預(yù)處理好的數(shù)據(jù)視為一個大文檔,計算其單詞TF值,獲取單詞的IDF值,根據(jù)單詞的TF-IDF值進(jìn)行排序,數(shù)值較高的單詞即為抽取到的關(guān)鍵詞。第五步,展示用戶畫像。將用戶特征用相關(guān)信息及關(guān)鍵詞標(biāo)簽化構(gòu)建出用戶畫像展示在系統(tǒng)前端界面。
發(fā)現(xiàn)熱點話題的具體過程如下:第一步,對用戶發(fā)布的信息文本進(jìn)行預(yù)處理。同樣是分詞、去除噪聲信息等。第二步,對文本信息進(jìn)行向量化處理。其過程類似于關(guān)鍵詞抽取的過程,即計算單詞的TF-IDF值,將其作為單詞的詞向量連接起來,實現(xiàn)文本信息的向量化處理。第三步,文本聚類。采用K-Means聚類算法,先從文本信息數(shù)據(jù)中隨機選K個對象作為初始聚類中心,然后計算出數(shù)據(jù)對象到聚類中心的距離,再重新計算K個聚類中心作為新的聚類中心,重復(fù)上述操作,直至聚類中心不再變化。第四步,抽取關(guān)鍵詞。與用戶畫像功能中抽取關(guān)鍵詞的操作相同,即根據(jù)單詞的TF-IDF值進(jìn)行排序,權(quán)重大的單詞即為關(guān)鍵詞。第五步,展示熱點話題。系統(tǒng)前端會通過繪制聚類圖展示信息數(shù)據(jù),并展示熱點話題。
隨著社交網(wǎng)絡(luò)的普及與發(fā)展,社交網(wǎng)絡(luò)每天都會產(chǎn)生海量數(shù)據(jù),這些數(shù)據(jù)與人們的日常生活息息相關(guān),具有實用價值、經(jīng)濟價值及社會價值,對這些數(shù)據(jù)進(jìn)行分析具有重要意義。本研究提出的社交網(wǎng)絡(luò)數(shù)據(jù)分析系統(tǒng)實現(xiàn)了數(shù)據(jù)采集、數(shù)據(jù)預(yù)處理及融合、信息檢索、數(shù)據(jù)分析與可視化等功能。還有一些問題有待解決,例如用戶行為分析未針對用戶的行為進(jìn)行深層分析,后續(xù)需要通過深度學(xué)習(xí)技術(shù)對這些數(shù)據(jù)進(jìn)行挖掘。