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