一種全文數(shù)據(jù)的提取方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明實(shí)施例涉及移動(dòng)及大數(shù)據(jù)處理技術(shù)領(lǐng)域,尤其涉及一種全文數(shù)據(jù)的提取方法和裝置。
【背景技術(shù)】
[0002]互聯(lián)網(wǎng)的高速發(fā)展,使數(shù)據(jù)已經(jīng)滲透到每一個(gè)行業(yè)和業(yè)務(wù)職能領(lǐng)域,逐漸成為重要的生產(chǎn)因素,伴隨而來的是人類可以分析和處理的海量數(shù)據(jù)。在中型以上的城市如北京、上海,每天在網(wǎng)絡(luò)行為中產(chǎn)生的各類數(shù)據(jù)已經(jīng)超過PBS。例如手機(jī)應(yīng)用程序(Applicat1n,APP)每天會(huì)有數(shù)TB的提交數(shù)據(jù)產(chǎn)生,這些數(shù)據(jù)中含有經(jīng)瑋度、手機(jī)串號、用戶身份識別卡卡號、手機(jī)唯一識別碼等信息,而這些信息在安全監(jiān)管行業(yè)非常有用,因此海量提取這些信息成為一個(gè)重要且復(fù)雜的工作。
[0003]傳統(tǒng)的全文提取方法主要有兩種:一種是基于模板的提取方法,這種方法適用于特定網(wǎng)站的信息提取,但是對于多變的手機(jī)APP以及不同網(wǎng)站產(chǎn)生的數(shù)據(jù)來說,顯得無能為力;另一種是基于正則表達(dá)式提取全文內(nèi)容,這種方法適用于離線的、數(shù)據(jù)量較小的全文提取,一旦面對海量的APP提交數(shù)據(jù),效率比較低。因此這兩種方法在大數(shù)據(jù)量情況下,會(huì)耗費(fèi)大量人力,而且效率低下,在大數(shù)據(jù)量情況下已經(jīng)不能滿足需要。
【發(fā)明內(nèi)容】
[0004]本發(fā)明提供一種全文數(shù)據(jù)的提取方法和裝置,以實(shí)現(xiàn)提高海量數(shù)據(jù)的全文數(shù)據(jù)提取效率。
[0005]第一方面,本發(fā)明實(shí)施例提供了一種全文數(shù)據(jù)的提取方法,包括:
[0006]將網(wǎng)絡(luò)封包數(shù)據(jù)解析為會(huì)話數(shù)據(jù);
[0007]判斷所述會(huì)話數(shù)據(jù)的實(shí)體部分是否符合預(yù)設(shè)數(shù)據(jù)格式,若是則對所述會(huì)話數(shù)據(jù)進(jìn)行數(shù)據(jù)格式標(biāo)注;
[0008]對符合預(yù)設(shè)數(shù)據(jù)格式的會(huì)話數(shù)據(jù)進(jìn)行多模匹配,判斷是否命中預(yù)設(shè)特征串,并在命中預(yù)設(shè)特征串時(shí)獲得預(yù)設(shè)特征串的命中位置;
[0009]根據(jù)所述會(huì)話數(shù)據(jù)的數(shù)據(jù)格式標(biāo)注以及所述預(yù)設(shè)特征串的命中位置,確定所述會(huì)話數(shù)據(jù)的對應(yīng)的提取函數(shù),并根據(jù)所述提取函數(shù)對所述會(huì)話數(shù)據(jù)進(jìn)行數(shù)據(jù)提取。
[0010]第二方面,本發(fā)明實(shí)施例還提供了一種全文數(shù)據(jù)的提取裝置,包括:
[0011]解析模塊,用于將網(wǎng)絡(luò)封包數(shù)據(jù)解析為會(huì)話數(shù)據(jù);
[0012]標(biāo)注模塊,用于判斷所述會(huì)話數(shù)據(jù)的實(shí)體部分是否符合預(yù)設(shè)數(shù)據(jù)格式,若是則對所述會(huì)話數(shù)據(jù)進(jìn)行數(shù)據(jù)格式標(biāo)注;
[0013]多模匹配模塊,用于對符合預(yù)設(shè)數(shù)據(jù)格式的會(huì)話數(shù)據(jù)進(jìn)行多模匹配,判斷是否命中預(yù)設(shè)特征串,并在命中預(yù)設(shè)特征串時(shí)獲得預(yù)設(shè)特征串的命中位置;
[0014]數(shù)據(jù)提取模塊,用于根據(jù)所述會(huì)話數(shù)據(jù)的數(shù)據(jù)格式標(biāo)注以及所述預(yù)設(shè)特征串的命中位置,確定所述會(huì)話數(shù)據(jù)的對應(yīng)的提取函數(shù),并根據(jù)所述提取函數(shù)對所述會(huì)話數(shù)據(jù)進(jìn)行數(shù)據(jù)提取。
[0015]本發(fā)明通過對解析后的會(huì)話數(shù)據(jù)進(jìn)行預(yù)設(shè)數(shù)據(jù)格式的判斷,可以將不符合預(yù)設(shè)數(shù)據(jù)格式的無效數(shù)據(jù)濾除,因此縮短了數(shù)據(jù)提取時(shí)間,此外,通過對符合預(yù)設(shè)數(shù)據(jù)格式的會(huì)話數(shù)據(jù)進(jìn)行多模匹配,進(jìn)一步減少了提取數(shù)據(jù)過程中的查找匹配時(shí)間,提高了海量數(shù)據(jù)的全文數(shù)據(jù)提取效率。
【附圖說明】
[0016]圖1為本發(fā)明實(shí)施例一提供的一種全文數(shù)據(jù)的提取方法的流程示意圖;
[0017]圖2為本發(fā)明實(shí)施例二提供的一種全文數(shù)據(jù)的提取方法的流程示意圖;
[0018]圖3為本發(fā)明實(shí)施例三提供的一種全文數(shù)據(jù)的提取裝置;
[0019]圖4是本發(fā)明實(shí)施例三提供的全文數(shù)據(jù)提取的拓?fù)浣Y(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0020]下面結(jié)合附圖和實(shí)施例對本發(fā)明作進(jìn)一步的詳細(xì)說明??梢岳斫獾氖牵颂幩枋龅木唧w實(shí)施例僅僅用于解釋本發(fā)明,而非對本發(fā)明的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與本發(fā)明相關(guān)的部分而非全部結(jié)構(gòu)。
[0021]實(shí)施例一
[0022]圖1為本發(fā)明實(shí)施例一提供的一種全文數(shù)據(jù)的提取方法的流程示意圖,該方法可以由全文數(shù)據(jù)的提取裝置來執(zhí)行,該裝置可以通過硬件和/或軟件的方式實(shí)現(xiàn),具體的所述方法包括如下操作:
[0023]S110、將網(wǎng)絡(luò)封包數(shù)據(jù)解析為會(huì)話數(shù)據(jù)。
[0024]本實(shí)施例提供的方法可適用于多種協(xié)議通信的數(shù)據(jù)提取,下面以超文本傳輸協(xié)議(HyperText Transfer Protocol,HTTP)數(shù)據(jù)為例進(jìn)行詳細(xì)說明。首先將從數(shù)據(jù)源獲取的網(wǎng)絡(luò)封包數(shù)據(jù)解析為文本格式的會(huì)話數(shù)據(jù)。對于HTTP協(xié)議數(shù)據(jù),采用HTTP協(xié)議棧解析為HTTPP0ST會(huì)話數(shù)據(jù)。解析后的會(huì)話數(shù)據(jù)包括HTTP頭部和HTTP實(shí)體部分。按照HTTP協(xié)議桟解析還原成HTTPP0ST會(huì)話數(shù)據(jù),需要先建傳輸控制協(xié)議(Transmiss1n ControlProtocol, TCP)流,然后再按HTTP會(huì)話解析,例如利用開源軟件snort實(shí)現(xiàn)此種功能。
[0025]S120、判斷所述會(huì)話數(shù)據(jù)的實(shí)體部分是否符合預(yù)設(shè)數(shù)據(jù)格式,若是則對所述會(huì)話數(shù)據(jù)進(jìn)行數(shù)據(jù)格式標(biāo)注。
[0026]將網(wǎng)絡(luò)封包數(shù)據(jù)解析為會(huì)話數(shù)據(jù)后,對所述會(huì)話數(shù)據(jù)的實(shí)體部分進(jìn)行識別,判斷所述會(huì)話數(shù)據(jù)的實(shí)體部分是否符合預(yù)設(shè)數(shù)據(jù)格式。所述預(yù)設(shè)數(shù)據(jù)格式可根據(jù)需要個(gè)性化設(shè)置。一般情況下,根據(jù)需要選擇預(yù)設(shè)數(shù)據(jù)格式,需要提取的數(shù)據(jù)一般僅包含在預(yù)設(shè)數(shù)據(jù)格式中,該操作,可以將不符合預(yù)設(shè)數(shù)據(jù)格式的會(huì)話數(shù)據(jù)濾除。因此可以避免對無效數(shù)據(jù)進(jìn)行提取,節(jié)約了數(shù)據(jù)提取時(shí)間。當(dāng)所述會(huì)話數(shù)據(jù)的實(shí)體部分符合預(yù)設(shè)數(shù)據(jù)格式時(shí),對所述會(huì)話數(shù)據(jù)進(jìn)行數(shù)據(jù)格式標(biāo)注,以標(biāo)識所述會(huì)話數(shù)據(jù)屬于哪種預(yù)設(shè)數(shù)據(jù)格式。
[0027]S130、對符合預(yù)設(shè)數(shù)據(jù)格式的會(huì)話數(shù)據(jù)進(jìn)行多模匹配,判斷是否命中預(yù)設(shè)特征串,并在命中預(yù)設(shè)特征串時(shí)獲得預(yù)設(shè)特征串的命中位置。
[0028]其中預(yù)設(shè)特征串可以通過配置文件管理,所述預(yù)設(shè)特征串的數(shù)量大于或者等于1。所述預(yù)設(shè)特征串例如可以是“phone number” (電話號碼)、“MAC” (硬件地址)、和“mac”等。可選的,在對符合預(yù)設(shè)數(shù)據(jù)格式的會(huì)話數(shù)據(jù)進(jìn)行多模匹配,判斷是否命中預(yù)設(shè)特征串,并在命中預(yù)設(shè)特征串時(shí)獲得預(yù)設(shè)特征串的命中位置之前,還包括:通過配置文件管理所述預(yù)設(shè)特征串。通過配置文件管理預(yù)設(shè)特征串,可以靈活的添加、刪除,本發(fā)明中所用的多模匹配算法例如可以是AC算法,還可以使用其他開源算法。
[0029]通過讀取配置文件獲得預(yù)設(shè)特征串,再進(jìn)行多模匹配算法狀態(tài)樹的生成,從而最終實(shí)現(xiàn)后續(xù)的多模匹配操作。
[0030]S140、根據(jù)所述會(huì)話數(shù)據(jù)的數(shù)據(jù)格式標(biāo)注以及所述預(yù)設(shè)特征串的命中位置,確定所述會(huì)話數(shù)據(jù)的對應(yīng)的提取函數(shù),并根據(jù)所述提取函數(shù)對所述會(huì)話數(shù)據(jù)進(jìn)行數(shù)據(jù)提取。
[0031]本發(fā)明針對不同數(shù)據(jù)格式提煉出一一對應(yīng)的提取函數(shù)。根據(jù)所述會(huì)話數(shù)據(jù)的數(shù)據(jù)格式標(biāo)注以及所述預(yù)設(shè)特征串的命中位置,確定所述會(huì)話數(shù)據(jù)的對應(yīng)的提取函數(shù),然后利用所述會(huì)話數(shù)據(jù)對應(yīng)的提取函數(shù)進(jìn)行數(shù)據(jù)提取。
[0032]本發(fā)明實(shí)施例通過對解析后的會(huì)話數(shù)據(jù)進(jìn)行預(yù)設(shè)數(shù)據(jù)格式的判斷,可以將不符合預(yù)設(shè)數(shù)據(jù)格式的無效數(shù)據(jù)濾除,因此縮短了數(shù)據(jù)提取時(shí)間,此外,通過對符合預(yù)設(shè)數(shù)據(jù)格式的會(huì)話數(shù)據(jù)進(jìn)行多模匹配,進(jìn)一步減少了提取數(shù)據(jù)過程中的查找匹配時(shí)間,提高了海量數(shù)據(jù)的全文數(shù)據(jù)提取效率。本發(fā)明實(shí)施例提供的數(shù)據(jù)提取方法不但適用于特定網(wǎng)站、離線的數(shù)據(jù)提取,更適用于不指定網(wǎng)站、大流量的數(shù)據(jù)提取,單個(gè)處理線程每秒可以處理多達(dá)10000個(gè)有效HTTP會(huì)話,達(dá)到了海量提取全文數(shù)據(jù)的目的。
[0033]實(shí)施例二
[0034]圖2為本發(fā)明實(shí)施例二提供的一種全文數(shù)據(jù)的提取方法的流程示意圖,如圖2所示,所述方法包括:
[0035]S210、將網(wǎng)絡(luò)封包數(shù)據(jù)解析為會(huì)話數(shù)據(jù)。
[0036]S220、判斷所述會(huì)話數(shù)據(jù)的實(shí)體部分是否符合預(yù)設(shè)數(shù)據(jù)格式。
[0037]若是,則依次執(zhí)行操作S230和S250,否則返回依次執(zhí)行操作S240和S220。
[0038]S230、對所述會(huì)話數(shù)據(jù)進(jìn)行數(shù)據(jù)格式標(biāo)注。
[0039]S240、將后續(xù)網(wǎng)絡(luò)封包數(shù)據(jù)解析為會(huì)話數(shù)據(jù)。
[0040]S250、對符合預(yù)設(shè)數(shù)據(jù)格式的會(huì)話數(shù)據(jù)進(jìn)行多模匹配,判斷是否命中預(yù)設(shè)特征串。
[0041]在命中預(yù)設(shè)特征串時(shí),依次執(zhí)行操作S260、S270、S280和S290,否則返回依次執(zhí)行操作S240和S220。
[0042]S260、獲得預(yù)設(shè)特征串的命中位置,以及命中預(yù)設(shè)特征串對應(yīng)的字段標(biāo)簽。
[0043]其中,可通過配置文件管理預(yù)設(shè)特征串,具體的,配置文件格式可按如下所示設(shè)置:
[0044]特征串字段標(biāo)簽
[0045]ImsiIMSI
[0046]Phone_imsi IMSI
[0047]特征串“Imsi”和“Phone_imsi”都具有同一字段標(biāo)簽“頂SI”。其中頂SI表示國際移動(dòng)用戶識別碼。
[0048]S270、根據(jù)所述會(huì)話數(shù)據(jù)的數(shù)據(jù)格式標(biāo)注以及所述預(yù)設(shè)特征串的命中位置,確定所述會(huì)話數(shù)據(jù)的對應(yīng)的提取函數(shù),并根據(jù)所述提取函數(shù)對所述會(huì)話數(shù)據(jù)進(jìn)行數(shù)據(jù)提取。
[0049]S280、根據(jù)命中預(yù)設(shè)特征串對應(yīng)的字段標(biāo)簽,對提取后的數(shù)據(jù)進(jìn)行歸一化處理。
[0050]不同特征串對應(yīng)同一字段標(biāo)簽時(shí),所提取的數(shù)據(jù)是同一類。例如特征串“MAC”和“mac”的字段標(biāo)簽均為MAC。即通過特征串“MAC”和“mac”提取的數(shù)據(jù)都表征硬件地址。而通過特征串“MAC”和“mac”提取的數(shù)據(jù)格式是不同的。所述歸一化是指將同一數(shù)據(jù)的不同格式轉(zhuǎn)化為同一格式,例如:mac地址在數(shù)據(jù)中有:aa-bb-cc-dd_ee-ff,aa = bb = cc = dd=ee = ff,aa:bb:cc:dd:ee:ff0 歸一化處理后,格式統(tǒng)一為:aa-bb-cc-dd-ee-ff0
[0051]S290、將提取數(shù)據(jù)進(jìn)行結(jié)構(gòu)化處理并輸出。
[0052]具體的,可通過設(shè)定指定格式,將上述操作提取出的數(shù)據(jù)按指定格式組合成結(jié)構(gòu)化數(shù)據(jù),并輸出,以便使用。
[0053]本發(fā)明實(shí)施例通過將網(wǎng)絡(luò)封包數(shù)據(jù)解析成會(huì)話數(shù)據(jù),然后判斷會(huì)話數(shù)據(jù)實(shí)體的格式,同時(shí)打標(biāo),如果不是預(yù)設(shè)數(shù)據(jù)格式,則進(jìn)行下