本發(fā)明屬于網(wǎng)絡(luò)數(shù)據(jù)分析領(lǐng)域,涉及一種基于暗網(wǎng)網(wǎng)站綜合特征的網(wǎng)站分類方法。
背景技術(shù):
暗網(wǎng)(darknet)是指使用非常規(guī)協(xié)議和端口以及可信節(jié)點(diǎn)進(jìn)行連接的私有網(wǎng)絡(luò),暗網(wǎng)的數(shù)據(jù)傳輸是匿名進(jìn)行的(維基百科)。當(dāng)今典型的暗網(wǎng)技術(shù)有tor、i2p、freenet、oneswam等。
暗網(wǎng)最大的特點(diǎn)是實(shí)現(xiàn)了匿名的數(shù)據(jù)傳輸來進(jìn)行隱私保護(hù),正是由于它的匿名性,暗網(wǎng)常常別用于傳遞各種敏感信息。比如,暗網(wǎng)上含有大量的極端主義,毒品,槍支交易等信息。同時(shí),暗網(wǎng)也是各種黑客相關(guān)信息的聚集地,暗網(wǎng)中,存在很多黑客論壇,黑客市場(chǎng),上面討論、交易著安全漏洞、用戶資料、攻擊工具等黑客信息。
由于暗網(wǎng)的域名是一串無明顯意義的字符串,如,某暗網(wǎng)網(wǎng)站的域名為http://sbh3znmgscj3yzgm.onion/,所以很難對(duì)暗網(wǎng)網(wǎng)站做統(tǒng)一管理。因此,對(duì)于暗網(wǎng)網(wǎng)站分類很有意義,有助于我們更好理解暗網(wǎng)網(wǎng)站,方便對(duì)暗網(wǎng)的查詢、檢索。
當(dāng)前暗網(wǎng)分類多借助于人工維護(hù),人工維護(hù)可以保證分類的準(zhǔn)確性,但是隨著暗網(wǎng)網(wǎng)站數(shù)量增加,人工維護(hù)的成本也會(huì)大大增加,難以適應(yīng)用戶對(duì)暗網(wǎng)網(wǎng)站分類的需求。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明針對(duì)暗網(wǎng)特性,提出一種基于暗網(wǎng)網(wǎng)站綜合特征的暗網(wǎng)網(wǎng)站分類算法,可以用于暗網(wǎng)網(wǎng)站的自動(dòng)分類?;诒疚姆椒▽?duì)暗網(wǎng)網(wǎng)站分類后,可以構(gòu)建如hao123等的暗網(wǎng)網(wǎng)站導(dǎo)航。將暗網(wǎng)網(wǎng)站分門別類,便于對(duì)各類的網(wǎng)站進(jìn)行查詢和檢索。也便于對(duì)某一類的網(wǎng)站(如論壇)進(jìn)行專門的監(jiān)控,達(dá)到輿情監(jiān)控的目的。
本發(fā)明的技術(shù)關(guān)鍵點(diǎn)在于:
1、利用smote算法解決不同類別暗網(wǎng)網(wǎng)站數(shù)量分布不均衡;
2、不僅考慮網(wǎng)站的文本,同時(shí)考慮網(wǎng)站的結(jié)構(gòu)特征,提高預(yù)測(cè)準(zhǔn)確率;
3、采用線性模型(lr)、非線性模型(svm)、集成學(xué)習(xí)模型(rf)分別訓(xùn)練,三種模型相差較大,因此可以學(xué)習(xí)到樣本不同方面的特性,最后綜合三種模型投票產(chǎn)生結(jié)果,預(yù)測(cè)準(zhǔn)確率會(huì)更高。
本發(fā)明為了減少人工標(biāo)注成本,本發(fā)明的標(biāo)注通過爬取暗網(wǎng)中一些已經(jīng)有的導(dǎo)航網(wǎng)站(已經(jīng)有了類別的標(biāo)注)加人工審核的方式進(jìn)行。
傳統(tǒng)的網(wǎng)站分類通常僅僅采用文本特征,本發(fā)明抽取了網(wǎng)站的文本特征和網(wǎng)站網(wǎng)頁的結(jié)構(gòu)特征,使分類效果更好。
暗網(wǎng)網(wǎng)站具有數(shù)量分布不均衡的特點(diǎn),比如,商務(wù)類網(wǎng)站,如網(wǎng)上商店、服務(wù)售賣等網(wǎng)站的數(shù)量很多,而一些類別的網(wǎng)站,比如搜索引擎網(wǎng)站、wiki類型網(wǎng)站、社交網(wǎng)站等數(shù)量就要相對(duì)少很多。因此,從算法訓(xùn)練集會(huì)出現(xiàn)分布不均衡,本發(fā)明利用smote算法(一種過抽樣算法)來擴(kuò)充樣本數(shù)量不足的網(wǎng)站類型。
文本特征維度較高,高維度的特征本發(fā)明采用svm(高斯核)進(jìn)行分類,由于高斯核是一種非線性模型,因此本發(fā)明還使用了線性模型logstic回歸進(jìn)行分類。除此之外,本發(fā)明采用chi2(卡方值)對(duì)文本特征進(jìn)行提取,產(chǎn)生低維度特征,低維度特征采用randomforest進(jìn)行分類。最后三個(gè)模型利用“投票”機(jī)制產(chǎn)生最后的分類結(jié)果。
本發(fā)明的具體方案如下:
1)爬取帶標(biāo)注的數(shù)據(jù)。選擇一個(gè)暗網(wǎng)導(dǎo)航網(wǎng)站進(jìn)行爬取,爬蟲只爬取深度(首頁的深度為0)小于等于2的頁面。因?yàn)榫W(wǎng)站的頂層頁面往往是網(wǎng)站的核心內(nèi)容。對(duì)于鑒別網(wǎng)站類型更加有幫助,同時(shí),這樣也可以大大減少爬取的網(wǎng)站頁面數(shù)。對(duì)于爬取的數(shù)據(jù)進(jìn)行人工審核,剔除那些標(biāo)注不正確的樣本。
2)提取網(wǎng)站的文本特征。首先對(duì)網(wǎng)頁去標(biāo)簽化,只剩文本信息,然后對(duì)文本信息進(jìn)行分詞,基于這些分詞利用word-bag模型構(gòu)建詞的空間向量,計(jì)算詞的tf-idf值作為詞的權(quán)重。對(duì)于網(wǎng)頁中的帶keyword、description、title標(biāo)簽的詞著重考慮,賦予更大的權(quán)重,記其權(quán)重系數(shù)為w1,其他詞的權(quán)重系數(shù)為w2,則w1>w2,w1+w1=1。將乘以權(quán)重后的詞的空間向量作為網(wǎng)站的文本特征。
3)提取網(wǎng)站的結(jié)構(gòu)特征。首先提取網(wǎng)頁中的所有標(biāo)簽,將每一個(gè)標(biāo)簽當(dāng)做一個(gè)詞,基于這些標(biāo)簽,利用word-bag模型構(gòu)建標(biāo)簽的空間向量,計(jì)算每個(gè)tag(標(biāo)簽)的tf-idf值作為每個(gè)tag的權(quán)重,將乘以權(quán)重后的標(biāo)簽的空間向量作為網(wǎng)站的結(jié)構(gòu)特征。
4)對(duì)于樣本不足的種類,使用smote算法進(jìn)行樣本數(shù)量擴(kuò)充。具體步驟為,將數(shù)量不足種類的所有樣本的網(wǎng)站文本特征空間向量和網(wǎng)站的結(jié)構(gòu)特征空間向量作為輸入,利用smote算法對(duì)向量進(jìn)行擴(kuò)充,擴(kuò)充后,此類樣本的空間向量數(shù)將會(huì)變多。擴(kuò)充前,首先計(jì)算每種樣本數(shù)量,若樣本數(shù)量低于閾值,則使用smote算法擴(kuò)充樣本數(shù)量。
5)將網(wǎng)站的文本特征和結(jié)構(gòu)特征結(jié)合在一起作為該網(wǎng)站的綜合特征,具體做法為,將文本特征向量和結(jié)構(gòu)特征向量首尾相連形成新的向量(若文本特征向量有m維,結(jié)構(gòu)特征向量有n維,結(jié)合后就有m+n維),放入svm進(jìn)行訓(xùn)練,得到svm模型。將上述特征放入logstic分類器進(jìn)行訓(xùn)練,得到lr模型。利用chi2(卡方)值對(duì)文本特征進(jìn)行特征選擇,產(chǎn)生低維特征,將低維特征和結(jié)構(gòu)特征結(jié)合在一起放入randomforest進(jìn)行訓(xùn)練,得到rf模型。
6)最后的結(jié)果由投票機(jī)制產(chǎn)生,如果有兩個(gè)類別的投票數(shù)相同,則通過分類器產(chǎn)生的置信概率(分類器的predict_proba方法可以得到每種類別的置信概率)判斷,置信概率高的為最后的結(jié)果。
與現(xiàn)有技術(shù)相比,本發(fā)明的積極效果為:
1、算法不需大量的帶標(biāo)簽的暗網(wǎng)網(wǎng)站訓(xùn)練樣本。
2、可以自動(dòng)的進(jìn)行暗網(wǎng)網(wǎng)站分類,極大的降低了人工分類的成本。
3、具有較高的分類準(zhǔn)確率。
附圖說明
圖1是暗網(wǎng)網(wǎng)站爬取的流程圖;
圖2是文本特征提取的流程圖;
圖3是暗網(wǎng)網(wǎng)站分類模型構(gòu)建的流程圖。
具體實(shí)施方式
下面結(jié)合附圖對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)描述。
本發(fā)明的處理方法為:
第一步,爬取帶標(biāo)注的網(wǎng)站(如圖1所示):
(一)用scrapy對(duì)帶標(biāo)注的網(wǎng)站進(jìn)行爬取,爬取時(shí)檢查當(dāng)前爬取深度,只爬取深度小于等于2的網(wǎng)頁。
(二)人工審核標(biāo)簽,去除標(biāo)注不正確的樣本。
第二步:獲取網(wǎng)站的綜合特征(如圖2所示):
(一)利用word-bag模型構(gòu)建網(wǎng)站的詞的空間向量模型,利用python的scikit-learn庫中的tfidfvectorizer類計(jì)算詞的tf-idf值。
(二)提取keyword(htmlmeta標(biāo)簽中的關(guān)鍵詞)、description(htmlmeta標(biāo)簽中的網(wǎng)頁描述信息)、title(htm標(biāo)題)標(biāo)簽中的詞,其權(quán)重為0.6,其他詞權(quán)重為0.4,基于第一步,計(jì)算乘以詞權(quán)重后的詞的空間向量,得到文本特征。
(三)提取網(wǎng)站的html標(biāo)簽,利用word-bag模型構(gòu)建網(wǎng)站的標(biāo)簽的空間向量模型,用python的scikit-learn庫中的tfidfvectorizer類計(jì)算標(biāo)簽的tf-idf值,將標(biāo)簽的空間向量作為結(jié)構(gòu)特征。
(四)計(jì)算樣本數(shù)量,若樣本數(shù)量低于100,則使用smote算法擴(kuò)充樣本數(shù)量至,100,若樣本數(shù)量大于200,使用隨機(jī)抽樣讓樣本數(shù)量降至200。
第三步:構(gòu)建分類模型(如圖3所示)。
(一)將文本特征和結(jié)構(gòu)特征使用svm(kernel=’rbf’)訓(xùn)練得到svm模型
(二)將文本特征和結(jié)構(gòu)特征使用logstic回歸訓(xùn)練得到lr模型
(三)使用scikit-learn的selectkbest函數(shù),利用卡方計(jì)算對(duì)文本特征降維,降維后的特征和結(jié)構(gòu)特征一起用randomforest訓(xùn)練,得到rf模型。
(四)svm,lr,rf投票產(chǎn)生結(jié)果。
以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案而非對(duì)其進(jìn)行限制,本領(lǐng)域的普通技術(shù)人員可以對(duì)本發(fā)明的技術(shù)方案進(jìn)行修改或者同等替換,而不脫離本發(fā)明的精神和范圍,本發(fā)明的保護(hù)范圍應(yīng)以權(quán)利要求所述為準(zhǔn)。