一種基于語義理解的空間關(guān)鍵字索引方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及信息查詢技術(shù)領(lǐng)域,尤其涉及一種基于語義理解的空間關(guān)鍵字索引方 法。
【背景技術(shù)】
[0002] 隨著智能手機等移動通訊設(shè)備的廣泛使用和移動通訊技術(shù)的快速發(fā)展,移動互聯(lián) 網(wǎng)及其應(yīng)用在近年來呈現(xiàn)井噴式發(fā)展。隨之而來,以百度地圖為代表的各種基于位置服務(wù) 成為大眾化工具,深入地改變了人們的工作和生活方式。在基于位置服務(wù)系統(tǒng)中,空間關(guān)鍵 字查詢是一個普適化核心技術(shù),即返回與查詢位置和文本描述最相關(guān)的空間對象文本,用 于在移動應(yīng)用中檢索用戶所需服務(wù)和對象。例如,用戶可以在百度地圖中輸入關(guān)鍵字"火 鍋",搜索引擎將考慮各興趣點的文本和位置信息,最終為用戶返回最相關(guān)的餐館。
[0003] 但是,在空間關(guān)鍵字相似度方面,現(xiàn)有技術(shù)針對文本的度量只基于字形評判,不能 支持對文本的語義理解,因此難以反饋用戶真正所需的服務(wù)和對象。例如,當(dāng)用戶輸入關(guān)鍵 字"摩卡咖啡",傳統(tǒng)空間關(guān)鍵字引擎無法使之匹配附近的"星巴克咖啡店",因為基于字形 的文本相似度較低。因此,如何基于文本的語義理解對空間關(guān)鍵字進(jìn)行索引是一項亟待解 決的問題。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明提供了一種基于語義理解的空間關(guān)鍵字索引方法,能夠根據(jù)文本的語義理 解對空間關(guān)鍵詞進(jìn)行索引,使得索引的結(jié)果更加的準(zhǔn)確。
[0005] 本發(fā)明提供了一種基于語義理解的空間關(guān)鍵字索引方法,包括:
[0006] 構(gòu)建空間文本對象的索引結(jié)構(gòu),所述索引結(jié)構(gòu)中包含空間層、語義層和文本層;
[0007] 初始化所述索引結(jié)構(gòu)中的優(yōu)先隊列,所述初始化后的優(yōu)先隊列中只包含所述索引 結(jié)構(gòu)的根節(jié)點;
[0008] 對所述初始化后的優(yōu)先隊列進(jìn)行出列操作,讀出所述優(yōu)先隊列中的第一個索引節(jié) 占.
[0009] 當(dāng)判斷所述第一個索引節(jié)點是為非葉節(jié)點時:
[0010] 讀取所述索引結(jié)構(gòu),得到所述第一個索引節(jié)點的子節(jié)點集合;
[0011] 按照與查詢點綜合距離下界距離升序的方式,將所述子節(jié)點集合插入所述優(yōu)先隊 列;
[0012] 當(dāng)判斷所述第一個索引節(jié)點為葉節(jié)點時:
[0013] 訪問所述葉節(jié)點對應(yīng)的語義層,得到語義候選空間文本對象集合;
[0014] 訪問所述葉節(jié)點對應(yīng)的文本層,得到文本候選空間文本對象集合;
[0015] 通過所述語義候選空間文本對象集合和所述文本候選空間文本對象集合得到全 局候選空間文本對象集合,并更新所述文本候選空間文本對象集合的結(jié)果上界;
[0016] 當(dāng)所述結(jié)果上界小于所述綜合距離下界或所述優(yōu)先隊列為空時,結(jié)束查詢。
[0017] 優(yōu)選地,所述構(gòu)建空間文本對象的索引結(jié)構(gòu)具體為:
[0018] 對空間文本對象的歐式空間持續(xù)進(jìn)行四叉劃分,直至每個索引節(jié)點所包含的對象 個數(shù)小于給定的閾值,其中,每個節(jié)點的數(shù)據(jù)結(jié)構(gòu)為N = (id,mbr,c,r),id是該節(jié)點的標(biāo) 識號,mbr是該節(jié)點所包含的所有空間文本對象的最小覆蓋區(qū)域,c和r是主題空間的中心 點和半徑,它們在主題空間覆蓋所有N所包含的對象。
[0019] 優(yōu)選地,所述與查詢點綜合距離下界的確定方式為:
點q與給定節(jié)點N的空間距離下界LBE(q, N),其中,q. Ioc表示查詢的位置,N. mbr表示給 定節(jié)點N中所有點的最小邊界矩形;
給定節(jié)點N的語義距離下界LBs(q,N),其中,Z為所有空間文本對象的主題集合,z為主題 集合Z中的每個主題,TDJz]為空間文本對象〇與給定主題z G Z所對應(yīng)的主題概率分布 分量;
[0022] 綜合所述空間距離下界LBe (q,N)和語義距離下界LBs (q,N),依據(jù)公式
[0023] LB (q,N)=入XLBe (q,N) + (I- A ) X LBs (q,N),得到查詢點q與給定節(jié)點N所包含 對象的綜合距離下界,其中,A是用于平衡空間和語義距離的參數(shù)。
[0024] 優(yōu)選地,所述訪問所述葉節(jié)點對應(yīng)的語義層,得到語義候選空間文本對象集合具 體為:
[0025] 通過哈希函數(shù)h(TDq)得到桶號i,得到語義候選空間文本對象集合Ot = {〇|〇GDAh(TD。)G [i-l,i+l]},其中D為空間文本對象數(shù)據(jù)集。
[0026] 優(yōu)選地,訪問所述葉節(jié)點對應(yīng)的文本層,得到文本候選空間文本對象集合具體 為:
[0027] 獲取空間文本對象中所有關(guān)鍵字與q. term文本距離小于給定閾值MaxTD的鏈表 集合L,生成文本候選空間文本對象集合Ow= {〇 I 〇 G D A 〇 G L}。
[0028] 優(yōu)選地,所述通過所述語義候選空間文本對象集合和所述文本候選空間文本對象 集合得到全局候選空間文本對象集合,并更新所述文本候選空間文本對象集合的結(jié)果上界 具體為:
[0029] 通過語義候選空間文本對象集合0,和文本候選空間文本對象集合0 w得到全局候 選空間文本對象集合c = otn 0 w;
[0030] 對所述全局候選空間文本對象集合C中的每個候選空間文本對象〇,計算它們與 查詢之間的精確距離D(q,o);
[0031] 根據(jù)已處理的空間文本對象動態(tài)維護(hù)結(jié)果上界UB = D(q,okth),其中〇_是C中 D (q,o)取值第k小的空間文本對象。
[0032] 由上述方案可知,本發(fā)明提供的一種基于語義理解的空間關(guān)鍵字索引方法,通過 將空間文本對象構(gòu)建為包含空間層、語義層和文本層的索引結(jié)構(gòu),在給定查詢點時,根據(jù)索 引結(jié)構(gòu)中第一個索引節(jié)點為非葉節(jié)點或葉節(jié)點時,綜合考慮空間文本對象與查詢點之間的 空間、文本、語義距離,使得返回的每個空間文本對象與查詢點的穩(wěn)步距離小于給定閾值, 并且使得未被返回的空間文本對象與查詢點的綜合距離大于任何一個被返回的空間文本 對象與查詢點的綜合距離。
【附圖說明】
[0033] 為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本 發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以 根據(jù)這些附圖獲得其他的附圖。
[0034] 圖1為本發(fā)明公開的一種基于語義理解的空間關(guān)鍵字索引方法的流程圖;
[0035] 圖2為本發(fā)明公開的空間文本對象的索引結(jié)構(gòu)示意圖。
【具體實施方式】
[0036] 下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完 整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于 本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他 實施例,都屬于本發(fā)明保護(hù)的范圍。
[0037] 如圖2所示,本發(fā)明公開的一種基于語義理解的空間關(guān)鍵字索引方法,包括:
[0038] S101、構(gòu)建空間文本對象的索引結(jié)構(gòu),所述索引結(jié)構(gòu)中包含空間層、語義層和文本 層;
[0039] 如圖2所示,為空間文本對象的索引結(jié)構(gòu),該索引結(jié)構(gòu)共分為三層,分別是空間 層、語義層和文本層。
[0040] 在空間層,我們通過Quad-Tree來組織所有的空間文本對象,即對歐式空間持續(xù) 進(jìn)行四叉劃分,直到每個索引節(jié)點所包含的對象個數(shù)小于給定的閾值。每個節(jié)點的數(shù)據(jù)結(jié) 構(gòu)為N = (id,mbr,c,r),其中id是該節(jié)點的標(biāo)識號,mbr是該節(jié)點所包含的所有空間文本 對象的最小覆蓋區(qū)域,c和r是主題空間的中心點和半徑,它們在主題空間覆蓋所有N所包 含的對象。
[0041] S102、初始化所述索引結(jié)構(gòu)中的優(yōu)先隊列,所述初始化后的優(yōu)先隊列中只包含所 述索引結(jié)構(gòu)的根節(jié)點;
[0042] 在搜索過程中,將動態(tài)維護(hù)一個優(yōu)先隊列PQ,初始化的優(yōu)先隊列PQ中只包含索引 結(jié)構(gòu)的根節(jié)點。
[0043] S103、對所述初始化后的優(yōu)先隊列進(jìn)行出列操作,讀出所述優(yōu)先隊列中的第一個 索引節(jié)點;
[0044] S104、判斷所述第一個索引節(jié)點是否為葉節(jié)點,若否則進(jìn)入S105,若是則進(jìn)入 S107 :
[0045] S105、讀取所述索引結(jié)構(gòu),得到所述第一個索引節(jié)點的子節(jié)點集合;
[0046]S106、按照與查詢點綜合距離下界距離升序的方式,將所述子節(jié)點集合插入所述 優(yōu)先隊列;
[0047] 當(dāng)判斷N是空間層的非葉節(jié)點,則將N的所有子節(jié)點插入優(yōu)先隊列PQ,其插入位置 按照PQ中的節(jié)點按照LB(q,N)的升序方式排列,即PQ中靠前的節(jié)點與查詢點q的距離下 界較小,保證先被處理的節(jié)點可能包含更匹配的空間關(guān)鍵字對象;
[0048] 107、訪問所述葉節(jié)點對應(yīng)的語義層,得到語義候選空間文本對象集合;
[0049] 當(dāng)判斷N是空間層的葉節(jié)點,在語義層借鑒LSH思想,以分桶的方式組織葉節(jié)點所 包含的對象,分桶使用針對歐式空間距離的函數(shù)h a,b(p),以主題概率分布作為輸入。因此, 每個桶內(nèi)的空間文本對象具有語義相似性,即桶內(nèi)的對象語義相關(guān)度高、不同桶間的對象 語義相關(guān)度低。對給定查詢點q,假設(shè)主題分布ID q通過LSH函數(shù)得到桶號i,得到語義候選 空間文本對象集合Ot= {〇 |〇G D Ah(TDci) G [i-l,i+l]}。則在極大概率可能下與q語 義相關(guān)的對象包括在i、i+1、i_l三個桶內(nèi)?;谶@樣的哈希結(jié)構(gòu),只需要訪問個別桶內(nèi)的 對象,因而避免了對大量空間文本對象的線性掃描。
[0050] S108、訪問所述葉節(jié)點對應(yīng)的文本層,得到文本候選空間文本對象集合;
[0051] 當(dāng)判斷N是空間層的葉節(jié)點,在本文層借鑒n-gram思想,通過層次式倒排表組 織葉節(jié)點所包含的空間關(guān)鍵字對象集合0。當(dāng)n = 1 (即1-gram),對所有單個關(guān)鍵字的 vocabulary (例如"Beijing"),用鏈表結(jié)構(gòu)存儲0中所有包含它的對象及其位置。當(dāng)n = 2 (即2-gram),對所有由兩個關(guān)鍵字的vocabulary (例如"Capital City")構(gòu)成的文本,用 一個鏈表存儲〇中所有包含它的對象及其位置。以此類推,對n (通常有閾值,由搜索系統(tǒng) 允許的最大編輯距離限制)在不同取值預(yù)存類似信息,構(gòu)成索引。通過這樣的n-gram索引 結(jié)構(gòu),我們可以根據(jù)用戶給定的q. term和q. MaxTD檢索與查詢相關(guān)的vocabulary,得到它 們對應(yīng)的對象鏈表集合L,生成文本候選空間文本對象集合Ow= {〇 I 〇 G D A 〇 G L}。
[0052] S109、通過所述語義候選空間文本對象集合和所述文本候選空間文本對象集合得 到全局候選空間文本對象集合,并更新所述文本候選空間文本對象集合的結(jié)果上界;
[0053] 通過(\和0 w得到全局候選空間文本對