專利名稱:信息對象搜索的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于計算機科學技術(shù)領(lǐng)域語義搜索分支,具體涉及一種信息對象搜索的方法和裝 置,適用于網(wǎng)絡(luò)信息提取、全文搜索和語義搜索、商業(yè)情報挖掘、信息聚合、網(wǎng)絡(luò)知識庫建 立、手機搜索等應(yīng)用領(lǐng)域。
背景技術(shù):
査準率和查全率是衡量搜索引擎的兩個重要指標,但是對于海量的綜合的搜索引擎來說, 由于互聯(lián)網(wǎng)信息過剩,重復率很高,對于一般的檢索請求,在上述兩個指標并不是很優(yōu)秀的 情況下,仍然能夠給客戶提供較滿意的搜索結(jié)果。但是,如果用戶要檢索一些強結(jié)構(gòu)化的信 息(下文將其稱為信息對象,或簡稱對象,就像面向?qū)ο缶幊汤锩娴膶ο笠粯?,是強結(jié)構(gòu)化 的,其結(jié)構(gòu)由可嵌套的對象屬性(property)構(gòu)造),普通的綜合搜索引擎很難給出滿意的結(jié) 果,例如,用戶搜索最近發(fā)布的跟PHP編程有關(guān)的威客項目,或者近期將在深圳舉辦的個人 鋼琴表演活動,幾乎當前所有的主流搜索引擎不能給出滿意的結(jié)果。這類信息一方面是強結(jié) 構(gòu)化的,其信息結(jié)構(gòu)表達豐富的語義信息但是信息內(nèi)容文字數(shù)量很小,而普通的綜合搜索引 擎難于有效利用這些語義信息;另一方面,這類信息對象往往是有生命周期的,普通的搜索 引擎的索引策略,例如,經(jīng)典的PageRank,沒有很好的利用和管理代表其生命周期的信息。
垂直搜索是一個比較有效的解決方案,垂直搜索將索引的內(nèi)容專注于某個特定領(lǐng)域或者 行業(yè),采用定制的網(wǎng)絡(luò)爬蟲、內(nèi)容存儲和索引算法和搜索結(jié)果呈現(xiàn)方法,提高查準率。例如, 使用定題爬蟲和定題搜索方法,為特定幾個網(wǎng)站的內(nèi)容進行索引和搜索。在用戶操作界面上, 一般提供類似于數(shù)據(jù)庫査詢的操作接口,例如,査詢深圳到北京的航班信息或者査詢某個商 品的價格等等,像關(guān)系數(shù)據(jù)庫査詢一樣能夠獲得幾乎是完美的査準率。雖然,定制開發(fā)的垂 直搜索比較好地解決了領(lǐng)域內(nèi)的信息搜索問題,但是形成了一個信息孤島,難于實現(xiàn)異構(gòu)信 息的共享、交換和檢索。綜合搜索引擎也提供垂直化的搜索手段,例如,新聞搜索、博客搜 索、論壇搜索等等,然而這種語義的劃分是一種粗粒度的分類,不能貼切地反映被搜索內(nèi)容 的語義。
語義網(wǎng)絡(luò)的一個重要目標將所有信息孤島連接起來,促進信息的共享和交換,首先,被 交換和共享的信息必須含有語義結(jié)構(gòu)元數(shù)據(jù),才能夠被智能代理或者其它各種計算機程序自動識別和處理,采用的技術(shù)手段可以是XML和RDF技術(shù)等等,例如,如果搜索引擎能夠識別 代表信息對象生命周期的信息的語義,那么就可以解決前面述及的搜索引擎的缺陷;其次, 在具有語義結(jié)構(gòu)的互聯(lián)網(wǎng)內(nèi)容之上通過建立知識模型,例如采用OWL技術(shù),由計算機程序?qū)?現(xiàn)基于知識的推理等智能運算。
然而要全面實現(xiàn)語義網(wǎng)絡(luò),必須有效地跨出基礎(chǔ)性的一步——互聯(lián)網(wǎng)信息的結(jié)構(gòu)化(在 英文文獻中,結(jié)構(gòu)化的內(nèi)容稱為data sets,也就是本文所說的信息對象),即使這一步也沒 有行之有效的可商用的解決方案。人們試圖解決這個問題,涌現(xiàn)出各種方法,大致可以分成 兩類,第一類是在網(wǎng)頁中直接嵌入元數(shù)據(jù),指導計算機程序識別被標記的內(nèi)容的語義,例如, Microformat可以作為這一類的代表,然而按照統(tǒng)一的標準的語義標記重新書寫現(xiàn)有的互聯(lián) 網(wǎng)頁面是不可行的,改寫成本難于承擔,而且標準討論和達成一致的過程很漫長;另外一類 采用一些自適應(yīng)的方法,企圖從互聯(lián)網(wǎng)頁面內(nèi)容中識別出語義信息,然而這類方法基本上還 處于研究或者實驗階段,識別的準確度有待提高,而且實現(xiàn)難度過高,短時間內(nèi)難于普及應(yīng) 用。
從另一個角度分析,垂直搜索甚至關(guān)系數(shù)據(jù)庫査詢系統(tǒng)具有很高的查準率,得益于用戶 知曉被査詢信息的元數(shù)據(jù)或者系統(tǒng)將元數(shù)據(jù)提示給用戶,例如,用戶査詢威客項目時,系統(tǒng) 提供査詢界面上給出了多個字段,"類別"、"時間段"、"關(guān)鍵字"等等,用戶可以按字段提供 査詢條件,經(jīng)過多個條件的綜合約束,將査詢范圍變得很狹窄。但是,綜合搜索系統(tǒng)中,與 某個關(guān)鍵詞關(guān)聯(lián)的語義很廣泛,也就是說一個關(guān)鍵詞可能會落入多個不同的語義范疇,如果 這些語義范疇都用不同的語義結(jié)構(gòu)建模,那么與該關(guān)鍵詞關(guān)聯(lián)的語義結(jié)構(gòu)千差萬別,用戶猜 不出目標語義結(jié)構(gòu)而系統(tǒng)也給不出一個按字段査詢的界面。例如,在綜合搜索引擎中,用戶 輸入"最新PHP編程威客項目",想找到與PHP編程有關(guān)的威客項目而且還是沒有結(jié)標的項 目(最新)幾乎是不可能的。
隨著移動數(shù)據(jù)業(yè)務(wù)的普及,用戶越來越多的使用手機搜索,用戶使用桌面計算機搜索信 息往往是一種探索性的行為,經(jīng)常樂于翻看搜索引擎提供的多頁搜索結(jié)果。而手機搜索往往 是一種即興的、短暫的行為,而且用戶還希望一搜即得,獲得某個特定信息對象或者怎樣獲 得該對象的準確的建議。這進一步提高了對信息對象査準率的要求。
本發(fā)明的方法和裝置解決了上述問題,用于建立綜合搜索系統(tǒng),使用具有語義結(jié)構(gòu)識別 能力的綜合網(wǎng)絡(luò)爬蟲提取互聯(lián)網(wǎng)內(nèi)容,所述綜合是指不局限于特定垂直領(lǐng)域,此網(wǎng)絡(luò)爬蟲利 用語義結(jié)構(gòu)知識庫識別目標網(wǎng)頁的語義結(jié)構(gòu),而不局限于特定主題的內(nèi)容;本方法和裝置將 提取到的內(nèi)容格式化成有語義結(jié)構(gòu)的信息對象,并且從語義知識庫中獲得索引信息對象的信息屬性的指令,分別索引各信息屬性,而不是將整個對象的所有內(nèi)容當成一段文字進行索引; 最后,用戶不必按字段輸入査詢條件,就像使用綜合搜索服務(wù)一樣,僅僅輸入被查對象可能 包含的文本短語或者關(guān)鍵字,本發(fā)明的方法和裝置根據(jù)相關(guān)性給出多個搜索結(jié)果,同時,提 供一個層次化的語義導航樹,用戶通過點擊導航樹節(jié)點,提煉搜索結(jié)果集,快速定位被搜索 的對象,最適于手機或者數(shù)字電視等沒有全尺寸字符鍵盤的終端使用。
發(fā)明內(nèi)容
本發(fā)明公開了一種信息對象搜索的方法和裝置,根據(jù)本發(fā)明的一個方面,提供了一種信 息對象搜索的方法,所述信息對象是有語義結(jié)構(gòu)的信息內(nèi)容,包括多個存在語義關(guān)聯(lián)關(guān)系的 信息屬性構(gòu)成,所述信息屬性是信息對象不同語義方面內(nèi)容的單元,所述語義結(jié)構(gòu)是語義元 數(shù)據(jù)的集合,元數(shù)據(jù)包括信息對象的特性、信息屬性的特性、信息對象和信息屬性之間的語 義關(guān)系、信息屬性之間的語義關(guān)系、本信息對象與其它有語義關(guān)聯(lián)的信息對象的關(guān)系等。其 特征在于,所述方法包括
(1) 建設(shè)語義結(jié)構(gòu)和網(wǎng)絡(luò)資源URI或其前綴的關(guān)聯(lián)庫;
(2) 使用目標網(wǎng)頁URI査詢關(guān)聯(lián)庫,獲得語義結(jié)構(gòu);
(3) 根據(jù)語義結(jié)構(gòu),提取網(wǎng)頁信息并建立索引;
(4) 響應(yīng)用戶搜索請求,按相關(guān)性排序提供搜索結(jié)果的同時提供層次化語義導航樹;
(5) 用戶點擊語義導航樹的節(jié)點時,給用戶提供精煉的搜索結(jié)果。
根據(jù)本發(fā)明的另一個方面,提供了一種信息對象搜索的裝置,其特征在于,所述裝置包
括
語義結(jié)構(gòu)編輯單元為語義結(jié)構(gòu)編輯人員提供用戶界面和編輯工具,生成{語義結(jié)構(gòu),網(wǎng) 絡(luò)資源URI)二元組;
語義結(jié)構(gòu)管理單元將網(wǎng)絡(luò)資源URI解析成路徑分解序列,向語義結(jié)構(gòu)和網(wǎng)絡(luò)資源URI 或其前綴的關(guān)聯(lián)庫發(fā)送語義結(jié)構(gòu)的插入或者刪除或者修改請求;
語義結(jié)構(gòu)和網(wǎng)絡(luò)資源URI關(guān)聯(lián)庫存儲和管理語義結(jié)構(gòu)和網(wǎng)絡(luò)資源URI或者URI前綴
的關(guān)聯(lián)關(guān)系樹,對外提供語義結(jié)構(gòu)査詢接口和語義結(jié)構(gòu)管理接口。查詢語義結(jié)構(gòu)時,按照盡
可能深的匹配原則,定位到最深的節(jié)點,按優(yōu)先級排列所有此查找路徑上的語義結(jié)構(gòu);插入 語義結(jié)構(gòu)時,修剪存儲樹,找出合適的節(jié)點存儲語義結(jié)構(gòu);網(wǎng)絡(luò)內(nèi)容提取單元由網(wǎng)絡(luò)爬蟲和內(nèi)容提取器組成,、網(wǎng)絡(luò)爬蟲根據(jù)爬行任務(wù)列表中的目 標網(wǎng)絡(luò)資源的地址下載網(wǎng)絡(luò)資源,通過語義結(jié)構(gòu)査詢單元査詢語義結(jié)構(gòu),驗證所有語義結(jié)構(gòu) 的適應(yīng)性,由內(nèi)容提取器根據(jù)語義結(jié)構(gòu)提取目標網(wǎng)絡(luò)資源的內(nèi)容,并格式化成語義結(jié)構(gòu)規(guī)定 的格式,產(chǎn)生結(jié)構(gòu)化的信息對象,并提交給信息對象索引單元進行索引和存儲。另一方面, 還根據(jù)語義結(jié)構(gòu)的定義,識別出語義相關(guān)的其它網(wǎng)絡(luò)資源的URI,將新發(fā)現(xiàn)的{語義結(jié)構(gòu),網(wǎng) 絡(luò)資源皿}二元組提交給語義結(jié)構(gòu)和網(wǎng)絡(luò)資源URI或其前綴關(guān)聯(lián)庫保存;
語義結(jié)構(gòu)査詢單元將網(wǎng)絡(luò)資源URI解析成路徑分解序列,向語義結(jié)構(gòu)和網(wǎng)絡(luò)資源URI 或其前綴關(guān)聯(lián)庫發(fā)送語義結(jié)構(gòu)査詢請求,獲得一個有優(yōu)先級的語義結(jié)構(gòu)序列;
信息對象索引單元接收網(wǎng)絡(luò)內(nèi)容提取單元發(fā)送來的格式化后的信息對象,按照語義結(jié) 構(gòu)的規(guī)定,為信息對象建立索引,存儲到信息對象索引序中;
信息對象索引庫是信息對象的數(shù)齒庫r存儲和管理信息對象內(nèi)容、所屬的語義結(jié)構(gòu)id、 以上內(nèi)容的索引等信息;
信息對象搜索單元提供用戶搜索界面,分析用戶輸入的搜索條件文本,產(chǎn)生査詢指令, 分頁展現(xiàn)符合査詢條件的信息對象,同時展現(xiàn)語義導航樹。
圖1是語義結(jié)構(gòu)和網(wǎng)絡(luò)資源URI或其前綴關(guān)聯(lián)庫的存儲樹結(jié)構(gòu)
圖2是根據(jù)本發(fā)明的優(yōu)選實施例的建設(shè)語義結(jié)構(gòu)和網(wǎng)絡(luò)資源URI或其前綴的關(guān)聯(lián)庫的流 程圖 '
圖3是根據(jù)本發(fā)明的優(yōu)選實施例的查找關(guān)聯(lián)庫存儲樹并存儲語義結(jié)構(gòu)的流程圖
圖4是根據(jù)本發(fā)明的優(yōu)選實施例的修剪關(guān)聯(lián)庫存儲樹并確定當前節(jié)點的流程圖
圖5是根據(jù)本發(fā)明的優(yōu)選實施例的處理用戶搜索請求的流程圖
圖6是根據(jù)本發(fā)明的優(yōu)選實施例呈現(xiàn)出來的搜索結(jié)臬頁面
圖7是根據(jù)本發(fā)明的優(yōu)選實施例呈現(xiàn)出來的使用語義導航經(jīng)過提煉的搜索結(jié)果頁面 圖8是根據(jù)本發(fā)明的優(yōu)選實施例的信息對象搜索的裝置的分解圖
具體實施例方式
下面結(jié)合附圖對本發(fā)明的優(yōu)選實施例進行詳細的說明。圖1是語義結(jié)構(gòu)和網(wǎng)絡(luò)資源URI或其前綴關(guān)聯(lián)庫的存儲樹結(jié)構(gòu)。深度0只有一個節(jié)點, 即根節(jié)點,這是一個虛擬的節(jié)點。網(wǎng)絡(luò)資源URI可以分解成多個部分stepn,根據(jù)URI規(guī)范 RFC2396,通常采用以下格式
<scheme>:〃<authority><path> <query> 本發(fā)明所述網(wǎng)絡(luò)資源URI前綴是指只有上述格式的前面幾個部分。
命名機制(scheme)和主機名(authority部分)構(gòu)成深度為1的節(jié)點,路徑(path)部分 可以進一步分解成多步,例如, 網(wǎng)絡(luò)資源 http:〃www.gooseeker.com/cn/node/document/metastudio/operationv3/bookfront,命名機帝U http禾口 主機名 www.gooseeker.com 共同構(gòu)成深度是 1 的節(jié)點,路徑 /cn/node/document/metastudio/operationv3/bookfront , 可以分解成{cn, node, document, metastudio,operationv3,bookfront)6步,每一步對應(yīng)一個節(jié)點,而且深度遞增,從深度2到7。 在所有節(jié)點上都可以存儲語義結(jié)構(gòu),如圖所示,圓圈表示一個節(jié)點,代表一步。舉例來說,
(注釋節(jié)點編號第一位數(shù)字表示深度,后三位數(shù)字表示在某個深度下的節(jié)點序號),節(jié)點
3002上存有語義結(jié)構(gòu)10,在節(jié)點2001上存儲語義結(jié)構(gòu)6,而節(jié)點2001是節(jié)點3002的祖先 (本例是直接父節(jié)點),對于節(jié)點3002來說,語義結(jié)構(gòu)10相比語義結(jié)構(gòu)6更有特定意義,而 語義結(jié)構(gòu)6描述了節(jié)點3001和節(jié)點3002共同的語義方面,相反,語義結(jié)構(gòu)10描述了節(jié)點 3002特有的語義方面。當査詢對應(yīng)于節(jié)點3002的網(wǎng)絡(luò)資源的語義結(jié)構(gòu)時,會得到一個語義 結(jié)構(gòu)序列{語義結(jié)構(gòu)10,語義結(jié)構(gòu)6,語義結(jié)構(gòu)1},優(yōu)先級遞減。本發(fā)明的優(yōu)選實施例利用 語義結(jié)構(gòu)產(chǎn)生校驗規(guī)則指令,針對某個頁面進行校驗,檢査該語義結(jié)構(gòu)是否適合此頁面。
圖2是根據(jù)本發(fā)明的優(yōu)選實施例的建設(shè)語義結(jié)構(gòu)和網(wǎng)絡(luò)資源URI或其前綴的關(guān)聯(lián)庫的流 程圖。首先在步驟201,接受輸入的語義結(jié)構(gòu)和網(wǎng)絡(luò)資源URI或者URI的前綴,組成一個二 元組。根據(jù)本發(fā)明的優(yōu)選實施例,從兩個渠道輸入語義結(jié)構(gòu)和網(wǎng)絡(luò)資源URI或者URI的前綴, 分別是第一,語義結(jié)構(gòu)編輯人員使用根據(jù)本發(fā)明的優(yōu)選實施例提供的語義結(jié)構(gòu)編輯工具為 某網(wǎng)絡(luò)資源編輯完語義結(jié)構(gòu)后,提交存儲;第二,根據(jù)本發(fā)明的優(yōu)選實施例的網(wǎng)絡(luò)內(nèi)容提取 單元提取網(wǎng)絡(luò)資源上的超鏈接,在當前頁面的語義結(jié)構(gòu)中存有這些超鏈接所指向的網(wǎng)絡(luò)資源 的語義結(jié)構(gòu),所以,將這些超鏈接指向的網(wǎng)絡(luò)資源的URI和其語義結(jié)構(gòu)作為輸入。
接著在步驟202,生成網(wǎng)絡(luò)資源URI或者URI前綴的路徑分解序列,例如,將http:〃www.gooseeker,com/cn/node/document/metastudio/operationv3/bookfront 分 解 成 {http:〃www.gooseeker.com, cn, node, document, metastudio, operationv3, bookfront}。
接著在步驟203,査找語義結(jié)構(gòu)和網(wǎng)絡(luò)資源URI或其前綴的關(guān)聯(lián)庫的存儲樹,定位到合 適的樹節(jié)點,在此節(jié)點上存儲本語義結(jié)構(gòu)。定位過程中需要修改存儲樹的拓撲結(jié)構(gòu),這個過 程在圖3和圖4中詳細分解。
圖3是根據(jù)本發(fā)明的優(yōu)選實施例的査找關(guān)聯(lián)庫存儲樹并存儲語義結(jié)構(gòu)的流程圖。該流程 的査找過程是一個循環(huán),從根節(jié)點開始查找與某網(wǎng)絡(luò)資源URI或者URI前綴的路徑分解序列 D—致的存儲樹分支,假設(shè)已經(jīng)循環(huán)到序列D中的stepn這一步了,也就是說stepn及其以前 各步連接成的一段分支已經(jīng)在存儲樹上找到了。首先在步驟301,用一個程序指針currentNode 指向當前節(jié)點,所述當前節(jié)點表示査找存儲樹過程中當前時刻達到的節(jié)點,該節(jié)點對應(yīng)路徑 分解序列中的stepn步;
接著在步驟302,變量S是一個程序指針,指向路徑分解序列中的當前考察的元素,給 變量S賦值S^tepn+i,表示當前處理路徑分解序列中的第step^步;
接著在步驟303,査找當前節(jié)點的子節(jié)點,檢査是否已經(jīng)存在一個子節(jié)點對應(yīng)S,是則執(zhí) 行步驟304,否則執(zhí)行步驟308;
接著在步驟304,表示在存儲樹上找到一個既有的對應(yīng)S的節(jié)點,那么,修改currentNode 指針,指向這個節(jié)點,表示査找存儲樹時向深度方向推移一級;
接著在步驟305,檢查當前節(jié)點(也就是currentNode指針指向的節(jié)點)上是否存有本語 義結(jié)構(gòu),是則完成本次査找關(guān)聯(lián)庫存儲樹存儲語義結(jié)構(gòu)的流程;否則執(zhí)行步驟306;
接著在步驟306,檢査路徑分解序列是否還有未處理的元素,是則執(zhí)行步驟307,否則執(zhí) 行步驟309;
接著在步驟307,修改指針S,指向路徑分解序列中的下一個元素,然后返回步驟303, 再次進入上述循環(huán)過程;
接著在步驟308,表示當前節(jié)點的子節(jié)點中找不到與S步對應(yīng)的節(jié)點,那么需要一個子 過程,建立一個新的存儲樹的分支,并且在處理過程中,根據(jù)需要修剪存儲樹原有的拓撲結(jié) 構(gòu),這個子過程在圖4中詳解;
接著在步驟309, currentNode指針指向的當前節(jié)點確定為存儲本語義結(jié)構(gòu)的節(jié)點,存儲 語義結(jié)構(gòu),完成本次査找關(guān)聯(lián)庫存儲樹并存儲語義結(jié)構(gòu)的流程。圖4是根據(jù)本發(fā)明的優(yōu)選實施例的修剪關(guān)聯(lián)庫存儲樹并確定當前節(jié)點的流程圖,是圖3 所示的步驟308的進一步分解圖。首先在步驟401,査找當前節(jié)點的所有子樹,檢査是否在 某個子樹的某級節(jié)點上己經(jīng)存有本語義結(jié)構(gòu),是則執(zhí)行步驟403,否則執(zhí)行步驟406;
接著在步驟403,為每個存有本語義結(jié)構(gòu)的子樹執(zhí)行本步驟,刪除此子樹上的以前存儲 的本語義結(jié)構(gòu);
接著在步驟404,檢査該子樹上是否還有其它語義結(jié)構(gòu),或者從己經(jīng)刪去本語義結(jié)構(gòu)的 節(jié)點開始向深去的節(jié)點上是否還有其他語義結(jié)構(gòu),是則執(zhí)行步驟410,否則執(zhí)行步驟405;
接著在步驟405,如果存儲樹的分支上已經(jīng)沒有任何語義結(jié)構(gòu),則刪除此分支;
接著在步驟406,表示所有子樹上都沒有存儲本語義結(jié)構(gòu),也就是說本語義結(jié)構(gòu)是新的, 那么需要建立存儲樹的新的分支存儲本語義結(jié)構(gòu),在本步驟為S步建立節(jié)點; 接著在步驟407,修改當前節(jié)點指針currentNode,指向該新建的節(jié)點;
接著在步驟408,檢査路徑分解序列是否還有未處理的元素,是則執(zhí)行步驟409,否則執(zhí) 行步驟410;
接著在步驟409,修改指針S,指向路徑分解序列中的下一個元素,然后返回步驟406, 再次進入建立新分支的循環(huán)中;
接著在步驟410,在currentNode指向的當前節(jié)點上存儲本語義結(jié)構(gòu),完成本次査修剪關(guān) 聯(lián)庫存儲樹并確定當前節(jié)點的流程
圖5是根據(jù)本發(fā)明的優(yōu)選實施例的處理用戶搜索請求的流程圖,首先在步驟501,接受 用戶輸入的搜索條件, 一般是一組關(guān)鍵詞或者短語,也可以包括搜索指令,例如"description: 編程",表示在"description"字段搜索"編程"關(guān)鍵字;
接著在步驟502,解析用戶輸入的搜索條件,生成根據(jù)本發(fā)明的優(yōu)選實施例的引擎能夠 接受的搜索指令,執(zhí)行后,獲得一個搜索結(jié)果集合;
接著在步驟503,如果搜索結(jié)果集合很大,搜索結(jié)果需要分頁顯示,那么從搜索結(jié)果集 合中將用戶要求的那一頁的搜索結(jié)果取出來,這些搜索結(jié)果也就是本發(fā)明所述的信息對象, 信息對象中記錄所屬的語義結(jié)構(gòu)的ID,根據(jù)ID從語義結(jié)構(gòu)和網(wǎng)絡(luò)資源URI或其前綴關(guān)聯(lián)庫 中査詢得到語義結(jié)構(gòu)信息;
接著在步驟504,根據(jù)每個信息對象的語義結(jié)構(gòu),生成信息對象的顯示格式;接著在步驟505,從用戶要求的那一頁開始,向后(即頁碼增大的方向)再獲取N頁的 搜索結(jié)果,其中N是一個配置參數(shù),將所有不同的語義結(jié)構(gòu)匯集在一起。根據(jù)本發(fā)明的優(yōu)選 實施例匯集語義結(jié)構(gòu)的方法是一種簡單的順序查找的方法,為了盡快(N越小花費的時間越 少)而且更全面的査找不同的語義結(jié)構(gòu),可以采用其它的方法,例如,根據(jù)本發(fā)明的另一個 實施例采用Lucene搜索引擎,修正Lucene原有的評分計算公式,其中一種方法是進行兩階 段評分,第一階段,使用 Lucene 原有的評分公式(參考 [http:〃lucene.apache.org/java/2一4—1/api/org/apache/lucene/search/Similarity.html]) , i十算i平分并t艮 據(jù)得分排列搜索結(jié)果;第二階段,為遇到的每個語義結(jié)構(gòu)維護一個評分平抑參數(shù)inhibit(s), s 表示語義結(jié)構(gòu),第一次遇到語義結(jié)構(gòu)時,該參數(shù)初始化為l,隨著重復遇到相同的語義結(jié)構(gòu), 根據(jù)某個函數(shù),減小該參數(shù)的取值,并且將該參數(shù)與原有評分相乘獲得新評分,最后,根據(jù) 新評分重新排列搜索結(jié)果。
接著在步驟506,將搜索結(jié)果頁顯示出來,并且在頁面的某個位置顯示符合搜索條件的 搜索結(jié)果的語義結(jié)構(gòu)的列表。因為語義結(jié)構(gòu)可以用樹表示,那么在頁面上為每個語義結(jié)構(gòu)顯 示一棵樹,樹的節(jié)點的顯示名可以是語義結(jié)構(gòu)名、語義結(jié)構(gòu)中規(guī)定的信息屬性名或者其它語 義關(guān)系名,而且每個節(jié)點用一個超鏈接表示,例如,HTML頁面的A元素,用戶點擊這些超 鏈接,可以重新發(fā)起搜索結(jié)果提煉請求,將搜索結(jié)果局限于用戶點擊的語義范圍內(nèi)。提煉搜 索結(jié)果的語義范圍還可以包括一些全局的特性,例如,如果搜索結(jié)果集中的信息對象含有表 示生命周期的信息屬性,可以將時間段或點作為提煉搜索結(jié)果的語義范圍。
圖6是根據(jù)本發(fā)明的優(yōu)選實施例呈現(xiàn)出來的搜索結(jié)果頁面,左欄是用于提煉搜索結(jié)果的 語義導航樹,其中包括按照時間段(例如,最近一周)提煉結(jié)果的導航節(jié)點。
圖7是根據(jù)本發(fā)明的優(yōu)選實施例呈現(xiàn)出來的使用語義導航經(jīng)過提煉的搜索結(jié)果頁面,就 是在圖6所示的頁面上面,點擊"威客項目"節(jié)點,將搜索結(jié)果限制在威客項目語義范疇內(nèi)。
信息對象搜索的裝置
圖8是根據(jù)本發(fā)明的優(yōu)選實施例的信息對象搜索的裝置的分解圖。
語義結(jié)構(gòu)編輯單元(801):為語義結(jié)構(gòu)編輯人員提供一個用戶界面,通過此界面,編輯
人員為一個或者一組網(wǎng)絡(luò)資源(例如Web頁面)定義語義結(jié)構(gòu)、指定該語義結(jié)構(gòu)與其它語義結(jié)構(gòu)的關(guān)系、指定信息對象及其信息屬性的索引參數(shù)等。完成編輯操作后,該單元將語義結(jié)
構(gòu)和關(guān)聯(lián)的網(wǎng)絡(luò)資源URI或者URI前綴(例如用于代表一組具有相同語義結(jié)構(gòu)的Web頁面)
提交給語義結(jié)構(gòu)管理單元(802);
語義結(jié)構(gòu)管理單元(802):解析網(wǎng)絡(luò)資源URI,將URI各組成部分分解開,也就是將 URI路徑按每一步分解開,產(chǎn)生一個URI路徑分解序列D^(stepi, step2, stepend},向語義 結(jié)構(gòu)和網(wǎng)絡(luò)資源URI或其前綴關(guān)聯(lián)庫(803)發(fā)送語義結(jié)構(gòu)的插入或者刪除或者修改請求;
語義結(jié)構(gòu)和網(wǎng)絡(luò)資源URI關(guān)聯(lián)庫(803):存儲和管理語義結(jié)構(gòu)和網(wǎng)絡(luò)資源URI或其前綴 關(guān)聯(lián)關(guān)系樹,對外提供語義結(jié)構(gòu)查詢接口和語義結(jié)構(gòu)管理接口,包括關(guān)聯(lián)關(guān)系的插入和刪除。 其它單元發(fā)起語義結(jié)構(gòu)査詢請求時,提交目標URI路徑分解序列,本單元査找關(guān)聯(lián)關(guān)系存儲 樹,按照盡可能深的匹配原則,定位到最深的節(jié)點,排列所有此査找路徑上的語義結(jié)構(gòu),越 深的語義結(jié)構(gòu)的優(yōu)先級越高。用最深匹配原則而不是精確匹配原則實現(xiàn)一組網(wǎng)絡(luò)資源內(nèi)容的 語義結(jié)構(gòu)的聚類,而且縮小關(guān)聯(lián)庫的大小。
當語義結(jié)構(gòu)編輯人員完成語義結(jié)構(gòu)編輯任務(wù)后會經(jīng)由語義結(jié)構(gòu)管理單元(802)向本單元 發(fā)起語義結(jié)構(gòu)插入或者刪除或者修改請求,另外,網(wǎng)絡(luò)內(nèi)容提取單元(804)識別出與當前語 義結(jié)構(gòu)有語義關(guān)系的新的網(wǎng)絡(luò)資源URI時,也會直接向本單元發(fā)起語義結(jié)構(gòu)插入請求。
插入請求消息中,語義結(jié)構(gòu)與URI路徑分解序列關(guān)聯(lián)在一起,序列中每一個元素與語義 結(jié)構(gòu)和網(wǎng)絡(luò)資源URI或其前綴關(guān)聯(lián)庫(803)的存儲樹中的一個節(jié)點對應(yīng),按照圖3和圖4 的詳細分解步驟査找語義結(jié)構(gòu)和網(wǎng)絡(luò)資源URI或其前綴關(guān)聯(lián)庫存儲樹并存儲語義結(jié)構(gòu);
網(wǎng)絡(luò)內(nèi)容提取單元(804):由網(wǎng)絡(luò)爬蟲和內(nèi)容提取器組成,網(wǎng)絡(luò)爬蟲從爬行任務(wù)列表中 取得一個目標網(wǎng)絡(luò)資源的地址,例如,網(wǎng)頁URL,下載該網(wǎng)絡(luò)資源,然后,向語義結(jié)構(gòu)査詢 單元(805)發(fā)送査詢語義結(jié)構(gòu)的請求,輸入?yún)?shù)是目標網(wǎng)絡(luò)資源的地址;請求響應(yīng)中返回一 個語義結(jié)構(gòu)序列,本單元按順序驗證所有語義結(jié)構(gòu)的適應(yīng)性,篩選出符合驗證規(guī)則的一個或 者多個語義結(jié)構(gòu)。內(nèi)容提取器根據(jù)這些語義結(jié)構(gòu),提取目標網(wǎng)絡(luò)資源的內(nèi)容,并格式化成語 義結(jié)構(gòu)規(guī)定的格式,產(chǎn)生結(jié)構(gòu)化的信息對象,并提交給信息對象索引單元(806)進行索引和 存儲。本單元除了提取和格式化目標網(wǎng)絡(luò)資源內(nèi)容以外,還根據(jù)語義結(jié)構(gòu)的定義,識別出語 義相關(guān)的其它網(wǎng)絡(luò)資源的URI,例如,Web HTML頁面中的超鏈接所指向的網(wǎng)絡(luò)資源,將識 別出的網(wǎng)絡(luò)資源URI和其語義結(jié)構(gòu)關(guān)聯(lián)在一起,將{語義結(jié)構(gòu),網(wǎng)絡(luò)資源URI)二元組提交給 語義結(jié)構(gòu)和網(wǎng)絡(luò)資源URI或其前綴關(guān)聯(lián)庫(803),擴充關(guān)聯(lián)庫;
語義結(jié)構(gòu)查詢單元(805):對目標網(wǎng)絡(luò)資源地址格式化轉(zhuǎn)換成標準的URI,解析目標資 源的URI,將URI路徑中的各步分解開,產(chǎn)生一個URI路徑分解序列R二(step、, step'2,step'J,提交給語義結(jié)構(gòu)和網(wǎng)絡(luò)資源關(guān)聯(lián)庫(803),獲得一個有優(yōu)先級的語義結(jié)構(gòu)序列,返回 給發(fā)起查詢請求的單元;
信息對象索引單元(806):接收網(wǎng)絡(luò)內(nèi)容提取單元(804)發(fā)送來的格式化后的信息對象, 同時發(fā)送的還有相關(guān)的語義結(jié)構(gòu),如果發(fā)送來的語義結(jié)構(gòu)中沒有索引參數(shù)信息,向語義結(jié)構(gòu) 査詢單元(805)發(fā)送査詢請求,獲得該語義結(jié)構(gòu)的索引參數(shù)信息,根據(jù)語義結(jié)構(gòu)及其每個信 息屬性的索引參數(shù)信息(例如,是否需要特殊處理時間、數(shù)字或者貨幣等,以及索引權(quán)重和 文字分析規(guī)則等),為信息對象建立索引,存儲到信息對象索引庫(807)中;
信息對象索引庫(807):是信息對象的數(shù)據(jù)庫,存儲和管理信息對象內(nèi)容、所屬的語義 結(jié)構(gòu)id、以上內(nèi)容的索引等信息;
信息對象搜索單元(808):提供用戶搜索界面,接受用戶的搜索請求,分析用戶輸入的 搜索條件文本,產(chǎn)生査詢指令,從信息對象索引庫(807)獲取符合査詢條件的信息對象,對 査詢結(jié)果進行分頁,假設(shè)用戶在看第n頁,從該頁開始,再向后解析N頁搜索結(jié)果,獲得這 些信息對象的語義結(jié)構(gòu)ID,根據(jù)語義結(jié)構(gòu)ID從語義結(jié)構(gòu)和網(wǎng)絡(luò)資源URI關(guān)聯(lián)關(guān)聯(lián)庫(803) 獲得具體的語義結(jié)構(gòu)信息,其中,N是一個系統(tǒng)配置參數(shù)。本單元除了展現(xiàn)一頁搜索結(jié)果外, 還展現(xiàn)語義導航樹,也就是搜索結(jié)果可能落入的語義范疇,用戶通過點擊語義導航樹上的某 個節(jié)點,可以利用該節(jié)點代表的語義提煉搜索結(jié)果。
權(quán)利要求
1,一種信息對象搜索的方法,所述信息對象是有語義結(jié)構(gòu)的信息內(nèi)容,包括多個存在語義關(guān)聯(lián)關(guān)系的信息屬性構(gòu)成,所述信息屬性是信息對象不同語義方面內(nèi)容的單元,所述語義結(jié)構(gòu)是語義元數(shù)據(jù)的集合,元數(shù)據(jù)包括信息對象的特性、信息屬性的特性、信息對象和信息屬性之間的語義關(guān)系、信息屬性之間的語義關(guān)系、本信息對象與其它有語義關(guān)聯(lián)的信息對象的關(guān)系等。其特征在于,所述方法包括(1)建設(shè)語義結(jié)構(gòu)和網(wǎng)絡(luò)資源URI或其前綴的關(guān)聯(lián)庫;(2)使用目標網(wǎng)頁URI查詢關(guān)聯(lián)庫,獲得語義結(jié)構(gòu);(3)根據(jù)語義結(jié)構(gòu),提取網(wǎng)頁信息并建立索引;(4)響應(yīng)用戶搜索請求,按相關(guān)性排序提供搜索結(jié)果的同時提供層次化語義導航樹;(5)用戶點擊語義導航樹的節(jié)點時,給用戶提供精煉的搜索結(jié)果。
2,根據(jù)權(quán)利要求1所述的信息對象搜索的方法,其特征在于,所述建設(shè)語義結(jié)構(gòu)和網(wǎng)絡(luò)資源URI或其前綴的關(guān)聯(lián)庫,步驟包括(11) 將網(wǎng)絡(luò)資源的語義結(jié)構(gòu)和網(wǎng)絡(luò)資源的URI關(guān)聯(lián)在一起,產(chǎn)生{語義結(jié)構(gòu),網(wǎng)絡(luò)資源URI)二元組;(12) 解析網(wǎng)絡(luò)資源URI,將URI各組成部分分解開,產(chǎn)生一個URI路徑分解序列D-{stepi, step2,…,stepend};(13) 查找語義結(jié)構(gòu)和網(wǎng)絡(luò)資源URI或其前綴的關(guān)聯(lián)庫并存儲語義結(jié)構(gòu)。
3,根據(jù)權(quán)利要求2所述的信息對象搜索的方法,其特征在于,所述查找語義結(jié)構(gòu)和網(wǎng)絡(luò)資源URI或其前綴的關(guān)聯(lián)庫并存儲語義結(jié)構(gòu),包括(131) 根據(jù)URI路徑分解序列D查找關(guān)聯(lián)庫的存儲樹,找出路徑分解序列D對應(yīng)的樹分支;(132) 如果在本樹分支的某個節(jié)點上己經(jīng)存有本語義結(jié)構(gòu),則終止本過程;(133) 如果在其它分支的某個節(jié)點上已經(jīng)存有本語義結(jié)構(gòu),則合并此兩個分支,修剪存儲樹拓撲結(jié)構(gòu);(134) 如果沒有任何節(jié)點存有本語義結(jié)構(gòu),建立存儲樹分支,存儲語義結(jié)構(gòu)。
4, 根據(jù)權(quán)利要求1所述的信息對象搜索的方法,其特征在于,所述網(wǎng)絡(luò)資源URI的前綴是完整URI分解序列D的子集P={stePl, step2,…,stepn},而且總是由分解序列D中從第一個元素開始的連續(xù)的元素組成。
5, 根據(jù)權(quán)利要求1所述的信息對象搜索的方法,其特征在于,所述使用目標網(wǎng)頁URI査詢關(guān)聯(lián)庫,獲得語義結(jié)構(gòu),步驟包括(21) 解析目標網(wǎng)頁的URI,將URI各組成部分分解開,產(chǎn)生一個URI路徑分解序列R={step'i, step'2,…,step'n};(22) 使用URI路徑分解序列R査找關(guān)聯(lián)庫存儲樹,定位到所在分支盡可能深的節(jié)點;(23) 從此節(jié)點開始向根節(jié)點方向依次將節(jié)點上的語義結(jié)構(gòu)依次排列;(23) 根據(jù)語義結(jié)構(gòu)校驗目標網(wǎng)頁是否符合本語義結(jié)構(gòu)的規(guī)定(24) 篩選出通過校驗的語義結(jié)構(gòu)序列。
6,根據(jù)權(quán)利要求1所述的信息對象搜索的方法,其特征在于,所述提取網(wǎng)頁信息并建立索引,步驟包括(31) 根據(jù)語義結(jié)構(gòu),將語義結(jié)構(gòu)規(guī)定的目標網(wǎng)頁上的內(nèi)容提取下來;(32) 根據(jù)語義結(jié)構(gòu),將提取結(jié)果格式化成信息對象,可以采用XML或者RDF等格式進行存儲;(33) 根據(jù)語義結(jié)構(gòu),建立信息對象的索引
7,根據(jù)權(quán)利要求6所述的信息對象搜索的方法,其特征在于,所述根據(jù)語義結(jié)構(gòu)建立信息對象的索引包括為信息對象中信息屬性的內(nèi)容建立索引時分別使用特定于該信息屬性語義的索引參數(shù)。所述索引參數(shù)包括本信息對象對應(yīng)的語義結(jié)構(gòu)中關(guān)于怎樣建立索引的信息片段,包括預定義索引參數(shù)和自定義索引參數(shù)。所述預定義索引參數(shù)對應(yīng)的計算邏輯是預先定義好的,預定義參數(shù)包括但不限于規(guī)定是否存儲、怎樣存儲、是否是關(guān)鍵字、是否建立索引、以及對數(shù)字、日期、貨幣、電話號碼、自由文本等進行特定處理;所述自定義索引參數(shù)包括根據(jù)本發(fā)明的裝置在部署以后根據(jù)特定應(yīng)用場景進行擴展的參數(shù),其對應(yīng)的計算邏輯是根據(jù)特定的信息屬性的語義定制的,并注冊到根據(jù)本發(fā)明的裝置中,本發(fā)明提供自定義索引參數(shù)注冊管理方法。
8,根據(jù)權(quán)利要求1所述的信息對象搜索的方法,其特征在于,所述響應(yīng)用戶搜索請求按相關(guān)性排序提供搜索結(jié)果的同時提供層次化語義導航樹,步驟包括(41) 解析用戶輸入的搜索條件,生成索引庫査詢指令并執(zhí)行;(42) 根據(jù)搜索結(jié)果集中的信息對象的語義結(jié)構(gòu)生成信息對象的顯示格式;(43) 匯集搜索結(jié)果集中的信息對象的語義結(jié)構(gòu);(44) 顯示搜索結(jié)果的同時顯示語義結(jié)構(gòu)集,每個語義結(jié)構(gòu)顯示成層次化語義導航樹。
9,根據(jù)權(quán)利要求8所述的信息對象搜索的方法,其特征在于,所述層次化語義導航樹,包括展現(xiàn)一個樹狀結(jié)構(gòu),樹的節(jié)點包括(441) 按照時間跨度導航的節(jié)點,適用于有表示生命周期的信息屬性的信息對象;(442) 按照語義結(jié)構(gòu)導航的節(jié)點,用語義結(jié)構(gòu)名命名,包括向用戶推薦的與被搜索的內(nèi)容有關(guān)的語義結(jié)構(gòu);(443) 按照語義結(jié)構(gòu)中的信息屬性導航的節(jié)點,用信息屬性名命名,包括語義結(jié)構(gòu)導航節(jié)點所擁有的信息屬性子節(jié)點。
10,根據(jù)權(quán)利要求1所述的信息對象搜索的方法,其特征在于,所述導航包括用戶通過點擊層次化語義導航樹的節(jié)點,進入到另一個搜索結(jié)果頁面,展現(xiàn)提煉過的搜索結(jié)果。
11, 一種信息對象搜索的裝置,其特征在于,所述裝置包括語義結(jié)構(gòu)編輯單元為語義結(jié)構(gòu)編輯人員提供用戶界面和編輯工具,生成{語義結(jié)構(gòu),網(wǎng)絡(luò)資源URI)二元組;語義結(jié)構(gòu)管理單元將網(wǎng)絡(luò)資源URI解析成路徑分解序列,向語義結(jié)構(gòu)和網(wǎng)絡(luò)資源URI或其前綴的關(guān)聯(lián)庫發(fā)送語義結(jié)構(gòu)的插入或者刪除或者修改請求;語義結(jié)構(gòu)和網(wǎng)絡(luò)資源URI關(guān)聯(lián)庫存儲和管理語義結(jié)構(gòu)和網(wǎng)絡(luò)資源URI或者URI前綴的關(guān)聯(lián)關(guān)系樹,對外提供語義結(jié)構(gòu)査詢接口和語義結(jié)構(gòu)管理接口。査詢語義結(jié)構(gòu)時,按照盡可能深的匹配原則,定位到最深的節(jié)點,按優(yōu)先級排列所有此查找路徑上的語義結(jié)構(gòu);插入語義結(jié)構(gòu)時,修剪存儲樹,找出合適的節(jié)點存儲語義結(jié)構(gòu);網(wǎng)絡(luò)內(nèi)容提取單元由網(wǎng)絡(luò)爬蟲和內(nèi)容提取器組成,網(wǎng)絡(luò)爬蟲根據(jù)爬行任務(wù)列表中的目標網(wǎng)絡(luò)資源的地址下載網(wǎng)絡(luò)資源,通過語義結(jié)構(gòu)査詢單元査詢語義結(jié)構(gòu),驗證所有語義結(jié)構(gòu)的適應(yīng)性,由內(nèi)容提取器根據(jù)語義結(jié)構(gòu)提取目標網(wǎng)絡(luò)資源的內(nèi)容,并格式化成語義結(jié)構(gòu)規(guī)定的格式,產(chǎn)生結(jié)構(gòu)化的信息對象,并提交給信息對象索引單元進行索引和存儲。另一方面,還根據(jù)語義結(jié)構(gòu)的定義,識別出語義相關(guān)的其它網(wǎng)絡(luò)資源的URI,將新發(fā)現(xiàn)的{語義結(jié)構(gòu),網(wǎng)絡(luò)資源URI》二元組提交給語義結(jié)構(gòu)和網(wǎng)絡(luò)資源URI或其前綴關(guān)聯(lián)庫保存;語義結(jié)構(gòu)査詢單元將網(wǎng)絡(luò)資源URI解析成路徑分解序列,向語義結(jié)構(gòu)和網(wǎng)絡(luò)資源URI或其前綴關(guān)聯(lián)庫發(fā)送語義結(jié)構(gòu)查詢請求,獲得一個有優(yōu)先級的語義結(jié)構(gòu)序列;信息對象索引單元接收網(wǎng)絡(luò)內(nèi)容提取單元發(fā)送來的格式化后的信息對象,按照語義結(jié)構(gòu)的規(guī)定,為信息對象建立索引,存儲到信息對象索引庫中;信息對象索引庫是信息對象的數(shù)據(jù)庫,存儲和管理信息對象內(nèi)容、所屬的語義結(jié)構(gòu)id、以上內(nèi)容的索引等信息;信息對象搜索單元提供用戶搜索界面,分析用戶輸入的搜索條件文本,產(chǎn)生査詢指令,分頁展現(xiàn)符合査詢條件的信息對象,同時展現(xiàn)語義導航樹。
全文摘要
本發(fā)明公開了一種信息對象搜索的方法和裝置,所述信息對象是有語義結(jié)構(gòu)的信息內(nèi)容,包括多個存在語義關(guān)聯(lián)關(guān)系的信息屬性構(gòu)成,所述信息屬性是信息對象不同語義方面內(nèi)容的單元,所述語義結(jié)構(gòu)是語義元數(shù)據(jù)的集合。通過建設(shè)語義結(jié)構(gòu)和網(wǎng)絡(luò)資源URI或其前綴的關(guān)聯(lián)庫,能夠使用目標網(wǎng)頁URI查詢關(guān)聯(lián)庫,獲得語義結(jié)構(gòu);在語義結(jié)構(gòu)的指導下格式化網(wǎng)頁信息并建立索引;響應(yīng)用戶搜索請求,按相關(guān)性排序提供搜索結(jié)果的同時提供層次化語義導航樹;并在用戶點擊語義導航樹的節(jié)點時,給用戶提供精煉的搜索結(jié)果。本發(fā)明屬于計算機科學技術(shù)領(lǐng)域,適用于網(wǎng)絡(luò)信息提取、全文搜索和語義搜索、手機搜索等應(yīng)用領(lǐng)域。
文檔編號G06F17/30GK101655862SQ200910109540
公開日2010年2月24日 申請日期2009年8月11日 優(yōu)先權(quán)日2009年8月11日
發(fā)明者華天清, 棟 宋, 曹鴻鈞, 齊勇挺 申請人:華天清;齊勇挺