亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種結(jié)合位置和關鍵詞信息的在線房源搜索方法及裝置與流程

文檔序號:12124638閱讀:494來源:國知局
一種結(jié)合位置和關鍵詞信息的在線房源搜索方法及裝置與流程

本發(fā)明屬于互聯(lián)網(wǎng)數(shù)據(jù)管理領域,具體涉及一種結(jié)合位置和關鍵詞信息的在線房源

搜索方法及裝置。



背景技術:

從市場上的相關產(chǎn)品來看,近年來隨著地理位置信息的逐漸普及,互聯(lián)網(wǎng)中帶有文本信息的空間數(shù)據(jù)對象急劇增長,與此同時,以空間文本對象為基礎的空間關鍵詞查詢應用也日益廣泛。其中,經(jīng)過擴展KNN算法得到的KNN-first算法和Keyword-Search-first的算法使用最為普遍。然而這兩種算法是非常低效的,最大的局限性在于它們獨立地處理空間搜索和文本搜索,無法同時對候選區(qū)域進行空間排除和文本排除,因此可能需要大量的I/O和CPU的成本,或是需要花費大量時間用于檢索大量的空間對象并對其進行排序操作。

隨著在線房源信息的飛速增長,如果仍使用空間與文本分離的搜索方法,面對大量的空間位置信息與關鍵詞信息將過多地耗費I/O和CPU的成本,同時也降低了搜索效率。因此引入高效的房源信息管理方法,對提高用戶的在線體驗有重要的意義。



技術實現(xiàn)要素:

本發(fā)明的目的是針對房源信息管理問題而提出一種結(jié)合位置和關鍵詞信息的在線房源搜索方法及裝置,本發(fā)明同時考慮到了用戶在搜索目標房屋時,對房屋位置和描述的兩方面需求,提高了用戶的搜索效率。本發(fā)明相比于目前存在的房源搜索方法及裝置而言,不再獨立地根據(jù)位置信息與關鍵詞信息查詢目標數(shù)據(jù),而是將兩種查詢方法結(jié)合起來,高效地處理空間關鍵詞的查詢。

實現(xiàn)本發(fā)明目的的具體技術方案是:

一種結(jié)合位置和關鍵詞信息的在線房源搜索方法,該方法包括以下具體步驟:

步驟1:處理從互聯(lián)網(wǎng)中獲取的房源信息:將每條房源信息以對象的結(jié)構定義,并存儲在線性結(jié)構中作為房源對象集;提取所有房源對象中包含的關鍵詞,并存儲在線性結(jié)構中作為房源關鍵詞集;

步驟2:定義R樹與B樹的結(jié)構,并用步驟1得到的房源對象集和房源關鍵詞集分別插入到R樹和B樹中建立索引;

步驟3:根據(jù)R樹中包含的房源對象與B樹中包含的房源關鍵詞之間的關系,引入鏈表結(jié)構建立R樹的房源空間信息和B樹的房源關鍵詞信息之間的對應關系,并構建用于在線房源搜索的BR樹索引;

步驟4:根據(jù)用戶輸入的房源查詢信息,利用步驟3中構建的BR樹索引依次搜索出同時滿足空間位置與關鍵詞查詢條件的若干個房源對象作為搜索結(jié)果。

所述步驟1中將每條房源信息以對象的結(jié)構定義,具體包括:

定義房源對象的結(jié)構包含:房源的空間位置、房源信息中提取的關鍵詞以及指向該房源完整的文本描述信息的指針。

所述步驟2中定義R樹與B樹的結(jié)構,具體包括:

A1:R樹是一種用于空間索引的平衡樹,其中每個節(jié)點對應空間范圍中的一個矩形區(qū)域,葉子節(jié)點對應的矩形區(qū)域為其存儲的所有房源對象的最小邊界矩形簡稱MBR,非葉子節(jié)點對應的矩形區(qū)域為其所有子節(jié)點對應區(qū)域范圍的最小邊界矩形;

A2:B樹是一種用于關鍵詞索引的多叉查找樹,其中房源關鍵詞集分布在整棵B樹的所有節(jié)點中,且任何一個關鍵詞出現(xiàn)且只出現(xiàn)在一個節(jié)點中。

所述步驟2中的用步驟1得到的房源對象集和房源關鍵詞集分別插入到R樹和B樹中建立索引,具體包括:

B1:定義R樹葉子節(jié)點對應的最小邊界矩形的大小,并以此為單位劃分空間范圍,得到若干個最小邊界矩形作為R樹的葉子節(jié)點對應的矩形區(qū)域;

B2:依次獲取房源對象集中的所有對象,根據(jù)每個對象包含的房源空間位置在空間范圍上所屬的矩形區(qū)域,將該房源對象插入到R樹中對應的葉子節(jié)點中進行索引,并在該葉子節(jié)點的結(jié)構中添加房源對象在線性結(jié)構中存儲的地址,由此建立了用于房源對象搜索的R樹索引;

B3:若獲取了新的房源信息,同樣經(jīng)過步驟1得到新房源對象集,并將其中的所有對象插入到R樹的葉子節(jié)點中進行索引;

B4:依次獲取房源關鍵詞集中的所有關鍵詞,并插入到B樹中的各個節(jié)點中進行索引,由此建立了用于房源關鍵詞搜索的B樹索引;

B5:若獲取了新的房源信息,同樣經(jīng)過步驟1得到新房源關鍵詞集,并將其中的所有關鍵詞插入到B樹的節(jié)點中進行索引,若插入的關鍵詞在B樹中已存在,則不必重復插入。

所述步驟3具體包括:

C1:為B樹上包含的每一個房源關鍵詞添加對應的鏈表結(jié)構簡稱MBRList,且鏈表結(jié)構中的元素存儲的是指向R樹節(jié)點的指針;

C2:首先構建R樹的葉子節(jié)點與B樹的關聯(lián):針對R樹的所有葉子節(jié)點,遍歷葉子節(jié)點上所有最小邊界矩形內(nèi)的房源對象,獲取其包含的房源關鍵詞集合。針對該房源關鍵詞集合中的每一個關鍵詞,查找該關鍵詞在B樹中的節(jié)點位置。并向?qū)?jié)點中相同關鍵詞的鏈表結(jié)構中,添加指向R樹中該葉子節(jié)點的指針;

C3:其次構建R樹的非葉子節(jié)點與B樹的關聯(lián):首先層次遍歷R樹并將非葉子節(jié)點入隊列,再以從隊列中讀取的順序壓入棧結(jié)構中,其次將棧結(jié)構中所有R樹節(jié)點出棧,對每一個出棧的非葉子節(jié)點,用前序遍歷其所有子節(jié)點,獲取其子節(jié)點包含的房源關鍵詞集,并做合并去重操作得到該非葉子節(jié)點的房源關鍵詞集合。針對獲取的R樹的非葉子節(jié)點的房源關鍵詞集合,重復執(zhí)行C2。將R樹的所有節(jié)點都關聯(lián)到B樹上之后,得到用于在線房源搜索的BR樹索引結(jié)構。

所述步驟4具體包括:

D1:獲取用戶輸入的房源查詢信息,并用步驟1中的方法進行預處理,得到查詢對象的空間位置與其包含的關鍵詞集;

D2:根據(jù)查詢對象包含的關鍵詞集,在構建好的BR樹索引中的B樹中篩選出滿足關鍵詞完全匹配條件的B樹節(jié)點,進而根據(jù)MBRList上存儲的指針信息,篩選出滿足關鍵詞約束的R樹的葉子節(jié)點;

D3:根據(jù)查詢對象的空間位置,在滿足關鍵詞條件的R樹葉子節(jié)點集合中,針對每個葉子節(jié)點提取出屬于該節(jié)點的房源對象集合,計算每個房源對象與查詢位置的距離,并進行排序。對所有滿足條件的R樹葉子節(jié)點重復上述過程,將得到與查詢關鍵詞完全匹配的,按照距離的升序排列的若干個房源對象,并由它們構成搜索結(jié)果。

一種結(jié)合位置和關鍵詞信息的在線房源搜索裝置,該裝置包括:

a)信息處理與存儲模塊,處理從互聯(lián)網(wǎng)中獲取的房源信息:將每條房源信息以對象的結(jié)構定義,并存儲在線性結(jié)構中作為房源對象集;提取所有房源對象中包含的關鍵詞,并存儲在線性結(jié)構中作為房源關鍵詞集;

b)索引構建模塊,與信息處理與存儲模塊連接,將所述得到的房源對象集和房源關鍵詞集分別插入到R樹和B樹中建立索引,并根據(jù)R樹的房源空間信息和B樹的房源關鍵詞信息之間的對應關系構建用于在線房源搜索的BR樹索引;

c)搜索模塊,與索引構建模塊連接,接收用戶輸入的關鍵詞和空間位置信息,返回滿足條件的房源對象。

所述索引構建模塊,進一步包括:在B樹中為包含的每一個房源關鍵詞添加對應的鏈表結(jié)構,通過該鏈表結(jié)構建立B樹和R樹之間的關聯(lián)。獲取R樹中的每一個節(jié)點包含的房源關鍵詞集合,針對房源關鍵詞集合中的每一個關鍵詞,查找該關鍵詞在B樹中的節(jié)點位置,并向?qū)?jié)點中相同關鍵詞的鏈表結(jié)構中,添加指向R樹中該葉子節(jié)點的指針,得到用于在線房源搜索的BR樹索引。

所述索引構建模塊中,在建立R樹的房源空間信息和B樹的房源關鍵詞信息之間的對應關系時,首先構建R樹的葉子節(jié)點與B樹的關聯(lián):針對R樹的所有葉子節(jié)點,遍歷葉子節(jié)點上所有最小邊界矩形內(nèi)的房源對象,獲取其包含的房源關鍵詞集合;其次構建R樹的非葉子節(jié)點與B樹的關聯(lián):層次遍歷R樹并將非葉子節(jié)點入隊列,再以從隊列中讀取的順序壓入棧結(jié)構中,將棧結(jié)構中所有R樹節(jié)點出棧,對每一個出棧的非葉子節(jié)點,用前序遍歷其所有子節(jié)點,獲取其子節(jié)點包含的房源關鍵詞集,并做合并去重操作得到該非葉子節(jié)點的房源關鍵詞集合。

所述搜索模塊中,根據(jù)用戶輸入的查詢對象包含的關鍵詞集和空間位置,在構建好的BR樹索引中的B樹中篩選出滿足關鍵詞完全匹配條件的B樹節(jié)點,進而根據(jù)MBRList上存儲的指針信息,篩選出滿足關鍵詞約束的R樹的葉子節(jié)點。獲取所有滿足約束葉子節(jié)點中包含的房源對象集合,計算每個房源對象與查詢位置的距離,并按照距離的升序排列的若干個房源對象構成搜索結(jié)果。

本發(fā)明的有益效果:

本發(fā)明中構建的房源信息搜索BR樹(HousingSearch BR-tree簡稱HS BR-tree)是一種結(jié)合了B樹與R樹的索引結(jié)構。該索引結(jié)構根據(jù)現(xiàn)有的房源信息數(shù)據(jù)特點,結(jié)合了R樹結(jié)構存儲空間范圍中房源對象的特點,以及B樹結(jié)構存儲房源信息關鍵詞的特點,提供了同時對空間位置和關鍵詞進行搜索的方法。本發(fā)明中提出的結(jié)合位置和關鍵詞信息的在線房源搜索方法,相比傳統(tǒng)的空間關鍵詞查詢方法,提高了查詢效率,解決了實際互聯(lián)網(wǎng)租房情況中,用戶在進行房屋信息查詢時,要求同時查詢房屋位置與房屋關鍵詞信息這一實際問題。

附圖說明

圖1為本發(fā)明方法流程圖;

圖2為本發(fā)明裝置結(jié)構示意圖;

圖3為本發(fā)明中房源信息搜索BR樹的構建流程圖。

具體實施方式

1)房源數(shù)據(jù)信息的處理與存儲

從互聯(lián)網(wǎng)中獲取的房源信息并存著空間位置信息與文本描述信息這兩種,因此需要對獲取的房源信息進行處理以得到包含完整的空間和關鍵詞信息的房源集合。在對獲取的房源信息進行處理時,首先針對每條房源信息的文本描述信息做關鍵詞集的提取處理,一般采用開源的關鍵詞提取算法(例如,TF-IDF,TextRank),并將所有提取到的關鍵詞例如Ok={k1,k2,k3…kn}作為該房源的關鍵詞集;其次針對每條房源信息獲取其空間位置,由于房源信息中的空間位置是基于地理位置描述的,因此需要調(diào)用開源的百度的Geocoding API(百度地圖中提供的將地理位置轉(zhuǎn)換為經(jīng)緯度HTTP接口)將房源信息中的地理位置描述信息轉(zhuǎn)換為用一對經(jīng)緯度數(shù)表示的變量例如Os=<i,j>作為該房源的空間位置。

在處理好獲取到的房源信息后,得到了所有房源信息的空間位置與關鍵詞集。為了存儲如此大量的房源數(shù)據(jù),本發(fā)明定義了房源數(shù)據(jù)在內(nèi)存中的存儲形式。具體的存儲方式如下:

針對獲取的所有房源信息的空間位置和關鍵詞集,首先本發(fā)明定義每條房源信息以一個對象即Object的結(jié)構存儲,并將所有房源信息構成的Object集組成的線性結(jié)構作為房源對象集。由于表示每條房源信息的Object的結(jié)構應包含空間位置,關鍵詞集,以及指向該房源對象完整的文本描述信息的指針即P,因此定義Object的結(jié)構如下:

并且上述結(jié)構中所指的房源對象完整的文本描述信息,在處理每條房源信息時,就已經(jīng)添加到內(nèi)存的鏈表結(jié)構中存儲了,因此每個房源對象中包含的是對應文本描述在鏈表結(jié)構中存儲的地址。

其次本發(fā)明遍歷房源對象集中的所有對象,提取所有對象包含的關鍵詞集,將獲取的關鍵詞集合并且做去重操作,最終將所得的所有關鍵詞存儲在線性結(jié)構中作為房源關鍵詞集。

2)房源數(shù)據(jù)信息的索引結(jié)構

本發(fā)明中構建的房源信息搜索BR樹是一種基于B樹與R樹結(jié)構的索引結(jié)構,用來應用于本發(fā)明提出的一種結(jié)合位置和關鍵詞信息的在線房源搜索方法。因此在BR樹的構建過程中需要定義R樹與B樹中信息的索引形式,并將經(jīng)過預處理房源信息得到的數(shù)據(jù)進行索引,其中房源的空間信息通過R樹來索引;而集合了所有房源信息對應的關鍵詞集合通過B樹索引。

2.1、R樹的結(jié)構與房源對象的空間索引

R樹是一種用于空間索引的平衡樹,其中每個節(jié)點對應空間范圍中的一個矩形區(qū)域,葉子節(jié)點對應的矩形區(qū)域為其存儲的所有房源對象的最小邊界矩形簡稱MBR,非葉子節(jié)點對應的矩形區(qū)域為其所有子節(jié)點對應區(qū)域范圍的最小邊界矩形。

本發(fā)明中定義Rectangle表示空間范圍中的一個矩形,其中使用兩個一維數(shù)組變量來表示矩形的邊界。由于R樹結(jié)構中葉子節(jié)點與非葉子節(jié)點的結(jié)構不同,葉子節(jié)點對應的矩形內(nèi)直接包含房源對象,非葉子節(jié)點對應的矩形內(nèi)包含其所有子節(jié)點對應的矩形區(qū)域。因此定義Branch表示矩形中數(shù)據(jù)的存儲,其結(jié)構如下:

根據(jù)Branch的定義,若當前Rectangle所在節(jié)點為葉子節(jié)點,則對應的變量child的指針為空,變量data為當前Rectangle中包含的房源對象在內(nèi)存的線性結(jié)構中存儲的地址;若當前Rectangle所在節(jié)點為非葉子節(jié)點,則對應的變量data為空,變量child的指針指向非葉子節(jié)點所包含的子節(jié)點。定義RNode表示R樹結(jié)構的節(jié)點,由葉子節(jié)點與非葉子節(jié)點的定義可知,一個RNode中可包含若干個Branch對象,因此RNode結(jié)構如下:

在定義了R樹節(jié)點的結(jié)構與數(shù)據(jù)存儲的結(jié)構之后,本發(fā)明定義R樹上各節(jié)點對應矩形的空間范圍。首先定義R樹存儲的最大空間范圍,例如所有的房源信息來自于城市C,且城市C的經(jīng)度范圍為a-b,緯度范圍為c-d,則R樹上存儲的最大空間范圍為城市C的范圍,即最大的矩形為(a,c,b,d)圍成的矩形。其次獲取用戶定義的房源最小搜索范圍,例如用戶定義的最小搜索范圍的大小為D的矩形,則在最大空間范圍上以D為單位劃分若干個大小均勻的矩形,這些矩形作為R樹葉子節(jié)點對應的最小邊界矩形。

在定義了R樹葉子節(jié)點的空間范圍之后,需要將處理房源信息后得到的房源對象集插入到R樹結(jié)構中進行索引。因此針對房源對象集中的所有對象,獲取每個房源對象的空間位置,根據(jù)其空間位置找到房源對象所在的最小邊界矩形,并將該房源對象插入到最小邊界矩形對應的葉子節(jié)點中進行存儲。最終R樹的葉子節(jié)點上存儲了房源對象集,非葉子節(jié)點上存儲了指向其對應矩形包含的所有子節(jié)點的指針,由此得到可以索引房源空間數(shù)據(jù)的R樹結(jié)構。

在獲取了新的房源信息時,首先按照本發(fā)明中的方法對新房源信息進行預處理,得到新房源對象集;其次將新房源對象集中的所有對象插入到R樹結(jié)構中建立索引。

2.2、B樹的結(jié)構與房源關鍵詞的索引

B樹結(jié)構是一種用于關鍵詞搜索的多叉查找樹。本發(fā)明將基于處理房源信息后獲取到的房源關鍵詞集來構建房源關鍵詞的索引。

因此定義一棵M階的B樹結(jié)構,其中每個節(jié)點至少存放的關鍵詞數(shù)為[M/2-1,M-1],除根節(jié)點以外的非葉子節(jié)點包含的子節(jié)點數(shù)為[M/2,M]。由此可定義BNode表示B樹結(jié)構的節(jié)點,其結(jié)構如下:

在定義了B樹節(jié)點的結(jié)構之后,針對房源關鍵詞集中的每個關鍵詞,依次插入B樹的各個節(jié)點中建立索引,由此得到房源關鍵詞索引的B樹。

若獲取了新的房源信息,首先按照本發(fā)明中方法對新房源信息進行預處理,得到新房源關鍵詞集。其次將新房源關鍵詞集中的所有關鍵詞插入到B樹結(jié)構中建立索引,若插入的關鍵詞在B樹中已存在,則不必重復插入。

3)結(jié)合空間和關鍵詞信息的BR樹結(jié)構

為了提高空間和關鍵詞查找的效率,在本發(fā)明中根據(jù)R樹中節(jié)點存儲的房源對象與B樹中節(jié)點存儲的房源關鍵詞之間的關系,構建用于在線房源搜索的BR樹索引結(jié)構,從而能夠同時使用兩種索引結(jié)構進行高效的搜索。圖3為房源信息搜索BR樹的構建方法流程圖,包括如下步驟:

本發(fā)明為B樹上包含的每一個房源關鍵詞Ki添加對應的鏈表結(jié)構簡稱MBRListi,且鏈表結(jié)構中的元素存儲的是指向R樹節(jié)點的指針。

B樹中所有關鍵詞創(chuàng)建好鏈表結(jié)構之后,對R樹中的每一個節(jié)點,獲取其包含的房源關鍵詞集合,針對該房源關鍵詞集合中的每一個關鍵詞,查找該關鍵詞在B樹中的節(jié)點位置。向該B樹節(jié)點中對應關鍵詞的鏈表結(jié)構中添加指向R樹結(jié)構中該節(jié)點的指針,若該鏈表結(jié)構中指向R樹中某一節(jié)點的指針已存在,則不必重復添加,由此構建了B樹與R樹的關聯(lián)。并針對R樹的每個節(jié)點重復上述操作,得到用于在線房源搜索的BR樹索引結(jié)構。

在向B樹中的鏈表結(jié)構添加指向R樹節(jié)點的指針時,需保證鏈表結(jié)構中存儲的元素順序與R樹中MBR的排列順序相符。首先將R樹的葉子節(jié)點與B樹相關聯(lián):針對R樹的葉子節(jié)點,遍歷葉子節(jié)點上所有最小邊界矩形內(nèi)的房源對象,獲取其包含的房源關鍵詞集合,查找集合中每一個關鍵詞在B樹中的節(jié)點位置,并構建該葉子節(jié)點與B樹的關聯(lián)。

其次將R樹的非葉子節(jié)點與B樹相關聯(lián):可定義隊列Qu為空,棧St為空,從根節(jié)點開始對R樹進行層次遍歷,將R樹的根節(jié)點插入隊列Qu中。此時判斷隊列Qu是否為空,當隊列Qu不為空時,在隊列Qu尾部依次加入當前節(jié)點的所有子節(jié)點,直到R樹的非葉子節(jié)點全部入隊列。再以從隊列中讀取的順序壓入棧結(jié)構中,在隊列Qu的頭部讀取隊列的元素(即R樹的節(jié)點),對每個讀取到的節(jié)點N,都將N壓到棧St中。當隊列讀取完畢時,從棧St的頂部開始對棧中的元素進行出棧,對每一個出棧的非葉子節(jié)點,用前序遍歷其所有子節(jié)點,獲取其子節(jié)點包含的房源關鍵詞集,并做合并去重操作得到該非葉子節(jié)點的房源關鍵詞集合,查找集合中每一個關鍵詞在B樹中的節(jié)點位置,并構建該非葉子節(jié)點與B樹的關聯(lián)。

4)在線房源搜索過程

此過程將根據(jù)用戶輸入的房源查詢信息,利用構建好的在線房源搜索的BR樹索引結(jié)構依次搜索出與目標房屋位置最近且關鍵詞完全匹配的房源信息對象集合作為搜索結(jié)果。

本發(fā)明實際應用的基本思想是:同時考慮目標房屋的空間位置信息與文本描述信息,首先根據(jù)空間位置信息將對象進行分組,若某個分組沒有包含查詢關鍵詞集中所有的關鍵詞,則舍棄該分組。對于包含所有關鍵詞的每個組中,如果該組距離查詢點的距離大于某個閾值,就可以舍棄該分組中的所有對象。

因此,房源搜索過程可以包括如下步驟:

(1)首先獲取用戶輸入的房源查詢信息,并對信息進行預處理。經(jīng)過預處理之后可得到房源查詢的空間位置、房源查詢對象集以及房源查詢關鍵詞集。

(2)其次根據(jù)房源查詢對象集的空間位置,獲取建立在該空間位置范圍上的用于房源搜索的BR樹索引結(jié)構。并根據(jù)房源查詢對象包含的關鍵詞集,在獲取的BR樹索引中的B樹中篩選出滿足關鍵詞完全匹配條件的B樹節(jié)點,進而根據(jù)篩選的到的B樹節(jié)點上所有關鍵詞對應的MBRList,并對所有MBRList中的元素取交集,獲取滿足關鍵詞約束的R樹中的所有葉子節(jié)點。

(3)再次根據(jù)房源查詢對象的空間位置,在滿足關鍵詞條件的R樹葉子節(jié)點集合中,針對每個葉子節(jié)點提取出屬于該節(jié)點的房源對象集合,計算每個房源對象與查詢對象空間位置的距離,并進行排序。并對滿足條件的R樹葉子節(jié)點重復上述過程,最終將與查詢關鍵詞完全匹配的,按照距離的升序排列的若干個房源對象,作為此次房源查詢的搜索結(jié)果。

在具體實現(xiàn)中,以在線房源搜索BR樹為基礎,設計了房源信息搜索系統(tǒng)。系統(tǒng)采用的是互聯(lián)網(wǎng)上真實的房源數(shù)據(jù),并在實驗中將BR樹算法與傳統(tǒng)算法進行了對比。在實際得到的結(jié)果中,查詢算法的效率與房源數(shù)據(jù)集的大小、用戶查詢k的個數(shù)、用戶搜索的關鍵詞個數(shù)有明顯的關系,然而采用了HS BR-tree結(jié)構的算法明顯優(yōu)于傳統(tǒng)的KNN-first算法。KNN-first忽略了文本對搜索的約束能力,僅從空間上進行空間對象的刪減,當數(shù)據(jù)集較大或用戶查詢的關鍵詞k較大時,效率較差。而采用了HS BR-tree結(jié)構的算法,因為能夠同時對空間和文本進行約束,從而可以從搜索空間中刪減掉大量的空間文本對象,大大提高搜索效率。并且,結(jié)合實際房源信息特點,HS BR-tree索引結(jié)構更適合應用于房源信息搜索算法中。

實施例

下面用具體的實驗例子來證明本發(fā)明(HS BR-tree算法)的實現(xiàn)效果以及優(yōu)勢。

定義房源位置的范圍,選取了上海為實驗區(qū)域,即經(jīng)度范圍120-122,緯度范圍30-32,并以經(jīng)度0.1,緯度0.1為單位,將(120,30,122,32)這個矩形平均分成了400份,所有的房源對象將依據(jù)其所在經(jīng)緯度插入到不同的矩形中。

在關鍵詞的選取上,定義了五大房源信息的關鍵詞類型,并選取了24個關鍵詞存入B樹中。因此,實驗中房源對象的屬性數(shù)據(jù)結(jié)構如下表。

實驗數(shù)據(jù)集:搜房網(wǎng)上海市的租房文本信息數(shù)據(jù)。

實驗比較了使用HS BR-tree索引結(jié)構的查詢算法與傳統(tǒng)的KNN-first算法的效率,并以算法的運行時間為衡量標準,分別根據(jù)房源數(shù)據(jù)集大小,用戶查詢的關鍵詞個數(shù)將實驗進行分組,針對每組因素進行多次實驗,最后取實驗的平均值作為該分組的實驗耗時。

1)房源數(shù)據(jù)集大小對算法效率的影響

分別使房源數(shù)據(jù)集大小為100條數(shù)據(jù),1000條數(shù)據(jù),10000條數(shù)據(jù)以及40000條數(shù)據(jù)。指定用戶輸入的查詢k為10,Qk包含的關鍵詞數(shù)目為2作為默認參數(shù),來保證房源數(shù)據(jù)集大小為唯一變化參數(shù)。數(shù)據(jù)集的測試結(jié)果如下表所示:

由表中可以看出,算法效率與房源數(shù)據(jù)集的大小有明顯的關系。算法的性能隨著數(shù)據(jù)集的增大在逐漸地降低,KNN-first算法尤為明顯。當數(shù)據(jù)量增大為40000時,KNN-first的算法性能迅速降低,分析原因可知,因為KNN-first需要訪問更多的對象,來獲得候選對象,進而進行關鍵詞的匹配。而使用HS BR-tree索引結(jié)構的查詢算法為了查找所有數(shù)據(jù)對象,性能會受到一點影響,但因為其使用HS BR-tree索引刪減掉了大部分不需訪問的對象,從而跟KNN-first算法相比,效率還是大大提高。

2)查詢對象的關鍵詞個數(shù)對算法效率的影響

分別使用戶查詢集中對象包含的關鍵詞個數(shù)為1,2,3,4,5。取用戶輸入的查詢k為10,房源數(shù)據(jù)集大小為40000條作為默認參數(shù),來保證用戶搜索的關鍵詞個數(shù)為唯一變化參數(shù)。數(shù)據(jù)集的測試結(jié)果如下表所示:

由表可以看出,算法的效率與查詢對象中包含的關鍵字也有一定的聯(lián)系,但影響不大。分析原因可知,在結(jié)合空間位置與關鍵詞查詢的算法中,主要時間消耗仍在空間查找上,因此關鍵詞個數(shù)的變化對于算法效率的影響并不明顯。但是在同樣的房源數(shù)據(jù)集大小的背景下,隨著查詢對象關鍵詞個數(shù)的增多,使用HS BR-tree索引結(jié)構的查詢算法仍然表現(xiàn)出了比傳統(tǒng)的KNN-first算法更為優(yōu)勢的查詢效率。

當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1