專利名稱:搜索索引中單詞的索引角色分層結(jié)構(gòu)的制作方法
搜索索引中單詞的索引角色分層結(jié)構(gòu) 背景 搜索變?yōu)橛糜谶M行研究或?qū)Ш娇山?jīng)由計算機訪問的文檔的越發(fā)重要的工具。通 常,搜索引擎執(zhí)行利用由用戶提交的查詢來檢測可能文檔、或這些文檔內(nèi)的文本的匹配進 程。最初,例如由諸如由Google或Yahoo維護的那些搜索引擎等常規(guī)搜索引擎在線提供的 匹配進程允許用戶在查詢中指定一個或多個關(guān)鍵字以描述她/他正在尋找的信息。接著, 常規(guī)在線搜索引擎繼續(xù)尋找包含這些關(guān)鍵字的精確匹配的所有文檔并通常將每一文檔的 結(jié)果演示為其中包括由用戶提供的關(guān)鍵字中的一個或多個的文本框。 假設(shè),例如,用戶期望發(fā)現(xiàn)哪個實體購買了公司PeopleSoft。將具有關(guān)鍵字
"誰購買了 PeopleSoft"的查詢輸入到常規(guī)在線引擎,其產(chǎn)生以下內(nèi)容作為其結(jié)果之一
"J. Williams是一位官員,他在1990年代晚期創(chuàng)立了 Vantive,其在1999年被PeopleSoft
購買。"在此結(jié)果中,檢索到的文本中精確匹配來自查詢的關(guān)鍵字"誰"、"購買"、以及
"PeopleSoft"的單詞是粗體的以向用戶給出為什么返回此結(jié)果的某些理由。因此,提供促
進精確關(guān)鍵字匹配的匹配進程對用戶而言并不高效且通常誤導(dǎo)多于有用。 現(xiàn)有常規(guī)在線搜索引擎被限于它們既不識別所搜索的文檔中除由匹配過程產(chǎn)生
的精確匹配以外對應(yīng)于查詢中的關(guān)鍵詞的單詞(例如,注意PeopleSoft是公司、或IBM和
Big Blue是相同的)也不識別單詞在文檔中扮演的不同角色(例如,不能區(qū)分PeopleSoft
是Vantive收購的作用者還是Oracle收購的目標(biāo))。同樣,常規(guī)在線搜索引擎是受限的,因
為用戶被限于查詢中要匹配的關(guān)鍵詞,并因此如果信息是未知的則不允許用戶精確地表達
該信息。因此,實現(xiàn)識別查詢的關(guān)鍵詞與被搜索文檔中的單詞之間的語言關(guān)系的自然語言
搜索引擎將獨特地增加搜索結(jié)果的準(zhǔn)確性。 概述 提供本發(fā)明內(nèi)容是為了以簡化的形式介紹將在以下具體實施方式
中進一步描述 的一些概念。本概述不旨在標(biāo)識所要求保護的主題的關(guān)鍵特征或必要特征,也不旨在用于 幫助確定所要求保護的主題的范圍。 本發(fā)明的各實施例通常涉及用于在數(shù)據(jù)存儲中尋找匹配由用戶提交的自然語言 查詢的文檔的計算機可讀介質(zhì)和計算機系統(tǒng)。通過確定查詢內(nèi)的單詞彼此具有與文檔中的 相同單詞相同的關(guān)系來匹配這些文檔和查詢。例如,在句子"約翰在工作時讀書"中,"約翰" 是句子的主語而"書"是句子的賓語。可響應(yīng)于查詢"約翰在哪里讀書"返回包含此句子的 文檔,因為"約翰"是該查詢的主語而"書"是該查詢的賓語??煞祷財?shù)據(jù)存儲中"約翰"作 為主語以及"書"作為賓語的其它文檔。 使用可搜索索引將查詢中的單詞和關(guān)系與文檔文本內(nèi)的單詞和關(guān)系匹配。本發(fā)明 的各實施例提取文本文檔中的單詞之間的一個或多個關(guān)系并將這些附加的更寬泛的關(guān)系 與單詞相關(guān)聯(lián)地存儲在索引中。本發(fā)明的各實施例還可提取查詢中的單詞之間的關(guān)系并使 用這些附加的單詞/關(guān)系組合來搜索索引。可使用角色分層結(jié)構(gòu)來提取單詞的角色。角色 分層結(jié)構(gòu)以角色離根角色越遠則角色變得越具體的方式來組織角色。在角色分層結(jié)構(gòu)中, 通用角色是根節(jié)點而角色的更具體的實施例是子層節(jié)點。主角色是更為通用或抽象的角色。從屬角色適合主角色的通用定義內(nèi)但更具體。例如,在句子"約翰在工作時閱讀"中, "在"可以描述書何時被閱讀??墒褂弥T如"之前"或"之后"等其它單詞來表達"何時"。因 此,"何時"是可包括"在"、"之前"、以及"之后"作為從屬角色的主角色。"在"、"之前"、以 及"之后"都描述"何時"的具體示例。因此,可通過使"何時"與"書"相關(guān)聯(lián)來擴展、或概 括與"書"相關(guān)聯(lián)的"在"關(guān)系。 在本發(fā)明的各實施例中,可提取由單詞在文檔中扮演的角色并將其存儲在索引 中。在另一實施例中,在索引時不擴展分配到來自文檔的單詞的角色。相反,擴展與搜索查 詢中的單詞相關(guān)聯(lián)的角色并使用其來搜索索引。在另一實施例中,擴展與文檔和查詢兩者 中的單詞相關(guān)聯(lián)的角色。
附圖簡述 以下參考附圖詳細描述本發(fā)明,附圖中
圖1是適用于實現(xiàn)本發(fā)明的各實施例的示例性計算環(huán)境的框圖; 圖2是適用于實現(xiàn)本發(fā)明的各實施例的示例性系統(tǒng)體系結(jié)構(gòu)的示意圖; 圖3是示出根據(jù)本發(fā)明的實施例的擴展并索引句子內(nèi)的單詞之間的語義關(guān)系的
方法的流程圖; 圖4是示出根據(jù)本發(fā)明的實施例的三個角色分層結(jié)構(gòu)的圖示;
圖5是示出根據(jù)本發(fā)明的實施例的單個角色分層結(jié)構(gòu)的圖示; 圖6是示出根據(jù)本發(fā)明的實施例索引與一個或多個單詞相關(guān)聯(lián)的擴展的角色的 圖示; 圖7是示出根據(jù)本發(fā)明的實施例的通過擴展分配到搜索查詢內(nèi)的單詞的角色而 搜索角色未被擴展的索引的圖示。 圖8是示出根據(jù)本發(fā)明的實施例的使用被分配到搜索查詢內(nèi)的單詞的擴展的角 色來搜索包含擴展的角色的索引的圖示。 圖9是示出根據(jù)本發(fā)明的實施例的使用角色分層結(jié)構(gòu)來索引文檔內(nèi)容的方法的 流程圖。 詳細描述 此處用細節(jié)來描述本發(fā)明的主題以滿足法定要求。然而,描述本身并非旨在限制 本專利的范圍。相反,發(fā)明人設(shè)想所要求保護的主題還可結(jié)合其它當(dāng)前或未來技術(shù)按照其 它方式來具體化,以包括不同的步驟或類似于本文中所描述的步驟的步驟組合。此外,盡管 術(shù)語"步驟"和/或"框"可在此處用于指示所采用的方法的不同元素,但除非而且僅當(dāng)明 確描述了各個步驟的順序時,該術(shù)語不應(yīng)被解釋為意味著此處公開的各個步驟之中或之間 的任何特定順序。 因此,在一個實施例中,本發(fā)明涉及包含在一個或多個計算機可讀介質(zhì)上的計算 機可執(zhí)行指令,其執(zhí)行擴展并索引句子內(nèi)的單詞之間的語義關(guān)系的方法。該方法包括接收 具有包括文本的內(nèi)容的第一電子文檔、將該文本解析成一個或多個句子、以及確定句子中 的單詞的第一角色,其中角色是與句子中的其它單詞的語義關(guān)系的類型。該方法還包括確 定單詞具有超過一個的可能的角色并將第二角色分配到單詞。該方法還包括將該單詞與第
一角色和第二角色一起存儲在將該單詞和句子與第一電子文檔相關(guān)聯(lián)的索引中,進而允許 搜索引擎將第一電子文檔與包括具有類似角色的類似單詞的搜索查詢匹配。
在另一實施例中,本發(fā)明的各方面涉及用于將搜索查詢匹配到一個或多個文檔內(nèi)
的文本的計算機化系統(tǒng),該系統(tǒng)包括第一語義解釋組件用于(l)將主角色分配給搜索查
詢中的單詞,其中角色是單詞之間的語義關(guān)系,且搜索查詢是自然語言搜索查詢;以及(2)
使用角色分層結(jié)構(gòu)將附加角色分配到來自搜索查詢的具有主角色的至少一個單詞,其中角
色分層結(jié)構(gòu)包括角色的分層結(jié)構(gòu),其包括通用的根角色以及比根角色更具體的多層子角
色。計算機化系統(tǒng)還包括用于確定索引中引用的至少一個文檔包括來自搜索查詢的單詞的
匹配組件,其中向至少一個文檔中的單詞以及搜索查詢中的單詞分配相同角色中的至少一 個。 在又一實施例中,本發(fā)明涵蓋具有包含在其上的計算機可執(zhí)行指令的一個或多個 計算機存儲介質(zhì),計算機可執(zhí)行指令用于執(zhí)行使用角色分層結(jié)構(gòu)來索引文檔內(nèi)容的方法。 該方法包括接收作為文檔的一部分的句子、將角色分配到句子中的單詞、以及使用角色分 層結(jié)構(gòu)將至少一個附加角色分配到單詞,其中角色分層結(jié)構(gòu)包括角色的分層結(jié)構(gòu),其包括 通用的根角色以及比根角色更具體的至少一層子角色,進而向至少一個單詞分配至少兩個 角色。該方法還包括將單詞與分配到各個單詞的一個或多個角色存儲在將單詞和句子與文 檔相關(guān)聯(lián)的索引中。 在簡要描述了本發(fā)明的各實施例的概覽以及其中的某些特征后,以下描述適于實
現(xiàn)本發(fā)明的示例性操作環(huán)境。 操作環(huán)境的描述 大體上參考附圖,并且首先具體參考圖1 ,示出了用于實現(xiàn)本發(fā)明的各實施例的示 例性操作環(huán)境,并將其概括指定為計算設(shè)備100。計算設(shè)備100只是合適的計算環(huán)境的一個 示例,并且不旨在對本發(fā)明的使用范圍或功能提出任何限制。也不應(yīng)該將計算設(shè)備100解 釋為對所示出的任一組件或其組合有任何依賴性或要求。 本發(fā)明可以在計算機代碼或機器可使用指令的一般上下文中描述,機器可使用指 令包括由計算機或諸如個人數(shù)據(jù)助理或其它手持式設(shè)備等其它機器執(zhí)行的諸如程序組件 等計算機可執(zhí)行指令。 一般而言,包括例程、程序、對象、組件、數(shù)據(jù)結(jié)構(gòu)等的程序組件指的 是執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定提取數(shù)據(jù)類型的代碼。本發(fā)明的各實施例可以在各種系統(tǒng)配置 中實施,這些系統(tǒng)配置包括手持式設(shè)備、消費電子產(chǎn)品、通用計算機、專用計算設(shè)備等等。本 發(fā)明的各實施例也可以在其中任務(wù)由通過通信網(wǎng)絡(luò)鏈接的遠程處理設(shè)備執(zhí)行的分布式計 算環(huán)境中實現(xiàn)。 繼續(xù)參考圖l,計算設(shè)備100包括直接或間接耦合以下設(shè)備的總線110 :存儲器 112、一個或多個處理器114、一個或多個演示組件116、輸入/輸出(I/O)端口 118、 1/0組 件120、和說明性電源122??偩€110可以是一條或多條總線(諸如地址總線、數(shù)據(jù)總線、或 其組合)。盡管為了清楚起見用線條示出了圖1的各框,但是,實際上,描繪各組件并不是那 樣清楚,并且用比喻方法,線條更精確地將是灰色的和模糊的。例如,可以將諸如顯示設(shè)備 等演示組件認為是I/0組件。同樣,處理器具有存儲器。發(fā)明人關(guān)于此點認識到,這是本領(lǐng) 域的特性,并且重申,圖1的圖示只是例示可結(jié)合本發(fā)明的一個或多個實施例來使用的示 例性計算設(shè)備。諸如"工作站"、"服務(wù)器"、"膝上型計算機"、"手持式設(shè)備"等分類之間沒有 區(qū)別,它們?nèi)慷急徽J為是在圖1的范圍之內(nèi)的并且被稱為"計算機"或"計算設(shè)備"。
計算設(shè)備100通常包括各種計算機可讀介質(zhì)。作為示例而非限制,計算機可讀介質(zhì)可以包括隨機存取存儲器(RAM);只讀存儲器(ROM);電可擦除可編程只讀存儲器 (EEPROM);閃存或其它存儲器技術(shù);CDROM、數(shù)字多功能盤(DVD)或其它光或全息介質(zhì);磁 帶盒、磁帶、磁盤存儲或其它磁存儲設(shè)備;或可用于對所需信息進行編碼并且可由計算設(shè)備 IOO訪問的任何其它介質(zhì)。 存儲器112包括易失性和/或非易失性存儲器形式的計算機存儲介質(zhì)。存儲器可 以是可移動的、不可移動的、或其組合。示例性硬件設(shè)備包括固態(tài)存儲器、硬盤驅(qū)動器、光盤 驅(qū)動器等。計算設(shè)備100包括從諸如存儲器112或I/O組件120等各種實體讀取數(shù)據(jù)的一 個或更多個處理器。演示組件116向用戶或其它設(shè)備演示數(shù)據(jù)指示。示例性演示組件包括 顯示設(shè)備、揚聲器、打印組件、振動組件等等。1/0端口 118允許計算設(shè)備100在邏輯上耦合 至包括1/0組件120的其它設(shè)備,其中某些設(shè)備可以是內(nèi)置的。說明性組件包括話筒、操縱 桿、游戲手柄、圓盤式衛(wèi)星天線、掃描儀、打印機、無線設(shè)備等等。
示例性系統(tǒng)體系結(jié)構(gòu)的描述 現(xiàn)在轉(zhuǎn)到圖2,示出根據(jù)本發(fā)明的實施例的適用于使用文檔內(nèi)的單詞之間的關(guān)系 以及搜索查詢內(nèi)的單詞之間的關(guān)系將搜索查詢匹配到文檔的示例性系統(tǒng)體系結(jié)構(gòu)200的 示意圖。本領(lǐng)域普通技術(shù)人員將理解并認識到,圖2所示的示例性系統(tǒng)體系結(jié)構(gòu)200僅僅 是一個合適的計算環(huán)境的示例,并且不旨在對本發(fā)明的使用范圍或功能提出任何限制。也 不應(yīng)該將示例性系統(tǒng)體系結(jié)構(gòu)200解釋為對其中所示出的任何單個組件或各組件的組合 有任何依賴性或要求。 如圖所示,系統(tǒng)體系結(jié)構(gòu)200可包括分布式計算環(huán)境,其中客戶機設(shè)備215可操作 地耦合到自然語言引擎290,后者又可操作地耦合到數(shù)據(jù)存儲220。在分布式計算環(huán)境中 實現(xiàn)的本發(fā)明的實施例中,可操作耦合表示通過合適的連接將客戶機設(shè)備215和數(shù)據(jù)存儲 220鏈接到自然語言引擎290、以及其它在線組件。這些連接可以是有線或無線的。在本發(fā) 明的范圍內(nèi)的具體有線實施例的示例包括USB連接和通過網(wǎng)絡(luò)(未示出)的有線連接。本 發(fā)明的范圍內(nèi)的具體無線實施例的示例包括近程無線網(wǎng)絡(luò)和射頻技術(shù)。
應(yīng)該理解和明白,"近程無線網(wǎng)絡(luò)"的指定不旨在限制,且應(yīng)該被廣泛地解釋以至 少包括以下技術(shù)協(xié)商無線外圍(麗P)設(shè)備;近程無線空氣干擾網(wǎng)絡(luò)(例如,無線個人區(qū)域 網(wǎng)(wPAN)、無線局域網(wǎng)(wLAN)、無線廣域網(wǎng)(wWAN)、藍牙等);無線對等通信(例如,超寬 帶);以及支持設(shè)備之間的數(shù)據(jù)的無線通信的任何協(xié)議。此外,熟悉本發(fā)明的領(lǐng)域的人員應(yīng) 該理解,近程無線網(wǎng)絡(luò)可通過各種數(shù)據(jù)傳送方法來實現(xiàn)(例如,衛(wèi)星傳輸、電信網(wǎng)絡(luò)等)。因 此,要強調(diào)的是,例如,客戶機設(shè)備215、數(shù)據(jù)存儲220、以及自然語言引擎290之間的連接的 各實施例不受描述的示例所限,而是涵蓋各種各樣的通信的方法。 示例性系統(tǒng)體系結(jié)構(gòu)200包括部分上支持演示設(shè)備275的操作的客戶機設(shè)備215。 在其中客戶機設(shè)備215例如是移動設(shè)備的示例性實施例中,演示設(shè)備(例如,觸摸屏顯示) 可被設(shè)置在客戶機設(shè)備215上。此外,客戶機設(shè)備215可采用各種類型的形式的計算設(shè)備。 僅作為示例,客戶機設(shè)備215可以是個人計算設(shè)備(例如,圖1的計算設(shè)備100)、手持式設(shè) 備(例如,個人數(shù)字助理)、移動設(shè)備(例如,膝上型計算機、蜂窩電話、媒體播放器)、消費 者電子設(shè)備、各種服務(wù)器等。 在各實施例中,如上所述,客戶機設(shè)備215包括、或可操作耦合到演示設(shè)備275,該 演示設(shè)備被配置成將用戶界面(UI)顯示295演示在演示設(shè)備275上。演示設(shè)備275可被配置為能夠向用戶演示信息的任何顯示設(shè)備,如監(jiān)視器、電子顯示板、觸摸屏、液晶顯示器 (LCD)、等離子屏、一個或多個發(fā)光二極管(LED)、白熾燈、激光、電熒光光源、化學(xué)燈、彎曲 燈線、和/或熒光燈、或任何其它顯示類型、或可包括可視信息在其上投射的反射表面。雖 然上文中描述了演示設(shè)備275的若干不同配置,本領(lǐng)域的那些普通技術(shù)人員應(yīng)該理解和明 白,可采用演示信息的各種類型的演示設(shè)備作為演示設(shè)備275,且本發(fā)明的實施例不限于被 示出并描述的那些演示設(shè)備275。 在一個示例性實施例中,由演示設(shè)備275呈現(xiàn)的UI顯示295被配置成顯示與自然 語言引擎290和/或內(nèi)容發(fā)布者相關(guān)聯(lián)的網(wǎng)頁(未示出)。在一實施例中,網(wǎng)頁可展示接收 查詢和通過使用該查詢搜索因特網(wǎng)而發(fā)現(xiàn)的搜索結(jié)果的搜索輸入?yún)^(qū)域。查詢可由用戶在搜 索輸入?yún)^(qū)域處提供,或可由軟件自動生成。此外,如下文更全面討論地,查詢可包括在被提 交時調(diào)用自然語言引擎290來標(biāo)識最對應(yīng)查詢中的單詞的合適搜索結(jié)果的一個或多個魚 顯。 在圖2中示出的自然語言引擎290可采取各種類型的計算設(shè)備的形式,諸如例如, 上文中參考圖I描述的計算設(shè)備IOO。作為示例而非限制,自然語言引擎290可以是個人計 算機、臺式計算機、膝上型計算機、消費者電子設(shè)備、手持式設(shè)備(例如,個人數(shù)據(jù)助理)、各 種遠程服務(wù)器(例如,在線服務(wù)器云)、處理設(shè)備等。然而,應(yīng)當(dāng)注意,本發(fā)明不限于在這些 計算設(shè)備上實現(xiàn),而是可在處于本發(fā)明的各實施例的范圍內(nèi)的各種不同類型的計算設(shè)備的
任一種上實現(xiàn)。 此外,在一實例中,自然語言引擎290被配置為搜索引擎,該搜索引擎被設(shè)計成搜 索因特網(wǎng)和/或數(shù)據(jù)存儲220上的信息,且被設(shè)計成響應(yīng)于經(jīng)由客戶機設(shè)備215提交查詢 在搜索范圍內(nèi)從這些信息收集搜索結(jié)果。在一個實施例中,搜索引擎包括挖掘可經(jīng)由因特 網(wǎng)訪問的可用數(shù)據(jù)(例如,新聞組、數(shù)據(jù)庫、開放目錄、數(shù)據(jù)存儲220等)并構(gòu)建包含web地 址以及網(wǎng)頁或按有意義的格式存儲的其它文檔的主題的語義索引260的一個或多個web爬 尋器。在另一實施例中,搜索引擎可用于方便從響應(yīng)于被提交的查詢的語義索引中標(biāo)識并 檢索搜索結(jié)果(例如,列表、表、web地址的經(jīng)排序的次序等)。搜索引擎可由因特網(wǎng)用戶通 過設(shè)置在客戶機設(shè)備215上的web瀏覽器應(yīng)用程序訪問。因此,用戶可通過在搜索輸入?yún)^(qū) 域(例如,在由與搜索引擎相關(guān)聯(lián)的恥b瀏覽器生成的UI顯示295上顯示)中提交搜索查 詢來進行因特網(wǎng)搜索。 數(shù)據(jù)存儲220通常被配置成存儲與具有與其相關(guān)聯(lián)的可搜索內(nèi)容的文檔(包括網(wǎng) 頁)相關(guān)聯(lián)的信息。在各實施例中,此類文檔可包括但不限于網(wǎng)頁/網(wǎng)站的內(nèi)容、可經(jīng)由因 特網(wǎng)或本地內(nèi)聯(lián)網(wǎng)訪問的電子材料、以及對搜索引擎可用的其它典型資源。此外,數(shù)據(jù)存儲 220可被配置成可從中搜索對所存儲的信息的合適訪問。例如,可在數(shù)據(jù)存儲220中搜索 被選出以供自然語言引擎290處理的一個或多個文檔。在各實施例中,允許自然語言引擎 290自由地在數(shù)據(jù)存儲檢查最近被添加或修改的文檔以更新語義索引。檢查的進程可持續(xù) 地進行、以預(yù)先確定的間隔進行、或在指示對聚集在數(shù)據(jù)存儲220處的一個或多個文檔的 改變發(fā)生時進行。本領(lǐng)域普通技術(shù)人員可以理解和明白,存儲在數(shù)據(jù)存儲220中的信息可 以是可配置的,并可包括在線搜索的范圍內(nèi)的任何信息。這一信息的內(nèi)容和量決不旨在限 制本發(fā)明的各實施例的范圍。此外,雖然作為單個獨立的組件示出,但數(shù)據(jù)存儲220實際上 可以是例如數(shù)據(jù)庫集群等多個數(shù)據(jù)庫,其各部分可以駐留在客戶機設(shè)備215、自然語言引擎290、另一外部計算設(shè)備(未示出)、和/或其任何組合上。數(shù)據(jù)存儲220還可包括形成因特 網(wǎng)的計算機。 通常,自然語言引擎290提供尋找數(shù)據(jù)存儲220內(nèi)的信息的工具。在各實施例中, 自然語言引擎290接收搜索查詢并演示響應(yīng)于該查詢的搜索結(jié)果。在各實施例中,自然語 言引擎290通過應(yīng)用自然語言處理技術(shù)計算諸如從數(shù)據(jù)存儲220中取得的文檔等文檔集 中的各段的意思來操作。將這些意思存儲在語義索引260中,在執(zhí)行搜索時引用該語義索 引。最初,在用戶將查詢輸入到搜索輸入?yún)^(qū)域中時,查詢搜索流水線205分析用戶的查詢 (例如,字符串、完整單詞、短語、字母組合、符號、或問題)并確定該搜索查詢中的單詞之間 的語義關(guān)系。可使用這些關(guān)系來尋找相關(guān)搜索結(jié)果。 在一個實例中,存儲在語義索引260中的信息包括從數(shù)據(jù)存儲220中的文檔中提 取的表示,或涵蓋在在線搜索的范圍內(nèi)的任何其它材料。在下文中被稱為"語義表示"的這 種表示涉及從普通文本中提取的內(nèi)容的直觀意思并可被存儲在語義索引260中。語義表示 包括文本中與通過分析文本中的單詞之間的關(guān)系來分配的一個或多個關(guān)系相關(guān)聯(lián)的單詞。 語義索引260的體系結(jié)構(gòu)允許快速比較存儲在語義表示中的單詞和關(guān)系以及與搜索查詢 中的單詞相關(guān)聯(lián)的語義關(guān)系以檢索映射到與所提交的查詢相關(guān)的語義表示的文檔。因此, 自然語言引擎290可根據(jù)提交到搜索界面(例如,展現(xiàn)在UI顯示295上的搜索輸入?yún)^(qū)域) 中的單詞來確定用戶查詢的意思,并隨后篩選語義索引中的大量信息以尋找匹配該查詢的 意思的搜索結(jié)果。 在各實施例中,可通過執(zhí)行用于發(fā)現(xiàn)相關(guān)搜索結(jié)果的一個或多個步驟的各種功能 元件來實現(xiàn)以上過程。這些功能元件包括查詢解析組件235、文檔解析組件240、語義解釋 組件245、語義解釋組件250、解析應(yīng)用程序組件255、語義索引260、匹配組件265、以及排名 組件270。這些功能組件235、240、245、250、255、260、265、以及270通常表示動態(tài)鏈接并準(zhǔn) 備好與其它組件或設(shè)備一起使用的各個模塊化軟件例程及其相關(guān)聯(lián)的的硬件。
數(shù)據(jù)存儲220、文檔解析組件240、以及語義解釋組件250構(gòu)成索引流水線210。在 操作中,索引流水線210用于從在數(shù)據(jù)存儲220處被訪問的文檔230內(nèi)的內(nèi)容中提取被分 配給單詞的關(guān)系,并在確定這些關(guān)系后構(gòu)建語義索引260。如上所述,在被聚合以形成語義 索引260時,單詞和關(guān)系保留到從其導(dǎo)出它們的文檔230、和/或文檔230內(nèi)的內(nèi)容的位置 的映射。 通常,文檔解析組件240被配置成收集對自然語言引擎290可用的數(shù)據(jù)。在一個 實例中,收集數(shù)據(jù)包括檢查數(shù)據(jù)存儲220以掃描存儲在其中的文檔230的內(nèi)容、或其它信息 的內(nèi)容。因為可持續(xù)地更新數(shù)據(jù)存儲220內(nèi)的信息,所以收集數(shù)據(jù)的過程可按定期間隔來 連續(xù)地執(zhí)行、或在通知對文檔230中的一個或多個作出更新時執(zhí)行。 在收集來自文檔230以及其它可用源的內(nèi)容時,文檔解析組件240執(zhí)行準(zhǔn)備內(nèi)容 以用于語義分析的各種過程。這些過程可包括文本提取、實體識別、以及解析。文本提取過 程基本上涉及從文檔230的內(nèi)容提取數(shù)據(jù)的表、圖像、模板、以及文本部分以及將它們從原 始在線格式轉(zhuǎn)換為可用格式(例如,超文本標(biāo)記語言(HTML)),同時保存到從其中提取它們 的文檔230的鏈接以方便映射??呻S后將可用格式的內(nèi)容分成句子。在一個實例中,將內(nèi) 容分成句子涉及集合字符的串作為輸入、應(yīng)用一組規(guī)則來對字符串測試具體特性、并基于 這些具體特定特性將內(nèi)容分成句子。僅作為示例,被測試的內(nèi)容的具體特性可包括標(biāo)點和
10大寫形式以確定句子的起始和結(jié)束。 一旦查明一系列句子,即可任選地檢查各個句子以檢 測其中的單詞并潛在地將每一單詞識別為賓語(即,"興登堡")、事件(即,"第二次世界大
戰(zhàn)")、時間(即,"九月")、動詞("行走")或可用于提出單詞之間的區(qū)別或用于理解本句 子的意思的任何其它的單詞類別。 實體識別過程協(xié)助識別哪些單詞是名字,因為它們向問題相關(guān)的查詢(例如,誰、 哪里、何時)提供具體答案。在各實施例中,識別單詞包括將單詞標(biāo)識為名字并使用標(biāo)簽來 注釋該單詞以便于在詢問語義索引260時進行檢索。在一實例中,將單詞標(biāo)識為名字包括 在名字的預(yù)先定義列表中查找這些單詞以確定是否存在匹配。如果沒有匹配存在,可使用 統(tǒng)計信息來猜測單詞是否是名字。例如,統(tǒng)計信息可協(xié)助識別復(fù)雜名字的變體,如"USS企 業(yè)",其可具有若干常用的拼寫變體。 解析過程在被實現(xiàn)時提供對以上標(biāo)識的句子的結(jié)構(gòu)的洞察。在一個實例中,通過 應(yīng)用被維護在解析應(yīng)用程序組件255的框架中的規(guī)則來提供這些洞察。可基于詞匯功能語 法(LFG)、中心詞驅(qū)動短語結(jié)構(gòu)語法(HPSG)、組合范疇語法(CCG)、基于極簡框架或任何其 它解析框架的概率性上下文無關(guān)語法(PCFG)解析器來實現(xiàn)解析。在被應(yīng)用時,這些規(guī)則或 語法加速分析句子以查明句子中單詞之間的關(guān)系。如果解析器是LFG解析器,則單詞之間 的關(guān)系可被稱作功能結(jié)構(gòu)。解析應(yīng)用程序組件255的輸出捕捉關(guān)于句子的結(jié)構(gòu)的重要信息 (例如,動詞、主語、賓語等),該重要信息由語義解釋組件250進一步處理。
語義解釋組件250通常被配置成通過識別單詞之間的語義關(guān)系來診斷句法結(jié)構(gòu) 中的每一單詞的角色。最初,診斷可包括分析句法結(jié)構(gòu)的語法組織并將句法結(jié)構(gòu)分成各自 表示分立思想和具體事實的邏輯斷言(例如,介詞短語)。還可分析這些邏輯斷言以確定 構(gòu)成該斷言的單詞的序列中的每一個單詞的功能。如果適當(dāng),則可基于每個單詞的功能或 角色擴展單詞的序列中的一個或多個單詞以包括同義詞(即,鏈接到對應(yīng)于被擴展的單詞 的意思的其它單詞)或上位詞(hypernym)(即,鏈接到概括涉及被擴展的單詞的通用意思 的其它單詞)。可將單詞的此擴展、每一單詞在表達式中所起的功能(上文所述)、單詞的 序列中的每一個單詞的語法關(guān)系、以及由語義解釋組件250識別的關(guān)于語義表示的任何其 它信息存儲在語義索引260處。類似地,如下文中更詳細描述地,可擴展被分配給單詞的主 要角色或關(guān)系以包括涵蓋該主要角色的更通用的角色。可同樣將附加角色存儲在語義索引 260中。 語義索引260用于存儲通過索引流水線210得到的單詞之間的關(guān)系并可按在相關(guān) 領(lǐng)域中已知的方式被配置。作為示例,語義索引260可被配置為結(jié)構(gòu)上類似于常規(guī)搜索引 擎索引的倒排索引。在此示例性實施例中,倒排索引是其條目是具有指向在其上出現(xiàn)單詞 的文檔230及其中位置的指針的單詞的快速可搜索數(shù)據(jù)庫。因此,在將關(guān)于語義表示的信 息寫入到語義索引260時,索引每一單詞和相關(guān)聯(lián)的功能連同指向其中出現(xiàn)單詞的文檔中 的句子的指針。語義索引260的這種框架允許匹配組件265高效地訪問、導(dǎo)航、并匹配所存 儲的信息以取得與所提交的查詢對應(yīng)的有意義的搜索結(jié)果。 客戶機設(shè)備215、查詢解析組件235、以及語義解釋組件245構(gòu)成查詢條件檢驗流 水線205。類似于索引流水線210,查詢條件檢驗流水線205從單詞的序列中提取有意義的 信息。然而,與處理文檔230內(nèi)的段相反,查詢條件檢驗流水線205處理在查詢225內(nèi)提交 的單詞。在一個實施例中,查詢是單詞具有與彼此語義關(guān)系的自然語言查詢。例如,查詢解
11析組件235接收查詢225并執(zhí)行準(zhǔn)備單詞以用于其語義分析的各種過程。這些過程可類似 于由文檔解析組件240采用的過程,如文本提取、實體識別、以及解析。此外,可通過應(yīng)用被 維護在解析應(yīng)用程序組件255的框架中的規(guī)則來標(biāo)識查詢255的結(jié)構(gòu),進而得到查詢225 中的單詞之間的關(guān)系的有意義的表示。 在各實施例中,語義解釋組件245可按基本上類似于語義解釋組件250解釋文檔 230中的文本段的方式處理查詢。在各實施例中,語義解釋組件245可標(biāo)識構(gòu)成查詢225的 單詞之間的標(biāo)準(zhǔn)化語法關(guān)系。作為示例,標(biāo)識標(biāo)準(zhǔn)化語法關(guān)系包括將單詞是用作查詢225 的主語(動作的作用者)、賓語、謂詞、間接賓語、還是時間位置。例如,在句子"誰被約翰打 ?。?中,"誰"是主語,而"約翰"是"打敗"的標(biāo)準(zhǔn)化主語。在另一實例中,評估查詢以標(biāo)識 與單詞中的每一個相關(guān)聯(lián)的邏輯語言結(jié)構(gòu)。作為示例,評估可包括以下步驟中的一個或多 個確定查詢中的單詞中的至少一個的功能;基于該功能使用涵蓋多個意思的邏輯變量來 替換單詞;以及使用這些意思來搜索語義索引260。將從查詢225中提取的單詞和關(guān)系發(fā) 送到匹配組件265以與從文檔230提取并存儲在語義索引260處的單詞和關(guān)系進行比較。
在一示例性實施例中,匹配組件265將查詢225的單詞及其分配的關(guān)系的單詞與 語義索引260中的單詞和關(guān)系比較以查明匹配。當(dāng)查詢和文檔在兩者都具有被分配成相同 角色或關(guān)系的相同單詞時兩者匹配??墒褂谜Z義索引260中的標(biāo)簽將語義索引260中的 這些匹配映射回從其中提取這些索引的文檔230。由標(biāo)簽瞄準(zhǔn)的這些文檔230由排名組件 270收集并排序。排序可按相關(guān)領(lǐng)域內(nèi)的任何已知方法來執(zhí)行,且可包括而不限于根據(jù)匹配 的接近度排序、基于所返回的文檔230的流行度列出、或基于提交查詢225的用戶的屬性排 序。這些被排序的文檔230包括搜索結(jié)果285并被傳達給演示設(shè)備275以供以合適的格式 在UI顯示295上展示。在一個實施例中,在查詢中具有具體關(guān)系的單詞與文檔中具有具體 關(guān)系的單詞匹配時,給出較高的排名。在查詢中具有通用關(guān)系的單詞與文檔中具有通用關(guān) 系的單詞匹配時,給出較低的排名。 繼續(xù)參考圖2,此示例性系統(tǒng)體系結(jié)構(gòu)僅是可被實現(xiàn)以執(zhí)行本發(fā)明的各方面的合 適環(huán)境的一個示例且不旨在對本發(fā)明的使用或功能的范圍提出任何限制。所示的示例性系 統(tǒng)體系結(jié)構(gòu)200或自然語言引擎290也不應(yīng)該被解釋為具有涉及如圖所示的組件235、240、 245、250、255、260、265、以及270中的任何一個或組合的依賴性或需求。在某些實施例中, 組件235、240、245、250、255、260、265、以及270中的一個或多個可被實現(xiàn)為獨立設(shè)備。在其 它實施例中,可將組件235、240、245、250、255、260、265以及270中的一個或多個直接集成 到客戶機設(shè)備215中。本領(lǐng)域普通技術(shù)人員可以理解,圖2所示的組件235、240、245、250、 255、260、265、以及270在本質(zhì)和數(shù)量上是示例性的,并且不應(yīng)被解釋為限制。
因此,可以采用任何數(shù)量的組件來實現(xiàn)本發(fā)明的各實施例的范圍內(nèi)的所需功能。 盡管為了清楚起見用線條示出了圖2的各組件,但是在實際上,各組件的輪廓并不是那樣 清楚,并且按比喻的說法,線條更精確地將是灰色的或模糊的。此外,雖然將圖2的某些組 件示為單個框,但是這些描述在本質(zhì)和數(shù)量上是示例性的且不應(yīng)被解釋為限制(例如,雖 然僅示出一個演示設(shè)備275,多得多的設(shè)備可通信耦合到客戶機設(shè)備215)。
現(xiàn)在轉(zhuǎn)到圖3,顯示示出根據(jù)本發(fā)明的實施例的擴展并索引句子內(nèi)單詞之間的語 義關(guān)系的方法的流程圖。在步驟310,接收具有包括文本的內(nèi)容的第一電子文檔??蓪⒃?電子文檔存儲在諸如數(shù)據(jù)存儲220等數(shù)據(jù)存儲中。電子文檔可以是網(wǎng)站、電子數(shù)據(jù)表、文字
12處理文件、電子郵件、或其它此類電子文檔。文本包括被組織成根據(jù)諸如英語或法語等已知 語言的協(xié)議來傳達意思的單詞。本發(fā)明的實施例不限于具體語言且可等效地應(yīng)用于任何語
曰o 在步驟315,將該文本解析成一個或多個句子。通過將被設(shè)計成識別給定語言中的 句子的算法應(yīng)用到文本來解析句子。句子中的單詞定義了彼此相關(guān)的角色。例如,在句子 "約翰在工作時讀書"中,約翰是主語,書是賓語,而讀是形成約翰與書之間的關(guān)系的動詞。 "讀"和"工作"處于由"在"所述的關(guān)系中。在步驟320,句子中的一單詞被確定為處于第 一角色中。還可向句子中的其余單詞分配角色。句子中的多個單詞可能具有相同角色。例 如,句子可具有超過一個的主語或賓語。 在步驟325,確定單詞具有超過一個的潛在角色。換言之,單詞可扮演超過一個的 角色。例如,在句子"約翰在工作時讀書"中,"在"可以是描述約翰在何時讀或約翰在何處 讀的角色類型。通過參考一個或多個角色分層結(jié)構(gòu)來確定一單詞具有超過一個的可能角 色。角色分層結(jié)構(gòu)的示例在圖4和5中示出。為了說明起見簡化這些角色分層結(jié)構(gòu)。工作 角色分層結(jié)構(gòu)可包含眾多關(guān)系。角色分層結(jié)構(gòu)包括至少兩層。第層即根節(jié)點是單詞之間的 關(guān)系的更通用的表達。根節(jié)點下的子層包含對由根節(jié)點描述的關(guān)系的更具體的實施例。
現(xiàn)在轉(zhuǎn)到圖4,示出可結(jié)合彼此使用的三個角色分層結(jié)構(gòu)。角色分層結(jié)構(gòu)410包括 根節(jié)點"核心"412以及子節(jié)點"主語"414禾口"賓語"416。"主語"414禾口"賓語"416處于同 一層上,且因此具有相等的具體性。角色分層結(jié)構(gòu)420包括"中心詞"422和"關(guān)系"424。角 色分層結(jié)構(gòu)430包括根節(jié)點"模糊"432、子節(jié)點"何處"434、"何時"436、以及"為什么"438。 子節(jié)點"何處"434具有子節(jié)點"離開"440以及"在"442。子節(jié)點"何時"436具有子節(jié)點 444 "之前"、"在"446、以及"之后"448。根節(jié)點"核心"412、"中心詞"422、以及"模糊"432 可用作涵蓋角色分層結(jié)構(gòu)中在它們之下的所有關(guān)系的占位符。角色分層結(jié)構(gòu)的同一層上的 關(guān)系被認為具有相同水平的具體性。例如,角色"主語"414和角色"賓語"416是同等具體 的。 查看角色分層結(jié)構(gòu)430,可以看到"在"表現(xiàn)為"何處"434和"何時"的子節(jié)點。因 此,"在"可具有超過一個的可能角色。在示例句子"約翰在工作時讀書"中,"在"描述"讀" 與"工作"之間的關(guān)系。"在"將是與工作相關(guān)聯(lián)的第一關(guān)系,而"何處"434、"何時"436、和 /或"模糊"432可被關(guān)聯(lián)作與工作的次要關(guān)系。在一個實施例中,所有四個可能的關(guān)系都 與單詞"工作"相關(guān)聯(lián)。圖4示出在分析單詞之間的關(guān)系時可使用多個角色分層結(jié)構(gòu)。或 者,可將所有關(guān)系表達在如圖5所示的單個分層結(jié)構(gòu)中。 現(xiàn)在轉(zhuǎn)到圖5,根據(jù)本發(fā)明的一實施例示出示例單個角色分層結(jié)構(gòu)500。根節(jié)點 是"角色"505。子節(jié)點的第一層包括"核心"510、"關(guān)系"530、以及"模糊"540。在節(jié)點"核 心"510之下是"本質(zhì)"512和"發(fā)起者"516。"本質(zhì)"512之下的節(jié)點包括"受者"518和"主 題"520。在節(jié)點"發(fā)起者"516下的是節(jié)點"效應(yīng)物"522禾P"作用者"524。在節(jié)點"何處"542 下是節(jié)點"離開"550以及"在"552。在節(jié)點"何時"544下是節(jié)點554 "之前"、"在"556、 以及"之后"558。如"在"所示,單個關(guān)系可以是超過一個父節(jié)點的子節(jié)點。核心角色是對 具有關(guān)系角色的元素而言視為基本的參與者的角色。這涉及作為自愿(作用者)或非自愿 (效應(yīng)物)的改變的原因(發(fā)起者)的參與者,以及參與而不導(dǎo)致改變(本質(zhì))的參與者、 他們或者經(jīng)受改變(受者)或不經(jīng)受改變(主題)。例如,在"約翰打破窗戶"中,"約翰"是作用者而"窗戶"是受者,在"風(fēng)暴打破窗戶"中,"風(fēng)暴"是效應(yīng)物。在"約翰看見風(fēng)暴"中, "風(fēng)暴"是主題。 現(xiàn)在回到圖3,在步驟330,將第二角色分配到已經(jīng)被分配了主要角色的單詞。還
可將次要角色分配給句子中的其它角色。通過在角色分層結(jié)構(gòu)上向上移動一層或多分層來 分配第二角色。例如,再次參考圖5,在第一角色是"在"時,第二角色可以是"何處"54、"何 時"544、和/或"模糊"540。在步驟335,將單詞與第一角色和第二角色一起存儲在將單詞 和句子與該句子來自其中的第一電子文檔相關(guān)聯(lián)的索引中。這允許搜索引擎將第一電子文 檔與包括具有類似角色的類似單詞的搜索查詢匹配。在一個實施例中,將單詞和所分配的 角色存儲在項中。該項可由一個單詞和一個角色組成。因此,項可以是"工作.在"或"工 作.何時"或"工作.何處"。在另一實施例中,項包括單詞和關(guān)系以及一個或多個在有效 載荷中的附加關(guān)系。因此,項可以是工作.模糊(在、何處、何時)。有效載荷包括(在、何 處、何時)。在此示例中,單詞與角色分層結(jié)構(gòu)中最通用的角色相關(guān)聯(lián)且子角色被包括在有 效載荷中。第二實施例可潛在地節(jié)省索引中的存儲器空間。 在步驟340,接收到使用與句子中的單詞相同的單詞的搜索查詢??赏ㄟ^由搜索 引擎通過因特網(wǎng)呈現(xiàn)的用戶界面來接收搜索查詢。還可按其它方式來接收搜索查詢。在一 實施例中,搜索查詢是使用有如其在言語中所使用彼此的關(guān)系中的單詞的自然語言查詢。 在步驟345,確定來自查詢的單詞在搜索查詢內(nèi)的第一角色中使用。在步驟350,確定單詞 在搜索查詢內(nèi)具有超過一個的潛在角色。如前所述,如果一單詞出現(xiàn)在角色分層結(jié)構(gòu)的子 層中,則可確定其具有更多的潛在角色。在步驟355,將附加角色分配到查詢中的單詞。因 此,在步驟355完成時,擴展了查詢中的至少一個單詞的角色,且電子文檔中的至少一個單 詞的角色被擴展并存儲在索引中。 在步驟360,搜索索引以尋找具有按第一角色和第三角色中的一個或多個使用的 第一單詞的一個或多個電子文檔。回想,第一角色和第三角色是結(jié)合單詞在搜索查詢中的 出現(xiàn)而被分配到單詞的角色。在步驟365,確定第一電子文檔匹配搜索查詢。第一電子文檔 是對搜索查詢的匹配,因為其包含第一角色中的第一單詞。在步驟370,具有分配到第一角 色和第三角色的第一單詞的第二電子文檔是對搜索查詢的第二匹配。在步驟375,第二電子 文檔被排序為比第一電子文檔更好的對搜索查詢的匹配,因為第二電子文檔包含與被分配 到查詢的角色共同的兩個角色而不是僅一個共同角色相關(guān)聯(lián)的單詞。具體而言,該單詞在 查詢和第二文檔兩者中的出現(xiàn)都與第一角色和第三角色相關(guān)聯(lián)。在另一實施例中,與其中 相同單詞在搜索查詢和文檔兩者中與更通用的角色相關(guān)聯(lián)的另一文檔相比,在相同單詞在 文檔和搜索查詢兩者中與相同具體角色相關(guān)聯(lián)時給出較高排名。 圖6示出索引句子內(nèi)的單詞和角色并將該句子匹配到兩個示例查詢。在此實施例
中,來自句子的單詞和被分配到句子中的這些單詞的角色兩者被擴展并添加到索引。在由 圖6示出的實施例中,不擴展查詢中的單詞和角色。句子"約翰看見貓"620的語義分析在 索引中生成一系列條目,這些條目將與句子620以及從中取得該句子620的文檔相關(guān)聯(lián)。 未示出該對句子和文檔的關(guān)聯(lián)。項包括約翰.主語622。下一項是約翰.核心624,其為分 配給約翰的主語角色的擴展。下一項是人.主語626。項626擴展單詞約翰并將其分配給 未擴展的角色主語。下一項人.核心628包括約翰的擴展單詞和主語的擴展角色。項實 體.主語630是與未擴展的角色主語相關(guān)聯(lián)的約翰的進一步擴展。項實體.核心632是對約翰和主語兩者的擴展。在此示例中,實體用作任何名詞的通配符。項看見.關(guān)系634包 括未擴展的單詞和未擴展的關(guān)系或角色。下一項是感知.關(guān)系636,它包括單詞看見的擴展 以及未擴展的角色關(guān)系。下一項貓.賓語638是未擴展的單詞和未擴展的角色的組合。項 貓.核心640包括未擴展的單詞貓以及擴展的角色核心。項貓科動物.賓語642包括貓的 擴展單詞,即貓科動物,以及未擴展角色。下一項貓科動物.核心644包括單詞貓的擴展以 及角色的擴展。下一項動物.賓語646包括對單詞貓的進一步擴展以及未擴展角色。下一 項動物.核心648包括對單詞貓的進一步擴展以及角色的擴展。下一項實體.賓語650還 包括與未擴展角色相關(guān)聯(lián)的單詞貓的進一步擴展。最終項實體.核心652包括擴展的單詞 以及擴展的關(guān)系。 可將第一示例查詢"誰感知某事?"610分解成三個項。第一項是代表主語的人.主 語612。選擇單詞人,因為響應(yīng)于詢問誰的查詢來搜索人。下一項是感知.關(guān)系614,而最 后一項是實體.賓語616。因此,此查詢將匹配其中人是主語、該人感知、以及實體是賓語的 句子。如可以看到地,項612是與索引中的項626的匹配670。項614是與索引中的項636 的匹配672,而項616是與索引中的項650的匹配674。因此,包含"約翰看見貓"620的文 檔將響應(yīng)于查詢"誰感知某事"610匹配。 可將第二示例查詢"誰看見動物? "660分解成三個未擴展的項。項包括人.主語 662、看見.關(guān)系664、以及動物.賓語668。項662形成與項626的匹配676。項664是與 項634的匹配677。項668是與項646的匹配678。因此,可通過非常寬泛的查詢"誰感知 某事"610以及更具體的查詢"誰看見動物"660來找到句子"約翰看見貓"620,因為拓寬或 擴展了句子620中的項和關(guān)系以便它們匹配更通用的查詢。還保留更具體的角色以便更具 體的查詢也找到匹配。 在圖6所示的實施例中,擴展與文檔中的句子相關(guān)聯(lián)的單詞和角色兩者,而不擴 展查詢中的單詞和角色。在另一實施例中,擴展查詢中的角色,而不擴展來自文檔中的句子 的角色。此實施例由圖7示出,其顯示在句子沒有角色擴展但在查詢中擴展角色的映射。為 了說明起見,使用句子"約翰在工作"730??蓪⒕渥?30分解成項約翰.主語732、人.主 語734、實體.主語735、是.關(guān)系736、實體.在738、以及工作.在739。在此情況下,在一
個實例中將約翰擴展成人和實體,并將工作擴展成實體。然而,不擴展角色。
可將示例查詢"誰在某處?"710分解成三個未擴展的項。這些未擴展的項包括 人.主語712、是.關(guān)系714以及實體.在718。添加具有擴展角色的兩個附加項并使用它 們搜索索引。具有擴展角色的第一項是實體.離開716。具有擴展角色的第二項是實體.何 處720。如可以看到的,項712是與項734的匹配760,項714是與項736的匹配762,而項 718是與項738的匹配764。因此,查詢"誰在某處?"將找到句子"約翰在工作"。
可將第二示例查詢"約翰在何處? " 740分解成項約翰.主語742、是.關(guān)系744、 實體.離開746、實體.在748、以及實體.何處750。如可以看到地,擴展了與實體相關(guān)聯(lián) 的關(guān)系。項742形成與項732的匹配770,項744形成與項736的匹配772,而項748形成 與項738的匹配774。因此,查詢"約翰在何處? "740將找到句子"約翰在工作"。
圖6和7示出擴展查詢或來自文檔的句子任一中的角色。在一實施例中,在查詢 和句子兩者中均擴展與單詞相關(guān)聯(lián)的角色。此實施例在圖8中示出。現(xiàn)在轉(zhuǎn)到圖8,根據(jù)本 發(fā)明的一實施例示出將擴展的查詢與擴展的句子匹配的示例。在圖8中,擴展了與查詢中的單詞相關(guān)聯(lián)的角色和與索引句子中的單詞相關(guān)聯(lián)的角色兩者。將句子"約翰在工作時閱 讀"820分解成若干項。這些項包括約翰.主語822、約翰.核心824、人.主語826、人.核 心828、實體.主語830、閱讀.關(guān)系832、工作.在834、工作.何處836、工作.模糊838、 實體.在840、實體.何處842、實體.模糊844、以及實體.何時846。如可看到地,單詞約 翰被擴展成人和實體而單詞工作被擴展成實體。類似地,角色"主語"被擴展成與約翰相關(guān) 聯(lián)的"核心",而角色"在"被擴展成與工作相關(guān)的"何處"、"模糊"、以及"何時"??蓪⒌谝?查詢"在工作期間閱讀"810分解成項閱讀.關(guān)系812、以及可被擴展成工作.何時816的 工作.期間814。此查詢不是被索引的句子820的匹配,因為在與句子820相關(guān)聯(lián)的索引項 中找不到項814或816。在此實施例中,查詢中的所有項必須匹配索引中的項。然而,在其 它實施例中,對文檔而言在不是來自查詢的所有項可匹配索引中的項時匹配也存在。
可將第二示例查詢"在工作之前閱讀"850分解成項閱讀.關(guān)系852、工作.之前 854以及工作.何時856。將響應(yīng)于第二查詢850返回句子"約翰在工作時閱讀"820,因為 項832是與項860的匹配。類似地,項846形成與查詢中的項856的匹配862。因此,在本 發(fā)明的各實施例中,可在索引、查詢、或兩者中擴展角色。 現(xiàn)在轉(zhuǎn)到圖9,示出根據(jù)本發(fā)明的實施例的使用角色分層結(jié)構(gòu)來索引文檔內(nèi)容的 方法的流程圖。在步驟910,接收作為文檔的一部分的句子。在步驟915,將角色分配給句 子中的單詞。如前所述,角色的類型可以是單詞之間的語義關(guān)系。在步驟920,使用角色分 層結(jié)構(gòu)向單詞分配至少一個附加角色。角色分層結(jié)構(gòu)包括角色的分層結(jié)構(gòu),包括通用的根 角色和比根角色更具體的至少一層子角色。因此,向來自句子的至少一個單詞分配至少兩 個角色??蓪蝹€角色分配給多個單詞。如前所述,附加角色是更通用的且從角色分層結(jié) 構(gòu)上的較高層取得。 在步驟925,存儲單詞以及被分配到各個單詞的一個或多個角色。將這些單詞和角 色存儲在將單詞和句子與句子來自其中的文檔相關(guān)聯(lián)的索引中。在一實施例中,還可結(jié)合 關(guān)系擴展單詞。擴展角色和單詞兩者可造成要索引的項的增長。如前所述,項是單詞和分 配給該單詞的角色的組合。在一實施例中,按照單個項中的單個角色存儲項。在另一實施 例中,將單詞存儲在項中,該項包括單詞和與該單詞相關(guān)聯(lián)的最寬泛角色以及與單詞相關(guān) 聯(lián)的更具體的其它關(guān)系的有效載荷。 在步驟930,接收到包含多個單詞的自然語言搜索查詢。在步驟935,將主要角色
分配給來自搜索查詢的多個單詞中的單詞。在步驟940,使用角色分層結(jié)構(gòu)將至少一個附加
角色分配給多個單詞中的至少一個單詞。在步驟945,確定在索引中引用的一個或多個文檔
具有分配到相同角色中的一個或多個的多個單詞中的至少一個單詞。在步驟950,對一個或
多個文檔排名。給予具有分配相同角色的更為匹配的單詞的文檔較高排名。此外,在與較
具體的角色相關(guān)聯(lián)的單詞匹配索引中具有相同具體角色的相同單詞時,給出較高排名???br>
向提交搜索查詢的用戶完整或部分顯示匹配該搜索查詢的一個或多個文檔。 參考各具體實施例描述了本發(fā)明,各具體實施例在所有方面都旨在是說明性的而
非限制性的。在不背離本發(fā)明范圍的情況下各替換實施例對本發(fā)明所屬領(lǐng)域的普通技術(shù)人
員將變得顯而易見。 從前述內(nèi)容可知,本發(fā)明很好地適用于實現(xiàn)前述的所有目的和目標(biāo),并且具有對 于該系統(tǒng)和方式是顯而易見且固有的其它優(yōu)點??梢岳斫?,特定的特征和子組合是有用的,并且可以在不參考其它特征和子組合的情況下使用。這由權(quán)利要求書所構(gòu)想并在其范圍之 內(nèi)。
權(quán)利要求
一個或多個其上實施有用于執(zhí)行擴展并索引句子內(nèi)單詞之間的語義關(guān)系的方法的計算機可執(zhí)行指令的計算機可讀介質(zhì),所述方法包括接收310具有包括文本的內(nèi)容的第一電子文檔;將所述文本分315成一個或多個句子;確定320所述句子中的單詞的第一角色;確定325所述單詞具有超過一個的潛在角色;向所述單詞分配330第二角色;以及將所述單詞與所述第一角色和所述第二角色一起存儲335在將所述單詞和所述句子與所述第一電子文檔相關(guān)聯(lián)的索引中,進而允許搜索引擎將所述第一電子文檔與包括具有類似角色的類似單詞的搜索查詢匹配。
2. 如權(quán)利要求1所述的介質(zhì),其特征在于,所述方法還包括 接收包含所述單詞的所述搜索查詢; 確定所述單詞在所述搜索查詢內(nèi)按所述第一角色使用; 確定所述單詞在所述搜索查詢內(nèi)具有超過一個的潛在角色;以及 向所述單詞分配第三角色。
3. 如權(quán)利要求2所述的方法,其特征在于,所述方法還包括搜索所述索引以尋找具有按所述第一角色和所述第三角色中的一個或多個使用的所 述單詞的一個或多個電子文檔。確定所述第一電子文檔是對所述搜索查詢的第一匹配;確定具有分配到所述第一角色和所述第三角色的所述單詞的第二電子文檔是對所述 搜索查詢的第二匹配;以及將所述第二電子文檔排名為與所述第一電子文檔相比對所述搜索查詢更好的匹配,因 為所述第二電子文檔具有使用被分配到所述搜索查詢中的所述單詞的相同角色的角色的 所述單詞。
4. 如權(quán)利要求2所述的方法,其特征在于,所述方法還包括確定與所述索引中的條目相關(guān)聯(lián)的至少兩個文檔包含與所述第一角色或所述第三角 色相關(guān)聯(lián)的所述單詞;以及向包含與被分配到所述搜索查詢中的所述單詞的相同角色中的更多個相關(guān)聯(lián)的所述 單詞的文檔分配較高排名。
5. 如權(quán)利要求1所述的介質(zhì),其特征在于,使用角色分層結(jié)構(gòu)分配所述第二角色,其中 所述角色分層結(jié)構(gòu)包括角色的分層結(jié)構(gòu),包括通用的根角色以及比所述根角色更具體的至 少一層子角色。
6. 如權(quán)利要求1所述的介質(zhì),其特征在于,將所述單詞與所述第一角色和所述第二角 色一起存儲包括在所述索引中創(chuàng)建包括所述單詞和所述第一角色的第一項并在所述索引 中創(chuàng)建包括所述單詞和所述第二角色的第二項。
7. 如權(quán)利要求1所述的介質(zhì),其特征在于,將所述單詞與所述第一角色和所述第二角 色一起存儲包括在所述索引中創(chuàng)建包括所述單詞和所述第一角色以及所述第二角色的項。
8. —種用于將搜索查詢匹配到一個或多個文檔內(nèi)的文本的計算機化系統(tǒng),所述系統(tǒng)包括用于以下功能的第一語義解釋組件250(1) 向所述搜索查詢中的單詞分配主要角色;(2) 使用角色分層結(jié)構(gòu)向來自所述搜索查詢具有所述主要角色的至少一個單詞分配附 加角色;用于確定在索引中引用的至少一個文檔包括來自搜索查詢的單詞的匹配組件265,其中向所述至少一個文檔中的單詞以及所述搜索查詢中的單詞分配所述相同角色中的至少 一個。
9. 如權(quán)利要求8所述的計算機化系統(tǒng),其特征在于,還包括用于演示描述所述至少一 個文檔的信息的演示組件。
10. 如權(quán)利要求8所述的計算機化系統(tǒng),其特征在于,所述第一語義解釋組件通過將所 述搜索查詢中的一個或多個單詞的同義詞和上位詞中的至少一個添加到搜索項的列表來 生成對所述索引搜索的附加單詞,其中搜索項包括單個單詞和相關(guān)聯(lián)的角色,且其中所述 同義詞和所述上位詞形成具有被分配到所述同義詞和所述上位詞對其是同義詞和上位詞 的一個或多個單詞的角色的搜索項。
11. 如權(quán)利要求8所述的計算機化系統(tǒng),其特征在于,還包括用于對一個或多個文檔排 名的排名組件,其中在所述搜索查詢中的被分配超過一個角色的所述單詞具有與在所述索 引中出現(xiàn)的所述單詞共同的多個角色時給予較高排名。
12. 如權(quán)利要求8所述的計算機化系統(tǒng),其特征在于,還包括 用于以下功能的第二語義解釋組件(1) 接收作為文檔的一部分的句子;(2) 向句子中的單詞分配主要角色;(3) 使用所述角色分層結(jié)構(gòu)向所述句子中具有所述主要角色的至少一個單詞分配至少 一個附加角色;以及用于將所述句子中的所述單詞與被分配到所述句子中的單詞的所述至少一個角色一 起存儲在所述索引中的索引組件,所述索引將所述句子中的單詞和所述句子與所述文檔相 關(guān)聯(lián)。
13. 如權(quán)利要求12所述的計算機化系統(tǒng),其特征在于,所述索引組件索引包括單個單 詞和被分配的角色的項中的所述單詞和所述角色,其中每一項包括一個單詞和一個角色。
14. 如權(quán)利要求12所述的計算機化系統(tǒng),其特征在于,所述索引組件索引包括單個單 詞和被分配的角色的項中的所述單詞和所述角色,其中每一項包括一個單詞和至少一個角 色,進而允許在單個項中包括多個角色。
15. —個或多個其上包含用于執(zhí)行使用角色分層結(jié)構(gòu)來索引文檔內(nèi)容的方法的計算機 可執(zhí)行指令的計算機存儲介質(zhì),所述方法包括接收910作為文檔的一部分的句子; 向所述句子中的單詞分配915角色;使用所述角色分層結(jié)構(gòu)向所述單詞分配920至少一個附加角色,其中所述角色分層結(jié) 構(gòu)包括角色的分層結(jié)構(gòu),包括通用的根角色以及比所述根角色更具體的至少一層子角色, 進而向至少一個單詞分配至少兩個角色,以及將所述單詞與被分配到各個單詞的一個或多個角色一起存儲925在將所述單詞和所述句子與所述文檔相關(guān)聯(lián)的索引中。
16. 如權(quán)利要求15所述的介質(zhì),其特征在于,存儲所述單詞和所述角色包括生成包括單詞和被分配的角色的項,其中每一項包括一個單詞和一個角色。
17. 如權(quán)利要求15所述的介質(zhì),其特征在于,存儲所述單詞和所述角色包括生成包括 單詞和被分配的角色的項,其中每一項包括一個單詞和至少一個角色,進而允許在單個項 中包括多個角色。
18. 如權(quán)利要求15所述的方法,其特征在于,所述方法還包括 接收包含多個單詞的自然語言搜索查詢; 向所述多個單詞中的單詞分配主要角色;使用角色分層結(jié)構(gòu)向所述多個單詞中的至少一個單詞分配至少一個附加角色;以及 確定在所述索引中被引用的一個或多個文檔具有所述多個單詞中被分配到所述相同 角色中的一個或多個的至少一個單詞。
19. 如權(quán)利要求18所述的方法,其特征在于,所述方法還包括對所述一個或多個文檔排名,其中給予具有更匹配單詞和角色的文檔較高排名,且其 中向所述多個單詞中與多個角色相關(guān)聯(lián)的、具有與所述單詞在所述索引中出現(xiàn)的較多共同 角色的單詞給予較多排名點。
20. 如權(quán)利要求19所述的介質(zhì),其特征在于,所述方法還包括根據(jù)被分配到所述一個 或多個文檔中的每一個的排名顯示所述一個或多個文檔。
全文摘要
提供用于尋找數(shù)據(jù)存儲中匹配由用戶提交的自然語言查詢的文檔的方法、系統(tǒng)以及計算機可讀介質(zhì)。通過確定查詢內(nèi)的單詞彼此具有與文檔中的相同單詞相同的關(guān)系來匹配文檔和查詢。對文檔進行語義分析且索引文檔中的單詞連同該單詞在句子中扮演的角色??墒褂媒巧謱咏Y(jié)構(gòu)來生成初始語義角色并將其連同原始角色一起存儲在索引中??蓪㈩愃品治鲇糜谒阉鞑樵円詫ふ以诓樵兒臀臋n兩者中按相同角色使用的單詞。
文檔編號G06F17/27GK101796510SQ200880105548
公開日2010年8月4日 申請日期2008年9月2日 優(yōu)先權(quán)日2007年8月31日
發(fā)明者C·P·沃爾特斯, G·L·蒂奧內(nèi), M·H·范登伯格, R·S·克魯奇 申請人:微軟公司