提取結構化數據的方法及裝置的制造方法
【技術領域】
[0001] 本發明涉及數據處理領域,尤其涉及一種提取結構化數據的方法及裝置。
【背景技術】
[0002] 網絡上所公開的文檔通常稱作網頁,其一般都是用稱作HTML的語言來進行公開, 而HTML為文檔規定了標準格式。雖然將網絡信息以HTML格式呈現時,用戶可以非常便利 地進行閱讀,但是若用戶想從HTML文檔中進行信息檢索以便進行自動化處理則較為困難。 這是因為網頁中的數據較繁雜,一些信息,例如導航(菜單)信息和廣告信息等,會導致搜索 引擎的結果中出現大量垃圾信息,從而導致網絡挖掘的精度下降。
【發明內容】
[0003] 本發明實施例所要解決的技術問題在于,針對現有技術中網絡數據挖掘精度不足 的缺陷,提供一種高效精確的提取結構化數據的方法及裝置。
[0004] 為了解決上述技術問題,本發明實施例提供了一種提取結構化數據的方法,包 括:
[0005] 將網頁劃分為主體區域和輔助區域,構建用于表示所述主體區域的XPATH標記 樹;
[0006] 將所述XPATH標記樹中的XPATH節點與CSS標簽進行對應,并根據CSS標簽內容 的相似度將所述CSS標簽進行分組;
[0007] 若所述XPATH標記樹中各個XPATH節點的CSS標簽均屬于同一分組,且所述各 個XPATH節點的CSS標簽是屬于同一父標簽下的子標簽,則提取所述XPATH標記樹中各個 XPATH節點對應的數據作為正文內容。
[0008] 其中,所述將網頁劃分為主體區域和輔助區域,構建用于表示所述主體區域的 XPATH標記樹的步驟包括:
[0009] 解析網頁,獲取所述網頁的XPATH節點;
[0010] 根據所述XPATH節點的屬性對所述XPATH節點進行過濾,獲取體現網頁結構布局 的XPATH節點;
[0011] 將所述體現網頁結構布局的XPATH節點劃分為用于表示主體區域的XPATH節點和 用于表示輔助區域的XPATH節點,提取用于表示所述主體區域的XPATH節點構建XPATH標 記樹。
[0012] 其中,所述根據CSS標簽內容的相似度將所述CSS標簽進行分組的步驟包括:
[0013] 提取所述CSS標簽內容中的特征屬性,所述特征屬性包括字體大小、顏色和/或行 間距;
[0014] 將所述特征屬性一致的CSS標簽作為一個分組。
[0015] 其中,所述方法還包括:
[0016] 若所述XPATH標記樹中各個XPATH節點的CSS標簽不屬于同一分組,或所述各個 XPATH節點的CSS標簽不是屬于同一父標簽下的子標簽,則選擇CSS標簽數量最多的分組作 為最優分組,提取所述最優分組中的CSS標簽所對應的XPATH節點下的數據作為正文內容。
[0017] 其中,所述方法還包括:
[0018] 若所述XPATH標記樹中各個XPATH節點的CSS標簽不屬于同一分組,或所述各個 XPATH節點的CSS標簽不是屬于同一父標簽下的子標簽,則統計各個分組中的CSS標簽的數 量,剔除數量最少的一組CSS標簽對應的XPATH節點,提取所述XPATH標記樹中剩余XPATH 節點對應的數據作為正文內容。
[0019] 相應地,本發明還提供了一種提取結構化數據的裝置,包括:
[0020] 主體區域提取模塊,用于將網頁劃分為主體區域和輔助區域,構建用于表示所述 主體區域的XPATH標記樹;
[0021] CSS標簽對應模塊,用于將所述XPATH標記樹中的XPATH節點與CSS標簽進行對 應;
[0022] CSS標簽分組模塊,用于根據CSS標簽內容的相似度將所述CSS標簽進行分組;
[0023] 正文提取模塊,用于若所述XPATH標記樹中各個XPATH節點的CSS標簽均屬于 同一分組,且所述各個XPATH節點的CSS標簽是屬于同一父標簽下的子標簽,則提取所述 XPATH標記樹中各個XPATH節點對應的數據作為正文內容。
[0024] 其中,所述主體區域提取模塊包括:
[0025] 網頁解析模塊,用于解析網頁,獲取所述網頁的XPATH節點;
[0026] 粗略過濾模塊,用于根據所述XPATH節點的屬性對所述XPATH節點進行過濾,獲取 體現網頁結構布局的XPATH節點;
[0027] XPATH標記樹構建模塊,用于將所述體現網頁結構布局的XPATH節點劃分為用于 表示主體區域的XPATH節點和用于表示輔助區域的XPATH節點,提取用于表示所述主體區 域的XPATH節點構建XPATH標記樹。
[0028] 其中,所述CSS標簽分組模塊包括:
[0029] 特征屬性提取模塊,用于提取所述CSS標簽內容中的特征屬性,所述特征屬性包 括字體大小、顏色和/或行間距;
[0030] 特征屬性對比模塊,用于將所述特征屬性一致的CSS標簽作為一個分組。
[0031] 其中,所述裝置還包括:
[0032] 第一優化模塊,用于若所述XPATH標記樹中各個XPATH節點的CSS標簽不屬于同 一分組,或所述各個XPATH節點的CSS標簽不是屬于同一父標簽下的子標簽,則選擇CSS標 簽數量最多的分組作為最優分組,提取所述最優分組中的CSS標簽所對應的XPATH節點下 的數據作為正文內容。
[0033] 其中,所述裝置還包括:
[0034] 第二優化模塊,用于若所述XPATH標記樹中各個XPATH節點的CSS標簽不屬于同 一分組,或所述各個XPATH節點的CSS標簽不是屬于同一父標簽下的子標簽,則統計各個分 組中的CSS標簽的數量,剔除數量最少的一組CSS標簽對應的XPATH節點,提取所述XPATH 標記樹中剩余XPATH節點對應的數據作為正文內容。
[0035] 實施本發明實施例,具有如下有益效果:通過將XPATH標記樹和CSS標簽相結合, 構建網頁頁面標記樹,能更好更準確地識別網頁頁面正文內容,提高網頁結構化解析的能 力,結構化解析后的結果數據更加精準。
【附圖說明】
[0036] 為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現 有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本 發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以 根據這些附圖獲得其他的附圖。
[0037] 圖1是本發明第一實施例提供的提取結構化數據的方法的流程圖;
[0038] 圖2是本發明第二實施例提供的提取結構化數據的方法的流程圖;
[0039] 圖3是網頁節點標記的XML樹狀結構圖;
[0040] 圖4是本發明第一實施例提供的提取結構化數據的裝置的結構示意圖;
[0041] 圖5是本發明第二實施例提供的提取結構化數據的裝置的結構示意圖;
[0042] 圖6是一網頁的主體區域的示意圖;
[0043] 圖7是本發明一實施例提供的CSS標簽樹的示意圖。
【具體實施方式】
[0044] 下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完 整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于 本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他 實施例,都屬于本發明保護的范圍。
[0045] 垂直搜索引擎是相對通用搜索引擎的信息量大、查詢不準確、深度不夠等缺點提 出來的新的搜索引擎服務模式,通過針對某一特定領域、某一特定人群或某一特定需求提 供的有一定價值的信息和相關服務,其特點就是"專、精、深",且具有行業色彩,相比較通用 搜索引擎的海量信息無序化,垂直搜索引擎則顯得更加專注、具體和深入。
[0046] 垂直搜索引擎的數據依賴爬蟲搜集,并做了深度加工而來的,因此要求垂直搜索 引擎的索引數據傾向于結構化數據和元數據。
[0047] 垂直搜索引擎和普通的網頁搜索引擎的最大區別是對網頁信息進行了結構化信 息抽取,也就是將網頁的非結構化數據抽取成特定的結構化信息數據,垂直搜索是以結構 化數據為最小單位,然后將這些數據存儲到數據庫,進行進一步的加工處理,如:去重、分類 等,最后分詞、索引再以搜索的方式滿足用戶的需求。整個過程中,數據由非結構化數據抽 取成結構化數據,經過深度加工處理后以非結構化的方式和結構化的方式返回給用戶。
[0048] 網頁文件通常由標記語言(如HTML)描述,通過標記指明頁面文本的顯示格式。對 不同網站的網頁進行大量觀察和分析后,可以發現:
[0049] ①相同URL目錄下的網頁存在大量由同一模板生成的網頁;
[0050] ②由同一模板生成的網頁的結構布局、CSS (Cascading Style Sheets,層疊樣式 表單)是基本一致的;
[0051] ③不同網站盡管風格各異,但從頁面結構和內容上來看有著類似的組成區域,大 都由內容主體、單位標識、導航欄和交互信息等區域中的一個或多個區域構成,而且主體區 域通常是頁面布局中最大的一塊區域。
[0052] 由此可以推論:任何一個頁面都可以劃分為主體區域和其他的輔助區域,內容主 體與和輔助區域還分別可依樣劃分為更小的區域,同一網站同一主題的所有網頁具有相同 的劃分方式。
[0053] 用戶在訪問網頁(或者說是軟件系統在處理網頁)時,往往關心的僅僅是網頁的主 體區域中的正文內容。因此,對網頁進行區域劃分后,在進行頁面處理時只需對主體區域中 的信息加以處理而忽略別的區域,這樣可以減少頁面處理在時間和空間上的不必要花費。
[0054] 因此在對頁面進行分析時,可以根據這些標記來構建一棵頁面標記樹進行分析, 保留其中有用信息的那部分標記子樹,拋棄其它標記子樹,從而達到凈化頁面,快速獲取網 頁正文內容的目的。
[0055] 請參見圖1,是本發明第一實施例提供的提取結構化數據的方法的流程圖,該方法 包括:
[0056] S101、將網頁劃分為主體區域和輔助區域,構建用于表示所述主體區域的XPATH (XML Path Language,XML路徑語言)標記樹。其中,XPATH是一種用來確定XML文檔中某 部分位置的語言。XPATH基于XML的樹狀