本發(fā)明涉及數(shù)據(jù)檢索,特別涉及一種web頁面信息搜索方法。
背景技術(shù):
隨著用戶對互聯(lián)網(wǎng)領(lǐng)域的數(shù)據(jù)獲取要求越來越精準,專業(yè)搜索引擎為了實現(xiàn)這些需求而產(chǎn)生,這是搜索引擎按照數(shù)據(jù)專業(yè)類型的專有領(lǐng)域信息整合。比如商品搜索、金融搜索、視頻搜索等等。與綜合搜索引擎相比,專業(yè)搜索引擎搜索規(guī)則更豐富,更精確,更專業(yè)。但從現(xiàn)有的垂直搜索技術(shù)及應用產(chǎn)品來看,仍然存在一些技術(shù)上的不完善之處,包括:現(xiàn)有電商搜索引擎排序一般按照檢索詞所在文檔中的綜合打分進行排序,如果需要按照訪問量進行排序,則對全部搜索結(jié)果集進行二次排序,但卻打亂第一次排序的結(jié)果,給用戶的體驗造成很大的影響;此外現(xiàn)有的搜索引擎通常采用搜索詞文字匹配的方式進行,只能做到簡單的字符配對,而并不能真正理解某一個搜索對象本身的含義,只能通過人的主觀感知才能提煉,再者隨著網(wǎng)站技術(shù)日新月異,需要為電商搜索引擎重新編寫正則表達式,顯然難以適應全網(wǎng)海量的數(shù)據(jù)實時處理。
技術(shù)實現(xiàn)要素:
為解決上述現(xiàn)有技術(shù)所存在的問題,本發(fā)明提出了一種web頁面信息搜索方法,包括:
采集web頁面,將采集的數(shù)據(jù)按照索引所需的數(shù)據(jù)格式整理;
根據(jù)數(shù)據(jù)建立索引,將搜索引擎發(fā)布成http服務;
對web頁面內(nèi)容的數(shù)據(jù)業(yè)務部分進行數(shù)據(jù)分析;
從索引中執(zhí)行數(shù)據(jù)搜索,然后自動更新索引;
接收用戶對搜索結(jié)果的修改。
優(yōu)選地,所述從索引中執(zhí)行數(shù)據(jù)搜索,進一步包括分級排序,具體為:
根據(jù)搜索業(yè)務的實際需求對搜索邏輯根據(jù)優(yōu)先級以矩陣的形式進行分級處理;排序結(jié)果按級別進行劃分,每個排序邏輯層對應一個排序結(jié)果集合,然后根據(jù)統(tǒng)一等級的排序邏輯進行級內(nèi)排序,將實時的訪問量數(shù)據(jù)作為排序的因素進行級內(nèi)二次排序,從各個有序的排序結(jié)果層中找到合適的排序結(jié)果子集進行整合后返回給用戶;
所述從索引中執(zhí)行數(shù)據(jù)搜索,還包括搜索詞擴展,具體包括:
首先生成web頁面對象,其對應搜索引擎web頁面集中的一條記錄,該對象包含三部分:數(shù)據(jù)ID,代表該條數(shù)據(jù)的引用地址;數(shù)據(jù)值,指具體的數(shù)據(jù);排序?qū)傩粤斜?,代表分級的排序邏輯對應的排序?qū)傩灾刀嗑S列表,并降維得到一維排序?qū)傩粤斜恚@些排序?qū)傩灾蹈鶕?jù)等級的優(yōu)先級由高到低存儲在一個數(shù)組中,在兩個排序?qū)傩粤斜肀容^時根據(jù)優(yōu)先級進行對比;該web頁面對象數(shù)組是一個公共的數(shù)據(jù)池,通過數(shù)據(jù)ID對里面的各個數(shù)據(jù)進行引用,并維護一個以web頁面對象中的數(shù)據(jù)值為鍵的web頁面對象散列表;然后生成搜索詞對象,包括以下元素:搜索詞、數(shù)據(jù)ID對象列表及數(shù)據(jù)ID對象候選列表;其中搜索詞是由公共數(shù)據(jù)池的里面web頁面對象中的數(shù)據(jù)值屬性劃分得到,每個數(shù)據(jù)值根據(jù)長度遞增的方式劃分得到多個搜索詞;一個數(shù)據(jù)ID對象是由web頁面ID及排序數(shù)據(jù)值列表兩個元素組成的,數(shù)據(jù)ID對象列表是指一個搜索詞對應的有效的數(shù)據(jù)ID對象列表;數(shù)據(jù)ID對象候選列表用于補充數(shù)據(jù)ID對象列表;
搜索詞擴展內(nèi)容的生成過程是在遍歷web頁面的過程中進行的,將web頁面按照搜索詞長度遞增的規(guī)則逐個劃分web頁面,在劃分的過程中對劃分的搜索詞進行轉(zhuǎn)換形成搜索詞列表,將各個搜索詞作為鍵存放到散列表中,具體描述如下:
(1).將web頁面根據(jù)內(nèi)存結(jié)構(gòu)要求存儲在內(nèi)存,遍歷搜索web頁面列表;
(2).轉(zhuǎn)換并劃分每條web頁面形成搜索詞列表;
(3).根據(jù)各個搜索詞的排序?qū)傩灾盗斜頉Q定將對應的web頁面ID插入數(shù)據(jù)ID列表還是數(shù)據(jù)ID候選列表中;
(4).生成搜索web頁面的搜索詞對象散列表,該散列表包含填充的數(shù)據(jù)ID列表及數(shù)據(jù)ID候選列表;
其中每條數(shù)據(jù)的劃分流程是核心部分,具體描述如下:將web頁面對象的數(shù)據(jù)值進行轉(zhuǎn)換成多種類型的數(shù)據(jù)值集合;對數(shù)據(jù)值集合每條數(shù)據(jù)值根據(jù)搜索詞長度遞增的方式進行劃分;根據(jù)劃分的搜索詞列表作為鍵搜索搜索詞散列表,查找成功,則轉(zhuǎn)上文步驟3;根據(jù)內(nèi)存數(shù)據(jù)結(jié)構(gòu)建立搜索詞對象加入散列表中。
本發(fā)明相比現(xiàn)有技術(shù),具有以下優(yōu)點:
本發(fā)明提出了一種web頁面信息搜索方法,克服了字符串配對式搜索的瓶頸,提高了搜索結(jié)果的精確性,并實現(xiàn)了智能高效搜索,能夠適應各類電商業(yè)務的需求。
附圖說明
圖1是根據(jù)本發(fā)明實施例的web頁面信息搜索方法的流程圖。
具體實施方式
下文與圖示本發(fā)明原理的附圖一起提供對本發(fā)明一個或者多個實施例的詳細描述。結(jié)合這樣的實施例描述本發(fā)明,但是本發(fā)明不限于任何實施例。本發(fā)明的范圍僅由權(quán)利要求書限定,并且本發(fā)明涵蓋諸多替代、修改和等同物。在下文描述中闡述諸多具體細節(jié)以便提供對本發(fā)明的透徹理解。出于示例的目的而提供這些細節(jié),并且無這些具體細節(jié)中的一些或者所有細節(jié)也可以根據(jù)權(quán)利要求書實現(xiàn)本發(fā)明。
本發(fā)明的一方面提供了一種web頁面信息搜索方法。圖1是根據(jù)本發(fā)明實施例的web頁面信息搜索方法流程圖。
本發(fā)明實現(xiàn)了一種專業(yè)領(lǐng)域搜索引擎體系結(jié)構(gòu),利用分級排序,通過二維空間分值計算建立加權(quán)屬性進行深度智能搜索;建立多維約束數(shù)據(jù)提取方式實現(xiàn)頁面的內(nèi)容智能提取,并進行搜索詞擴展內(nèi)容生成及更新,特別對超長文本的搜索詞,基于散列搜索實現(xiàn)搜索詞的突出顯示。
專業(yè)領(lǐng)域搜索引擎體系結(jié)構(gòu)包括:采集模塊,負責數(shù)據(jù)的采集接收,并保存到特定的文件夾下,提供web頁面。數(shù)據(jù)存儲模塊,負責將接受的數(shù)據(jù)按照索引所需的數(shù)據(jù)格式整理。具有自我恢復、回滾功能?;貪L操作不能撤銷,一旦回滾到特定日期,當下次更新時,此日期之前的數(shù)據(jù)將保留,而此日期之后的數(shù)據(jù)將刪除。數(shù)據(jù)索引模塊,負責根據(jù)數(shù)據(jù)建立索引,同時索引具有備份機制。搜索調(diào)用接口模塊,將搜索引擎發(fā)布成http服務。日志及監(jiān)控模塊,監(jiān)視以上各個系統(tǒng)的運行狀態(tài)。數(shù)據(jù)分析模塊,對web頁面內(nèi)容的數(shù)據(jù)業(yè)務部分進行數(shù)據(jù)分析。用戶修改模塊,從外部修改搜索結(jié)果,包括增刪改結(jié)果及對排序進行修改。數(shù)據(jù)搜索模塊,負責數(shù)據(jù)搜索,并自動從索引系統(tǒng)中更新最新數(shù)據(jù)。
數(shù)據(jù)分析模塊針對特定網(wǎng)站的顯著特征,判別并找出所有web頁面;然后,按照web頁面上網(wǎng)址中搜索概念的語義,通過web頁面及其每一網(wǎng)址指向的頁面所分別包含的本體集間的大小關(guān)系的比較,找出該web頁面的URL;最后,將URL上的鏈接文本映射到該URL指向的web頁面所包含的本體上,歸入該本體的屬性集。為避免隱藏屬性發(fā)現(xiàn)過程中的不必要的重復,設(shè)置搜索B-樹的剪枝機制,搜索B-樹的每個節(jié)點代表一個web頁面,父節(jié)點指向葉節(jié)點的邊代表相應web頁面間的下位關(guān)系,邊上的值即為相應的隱藏屬性,從根節(jié)點到葉節(jié)點路徑上的所有隱藏屬性構(gòu)成該葉節(jié)點的隱藏屬性集。首先以深度優(yōu)先方式,根據(jù)下位網(wǎng)址語義生成下層葉節(jié)點;接著,對于新生成的每個葉節(jié)點,判斷其隱藏屬性集是否和已有的某個葉節(jié)點相同,若有則丟棄該葉節(jié)點,以完成屬性的爬取。爬取過程結(jié)束時,獲得無重復的所有對象頁面,所有屬性信息供頁面信息提取過程提取。
本發(fā)明數(shù)據(jù)分析模塊將電商網(wǎng)站上的web頁面分成三種:結(jié)果頁面,對象頁面和其他頁面。一個搜索對應的是一系列結(jié)果頁面,對象頁面包含一個單獨本體信息,包括商品。不屬于以上兩種頁面的頁面分類為其他頁面。每個本體都用一組屬性集合進行描述,形成了搜索的條件。每個本體有且僅有一個對象頁面。用無向圖來描述電商網(wǎng)站,P表示頂點集,每個頂點代表一個頁面,L是邊集,每一條邊代表從一個頁面到另一個頁面的URL。R表示所有結(jié)果頁面的集合,O表示所有對象頁面的集合,Q表示所有搜索的集合。搜索、結(jié)果頁面和對象頁面三者間所有的屬性構(gòu)成一個屬性空間,基于頁面間的連接結(jié)構(gòu)將其進行聚類。
為找出每個本體隱藏在搜索中的屬性信息。需要找出搜索的完整集合、與每個搜索相對應的屬性與值的組成的鍵值對、滿足每個搜索的本體。令q為一個搜索,我們使用與搜索相符的結(jié)果頁面集合δ(q)來表示q。具體執(zhí)行步驟:
1.爬取整個網(wǎng)站頁面,利用它的URL識別每一個頁面并從頁面提取所有的網(wǎng)址。
2.識別每個頁面的類型,即結(jié)果頁面,對象頁面和其他頁面。在頁面類型識別中,基于相同網(wǎng)站上對象頁面HTML結(jié)構(gòu)相似性,使用基于SVM的頁面分類方法來完成對象頁面的識別。然后采用了貪心算法,只要任何非對象頁面包含一個指向?qū)ο箜撁娴木W(wǎng)址,則將它分類為一個結(jié)果頁面。
3.根據(jù)搜索將結(jié)果頁面聚類為多個集合,每個集合對應一個搜索。即對于集合R中每個頁面p指向的所有結(jié)果頁面的集合t(p),用t(p)之間的對稱差表示每兩個頁面的距離,引入一個距離閾值d,當所述距離小于d時,指示兩個頁面屬于相同的搜索。
4.找出搜索之間的關(guān)系。檢查每個結(jié)果頁面集合s的每個頁面的URL;如果一個搜索URL指向另一結(jié)果頁面集合r中的頁面,那么檢查s和r分別所包含的查詢所關(guān)聯(lián)的本體頁面ws和wr之間的子集關(guān)系。如果則提取s和r的URL作為屬性,使用其超文本作為屬性值和上層HTML元素作為屬性名創(chuàng)建一個屬性鍵值對。
5.提取滿足所有搜索的屬性與值的組成的鍵值對的并集,作為本體的隱藏屬性。
所述搜索引擎結(jié)構(gòu)的數(shù)據(jù)搜索模塊包括:排序模塊、基于屬性權(quán)值的搜索模塊、搜索詞擴展模塊,web頁面智能處理模塊,搜索詞突出顯示模塊。排序模塊進行分級排序,每個等級設(shè)置多種同等權(quán)值的排序邏輯,對每層邏輯進行級內(nèi)排序。同時將訪問量作為實時排序的參考依據(jù)。總體流程包括排序邏輯分級、排序邏輯整合、排序結(jié)果塊劃分、排序結(jié)果整合、排序結(jié)果集存儲。根據(jù)搜索業(yè)務的實際需求對搜索邏輯根據(jù)優(yōu)先級以矩陣的形式進行分級處理。排序結(jié)果按級別進行劃分,每個排序邏輯層對應一個排序結(jié)果集合,然后根據(jù)統(tǒng)一等級的排序邏輯進行級內(nèi)排序,將實時的訪問量數(shù)據(jù)作為排序的因素進行級內(nèi)二次排序,從各個有序的排序結(jié)果層中找到合適的排序結(jié)果子集進行整合后返回給用戶。
基于屬性權(quán)值的搜索模塊根據(jù)用戶對商品的評價,通過分值計算的方式計算出商品對應的加權(quán)屬性,通過基于屬性權(quán)值的搜索的方式解決語義的商品搜索,包括屬性值動態(tài)生成、屬性分值計算、商品多重屬性排序及商品屬性搜索。
搜索詞擴展模塊在用戶輸入搜索詞的部分內(nèi)容后,提示出用戶需要的檢索詞列表,用戶通過選擇搜索詞列表中的任一搜索詞進行搜索。本發(fā)明將web頁面對象經(jīng)過劃分后存儲在內(nèi)存中,通過遍歷并劃分web頁面生成搜索詞擴展列表,用于搜索詞的搜索與更新。
web頁面智能處理模塊將普通頁面作為訓練集,確定某類型頁面的約束規(guī)則集合,然后直接利用這些約束規(guī)則集合進行相應的信息提取,同時允許手動調(diào)整節(jié)點劃分規(guī)則,節(jié)點劃分規(guī)則從不同的方面描述節(jié)點的最基本屬性,而同一種類型的頁面只需定義一類節(jié)點劃分規(guī)則,從而滿足了現(xiàn)有搜索引擎的需求。
所述搜索詞突出顯示模塊,針對長文本搜索詞顯示問題設(shè)計一種通用的搜索詞信息內(nèi)容顯示方法。首先通過設(shè)計的內(nèi)存數(shù)據(jù)結(jié)構(gòu)將信息內(nèi)容解析得到的多個搜索詞的位置信息倒排索引存入內(nèi)存,然后通過散列查找搜索詞的位置信息倒排索引來提高搜索詞信息加載效率,同時定位指定搜索詞的位置信息以確定搜索詞突出顯示范圍,包括搜索詞解析、信息內(nèi)容解析、搜索詞信息加載、顯示內(nèi)容整合、顯示單元。
由于排序模塊具體包括排序邏輯分級、排序邏輯整合、排序結(jié)果塊劃分、排序結(jié)果整合、排序結(jié)果集存儲各個單元,本發(fā)明在進一步的實施例中詳細描述各個單元。
邏輯分級單元根據(jù)用戶的實際需求將排序邏輯進行分級,形成一個矩陣排序邏輯模型。其中矩陣中行元素代表同等級的多個邏輯,而不同行代表不同等級,不同層之間的權(quán)值是不同的。假設(shè)N*M矩陣由N個排序邏輯等級,而每個排序邏輯等級由M個排序邏輯,從中選取部分級及等級中的部分邏輯。選取排序邏輯分級矩陣,矩陣中設(shè)置前P行是搜索邏輯層,優(yōu)先級按照邏輯遞增或遞減,在某一搜索邏輯層上有1-M個子集作為該層的排序邏輯。將各個邏輯映射成一個數(shù)字,將搜索邏輯矩陣轉(zhuǎn)換為數(shù)字矩陣。
排序邏輯整合單元根據(jù)M*N分級排序邏輯矩陣中的排序邏輯整合成一個搜索的集合,對所有文檔掃描完成所有搜索,形成多個級內(nèi)有序的結(jié)果集。排序結(jié)果塊劃分單元根據(jù)分級模型進行分塊,每一層對應一塊,生成M個數(shù)據(jù)塊即排序數(shù)據(jù)層,每個數(shù)據(jù)塊形成一個數(shù)據(jù)域。
排序結(jié)果整合單元根據(jù)傳過來的參數(shù)從各個數(shù)據(jù)塊中取出一定數(shù)量的結(jié)果子集,然后進行結(jié)果整合成一個完整的結(jié)果集。傳過來的參數(shù)是一個區(qū)域值,整合的流程如下:
1.根據(jù)區(qū)域首尾地址判斷要求返回的搜索結(jié)果所在的排序數(shù)據(jù)層;
2.判斷首尾地址是否在同一個排序數(shù)據(jù)層中,否則轉(zhuǎn)步驟8;
3.取出第一個排序數(shù)據(jù)層底部的數(shù)據(jù)子集;
4.判斷排序數(shù)據(jù)層個數(shù)是否大于2,如果大于2則轉(zhuǎn)步驟6;
5.取出中間排序數(shù)據(jù)層的所有結(jié)果子集;
6.取出最后一個排序數(shù)據(jù)層上部數(shù)據(jù)子集;
7.將取出的結(jié)果集進行順序合并;
8.返回結(jié)果集。
所述根據(jù)統(tǒng)一等級的排序邏輯進行級內(nèi)排序,將實時的訪問量數(shù)據(jù)作為排序的因素進行級內(nèi)二次排序,進一步包括:
將實時排序訪問量矩陣對應分級排序邏輯矩陣,每一層邏輯對應多個外在排序訪問量作為實時排序的參考依據(jù)。根據(jù)實時排序訪問量矩陣的值進行二次排序,包括:根據(jù)參數(shù)定位要排序的數(shù)據(jù)塊及塊內(nèi)區(qū)域;從數(shù)據(jù)庫中實時取出排序因子對應的數(shù)值;對排序區(qū)域進行排序;
對于基于屬性權(quán)值的搜索模塊,本發(fā)明根據(jù)用戶對商品的評價自動抽取得到商品的屬性值,通過屬性值搜索得到符合特定場景的某種類型的商品,已達到準語義搜索的目標。所述自動抽取包括:
1.將商品評價結(jié)構(gòu)化;
2.將同一用戶對同一個商品的所有評論的內(nèi)容部分進行分詞,分詞處理后將預定義停用詞進行過濾,然后將重復的詞選取對應評論時間最新,最后得到同一用戶對同一個商品的屬性值;
3.根據(jù)步驟2計算得到所有用戶的對同一個商品的屬性值,將相同的屬性值進行聚集;
4.根據(jù)步驟2與3得到所有用戶對所有商品的評論得到的屬性值。
按照上述步驟,每個商品都有了用戶所定義的多個屬性。然后將屬性值分類。將得到的商品類型作為屬性的維度。重復次數(shù)大于預定義閾值的屬性值,即為維度中的一個值。
然后通過商品及用戶之間相互依賴的方式計算各自的分值權(quán)值,即分析所有評價得到所有用戶感興趣的商品列表。從商品維度,通過評價得到屬性值并計算屬性值,通過屬性值計算得到每個屬性值下的商品列表,體現(xiàn)用戶的對該商品在該屬性下的支持情況。
定義維度集合D;維度集合值V;被評價過的商品列表SU(p1,p2...pn);參與評價的用戶列表UU(u1,u2...um);商品的維度列表DU{d1,d2...dk};對于DU內(nèi)任一屬性值列表VU{v1,v2...vo};屬性列表SMU(pm1,pm2...pmx),對應SU元素的值;屬性分類列表UMU(um1,um2...umy),對應UU元素的值。
假設(shè)某一維度為A{a1,a2...an},用戶集合U{U1,U2,...Um},商品集合P{P1,P2,...Pk}
(1)商品分值根據(jù)評價用戶的個數(shù)及評價用戶權(quán)值共同計算得到,計算過程如下:
其中,ax為在維度A的一個維度值;product|ax表示商品在維度A其維度值為ax的分值;
Ui.A=ax包括對product在維度A上評價為ax的所有用戶。
cntM為所有屬性的總數(shù);sum表示所有用戶對product在維度A上的評價的總數(shù);cntvx為所有用戶對product在維度A上維度值為ax的評價總數(shù);cntvx/sum為所有用戶對product上在維度A上維度值為ax的權(quán)值系數(shù);cntv為用戶在這個維度的這個值上的評價數(shù)量;θ為降權(quán)因子,通過用戶對product在維度A上評價的最新時間和最早時間確定。
(2)用戶的分值由商品對應屬性分值計算得到:
假設(shè)用戶對于商品的分類集合為DV(DiVj|Di∈DU,Vj∈VU)定義pdv為商品p在維度d的維度值v上的分值,pdv’=pdv/cntpdv,其中cntpdv為在商品p在維度d上投票給值v的用戶的個數(shù)。用戶分值SP(Uu)計算如下:
(3)構(gòu)建權(quán)值方程組
根據(jù)上述的用戶及商品屬性的權(quán)值計算分值SP(product|ax)和SP(Uu),建立M+N*V元一次方程組,其中商品的總數(shù)為N,用戶的總數(shù)為M,V為每個維度上維度值集合元素個數(shù),通過迭代的方式求解權(quán)值方程組得到每個商品對應屬性的權(quán)值及用戶權(quán)值。
所述搜索詞擴展模塊首先生成web頁面對象,其對應搜索引擎web頁面集中的一條記錄,該對象包含三部分:數(shù)據(jù)ID,代表該條數(shù)據(jù)的引用地址;數(shù)據(jù)值,指具體的數(shù)據(jù);排序?qū)傩粤斜?,代表分級的排序邏輯對應的排序?qū)傩灾刀嗑S列表,并降維得到一維排序?qū)傩粤斜?,這些排序?qū)傩灾蹈鶕?jù)等級的優(yōu)先級由高到低存儲在一個數(shù)組中,在兩個排序?qū)傩粤斜肀容^時根據(jù)優(yōu)先級進行對比。該web頁面對象數(shù)組是一個公共的數(shù)據(jù)池,通過數(shù)據(jù)ID對里面的各個數(shù)據(jù)進行引用,并維護一個以web頁面對象中的數(shù)據(jù)值為鍵的web頁面對象散列表。
然后生成搜索詞對象包括以下元素:搜索詞、數(shù)據(jù)ID對象列表及數(shù)據(jù)ID對象候選列表。其中搜索詞是由公共數(shù)據(jù)池的里面web頁面對象中的數(shù)據(jù)值屬性劃分得到,每個數(shù)據(jù)值根據(jù)長度遞增的方式劃分得到多個搜索詞;一個數(shù)據(jù)ID對象是由web頁面ID及排序數(shù)據(jù)值列表兩個元素組成的,數(shù)據(jù)ID對象列表是指一個搜索詞對應的有效的數(shù)據(jù)ID對象列表;數(shù)據(jù)ID對象候選列表用于補充數(shù)據(jù)ID對象列表。
搜索詞擴展內(nèi)容的生成過程是在遍歷web頁面的過程中進行的,將web頁面按照搜索詞長度遞增的規(guī)則逐個劃分web頁面,在劃分的過程中對劃分的搜索詞進行轉(zhuǎn)換形成搜索詞列表,將各個搜索詞作為鍵存放到散列表中。具體描述如下:
1.將web頁面根據(jù)內(nèi)存結(jié)構(gòu)要求存儲在內(nèi)存,遍歷搜索web頁面列表;
2.轉(zhuǎn)換并劃分每條web頁面形成搜索詞列表;
3.根據(jù)各個搜索詞的排序?qū)傩灾盗斜頉Q定將對應的web頁面ID插入數(shù)據(jù)ID列表還是數(shù)據(jù)ID候選列表中;
4.生成搜索web頁面的搜索詞對象散列表,該散列表包含填充的數(shù)據(jù)ID列表及數(shù)據(jù)ID候選列表。
其中每條數(shù)據(jù)的劃分流程是核心部分,具體描述如下:
將web頁面對象的數(shù)據(jù)值進行轉(zhuǎn)換成多種類型的數(shù)據(jù)值集合;對數(shù)據(jù)值集合每條數(shù)據(jù)值根據(jù)搜索詞長度遞增的方式進行劃分;根據(jù)劃分的搜索詞列表作為鍵搜索搜索詞散列表,查找成功,則轉(zhuǎn)上文步驟3;根據(jù)內(nèi)存數(shù)據(jù)結(jié)構(gòu)建立搜索詞對象加入散列表中。
web頁面智能處理模塊生成信息約束集合及其優(yōu)化過程的詳細步驟包括:
1.首先將樣本解析成文檔對象樹節(jié)點集合:
Spot_U{Spot1,Spot2,...SpotN},其中SpotN∈文檔對象樹節(jié)點;
按照字段或類型劃分維度
Info_dim(Dim1,Dim2...DimM},其中DimM表示信息的第M字段;
再將這些維度對應的信息節(jié)點結(jié)果用如下的集合表述
U_Info{SpotXl,SpotX2,SpotX3...SpotXm},SpotXi∈Spot_U;
U_Info集合即信息提取的最終結(jié)果節(jié)點集;
2.從節(jié)點分布區(qū)域,節(jié)點展現(xiàn)形式,以及節(jié)點內(nèi)部組織規(guī)律分析集合Spot_U中每個節(jié)點屬性,并根據(jù)屬性的差異進行集合等價劃分;
3.計算集合U_Info中每個節(jié)點自身的約束關(guān)系:記錄U_Info中每個節(jié)點在各個劃分所定義的屬性的值,即分別計算維度Info_dim對應的節(jié)點集合中的每個節(jié)點出現(xiàn)在步驟2中的哪些集合中,得到U_Info上節(jié)點的約束集合;
4.計算維度之間的約束關(guān)系:取U_Info中任意兩個節(jié)點,選取一個節(jié)點的屬性,計算這個屬性上所定義的各個二元距離關(guān)系:
|Dim(i)Attr-Dim(j)Attr|<σ
其中i,j指任意的兩個維度,Attr指維度的每個屬性,σ設(shè)定的閾值,并通過訓練自動調(diào)整;
5.按照以上步驟計算完所有樣本。通過上述計算得到兩種類型的集合:(1)在特定的屬性上,信息的特定維度所取的值的范圍,即節(jié)點或維度自身的約束條件集合;(2)維度間約束條件集合,得出在多個維度在特定節(jié)點屬性上的二元關(guān)系集合;
6.合并維度內(nèi)部節(jié)點在屬性或值屬性上的等價關(guān)系;通過步驟3至5,記錄了所有的樣本特定維度在特定屬性上的值,記為
Value_Cnt{(Vl,cnt1),(V2,cnt2)...(Vn,cntN)],其中N為值的種類數(shù);
對于等價關(guān)系的合并,計算分成兩種類型:
(1)如果是離散型的屬性值,采用統(tǒng)計概率計算在此屬性上此維度的節(jié)點取這個值的概率Pvi,公式為:
Cnt其中i取[0,N]
對于連續(xù)型的屬性值,服從期望為μ,標準差為δ的正態(tài)概率分布,其中:
μ=V1*PV1+V2*PV2+…+Vn*PVn
7.對不同維度之間可能存在的關(guān)系進行計算分析。對比較關(guān)系的合并,取大于,小于,等于作為枚舉值的離散型數(shù)值屬性。按照步驟4得到比較關(guān)系的概率值,將在不同樣本頁中分布相同的情況進行合并,不同的關(guān)系去除;對于距離關(guān)系的合并,將各個距離值作為取值的點,作為樣本值的連續(xù)性數(shù)值屬性。按照步驟4得到距離關(guān)系的概率值,計算距離值覆蓋的范圍,確定分布的區(qū)域;以從所有樣本集的角度確定維度之間存在的關(guān)系。
8.用等價關(guān)系約束集合以及多個維度在同一屬性上的關(guān)系約束去檢查每個樣本。
(1)假設(shè)每個維度值集里面元素的個數(shù)都為1,得出的結(jié)果集為:
Result{Udi(Nij|j∈(1,m})|i∈{1,n}}
若在維度d1上的結(jié)果集為Ud1(Nxi,…Nxm),在維度d2上的結(jié)果集為Ud2(Nxi,…Nyn),在d1和d2上有二元關(guān)系集UR(R1,...Rn),取Ud1和Ud2的組合:
Ud12((Nxi,Nyj)|j∈(1,m})|i∈{1,n}}
遍歷上述節(jié)點對,定義滿足UR上所有的二元關(guān)系節(jié)點對的集合。
(2)得到從所有的維度任意選取兩個維度的枚舉,遍歷這個組合,對于每兩個維度的組合,重復步驟(1);
(3)如果最后得出的結(jié)果的集合只有1個,則確定在以上劃分的集合上,通過等價關(guān)系以及維度之間的二元關(guān)系可以正確的識別出信息的各個維度,如果結(jié)果多余1個,則增加更多的約束。
9.如果步驟8不能得出正確的結(jié)果,則用值的比較序列取最大或最小值來確定。對結(jié)果集的每個節(jié)點,獲取可比較的屬性,通過有限的極值序列來從結(jié)果集中得出實際值。
10.如果通過計算所有樣本得到公共的極值序列集合U_info不為空集,則認為在劃分集合上,信息Info_dim是可識別的。如果U_info為空集,且通過其他兩種得出的結(jié)果大于實際結(jié)果,則認為在劃分集合上,信息Info_dim是不可識別的。此時細化劃分,或者增加新的劃分。
11.假設(shè)信息Info_dim在劃分集合上是可識別的,輸出以上三種約束集合;若為不可識別,給出所有的根據(jù)其他兩種約束得出的結(jié)果集,通過人工的觀察結(jié)果集和正確結(jié)果,來獲得他們之間區(qū)別的知識,并添加到劃分集合中重新計算。
通過以上的計算分析過程,最終將得到一組與信息提取維度相關(guān)的規(guī)則約束集合,將這些約束集合及維度信息配置到模板中,用于信息提取。
在約束集合的基礎(chǔ)上,通過節(jié)點劃分對需要解析的頁面進行處理劃分,然后根據(jù)訓練生成的約束集合篩選合適的信息節(jié)點,從而完成信息的提取。
首先生成信息集合:
1.將輸入的頁面解析成文檔樹;
2.遍歷文檔樹上的所有節(jié)點;
3.獲取文檔樹的一個節(jié)點;
4.判斷該節(jié)點是否為注釋節(jié)點,如果是,執(zhí)行步驟3,否則,執(zhí)行下一步;
5.將該節(jié)點添加到信息集合中;
6.判斷文檔樹是否還有節(jié)點沒有遍歷,如果有,執(zhí)行步驟3,否則執(zhí)行下一步;
7.輸出得到的信息集合U(Nl,N2...Nn),按照預定義的節(jié)點分類規(guī)則,將每個元素都存儲在它所屬的子集中;然后進行歸類合并,將同一個節(jié)點不同特征值進行合并,生成以元素為鍵,特征元組為值的查找表。
然后對每個維度自身包含的候選節(jié)點集合處理,首先對這些節(jié)點按照約束規(guī)則進行分類,然后根據(jù)指定的排序規(guī)則對分類后得到的多個塊集合分別進行塊內(nèi)排序,然后按照配置的條件分別取每塊的TopN個元素作為候選結(jié)果集。具體如下:
讀取每個維度的排序約束條件;然后對該維度進行分類篩選出滿足排序規(guī)則的節(jié)點集合;將節(jié)點集合存儲到排序劃分約束查找表中;判斷是否還有維度沒有處理過,如果有,迭代執(zhí)行分類篩選的步驟,否則輸出所得到的排序約束劃分查找表。
在提取過程中,對所得出的關(guān)聯(lián)約束查找表,獲取一個維度的候選節(jié)點集合;確定集合中的元素的個數(shù)是1,如果是,則根據(jù)需求提取該節(jié)點的相關(guān)內(nèi)容信息,即去除頁面的標記以及相關(guān)格式信息,將該信息保存到以維度為鍵值,節(jié)點信息內(nèi)容為值對的信息集合中;輸出得到的信息體集合,完成信息提取,結(jié)束此過程;將此頁面連接、維度標識及其候選節(jié)點集合寫入錯誤處理日志中。
綜上所述,本發(fā)明提出了一種web頁面信息搜索方法,克服了字符串配對式搜索的瓶頸,提高了搜索結(jié)果的精確性,并實現(xiàn)了智能高效搜索,能夠適應各類業(yè)務的需求。
顯然,本領(lǐng)域的技術(shù)人員應該理解,上述的本發(fā)明的各模塊或各步驟可以用通用的計算系統(tǒng)來實現(xiàn),它們可以集中在單個的計算系統(tǒng)上,或者分布在多個計算系統(tǒng)所組成的網(wǎng)絡(luò)上,可選地,它們可以用計算系統(tǒng)可執(zhí)行的程序代碼來實現(xiàn),從而,可以將它們存儲在存儲系統(tǒng)中由計算系統(tǒng)來執(zhí)行。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。
應當理解的是,本發(fā)明的上述具體實施方式僅僅用于示例性說明或解釋本發(fā)明的原理,而不構(gòu)成對本發(fā)明的限制。因此,在不偏離本發(fā)明的精神和范圍的情況下所做的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。此外,本發(fā)明所附權(quán)利要求旨在涵蓋落入所附權(quán)利要求范圍和邊界、或者這種范圍和邊界的等同形式內(nèi)的全部變化和修改例。