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