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