两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

處理在處理自然語言查詢中的故障的制作方法

文檔序號:11620592閱讀:198來源:國知局
處理在處理自然語言查詢中的故障的制造方法與工藝
優(yōu)先權(quán)聲明本申請根據(jù)35u.s.c.§119(e)要求于2015年9月11日提交的名稱為“handlingfailuresinprocessingnaturallanguagequeriesthroughuserinteractions”的美國臨時專利申請序列號no.62/217,260的提交日期的優(yōu)先權(quán),其全部內(nèi)容通過引用合并于此。本說明書涉及處理在處理自然語言查詢中的故障。
背景技術(shù)
:當計算機系統(tǒng)試圖處理由用戶提供的自然語言查詢以提供匹配的搜索結(jié)果時,可能發(fā)生故障??梢允褂玫P蛠硖幚磉@些故障。然而,在該上下文中實現(xiàn)迭代模型可能是禁止的,例如,通常需要可能在用戶提供的自然語言查詢中使用的術(shù)語的完全定義集合。技術(shù)實現(xiàn)要素:本說明書描述了用于處理在從自然語言查詢生成sql查詢中的故障的技術(shù)。通常,能用方法體現(xiàn)在本說明書中描述的主題的一種創(chuàng)新方面,所述方法包括以下動作:通過自然語言前端從用戶獲得自然語言查詢;將自然語言查詢轉(zhuǎn)換成將在知識庫的結(jié)構(gòu)化應(yīng)用編程接口(api)上執(zhí)行的結(jié)構(gòu)化操作,包括:解析所述自然語言查詢,分析所解析的查詢以確定依賴性,執(zhí)行詞法分辨,基于依賴性和詞法分辨來形成概念樹,分析所述概念樹以生成超圖,基于所述超圖來生成虛擬查詢,以及處理所述虛擬查詢以生成一個或多個結(jié)構(gòu)化操作;在知識庫的結(jié)構(gòu)化api上執(zhí)行一個或多個結(jié)構(gòu)化操作;以及將與自然語言查詢匹配的搜索結(jié)果返回給用戶。該方面的其他實施例包括相應(yīng)的計算機系統(tǒng)、裝置和記錄在一個或多個計算機存儲介質(zhì)上的計算機程序,每一個被配置為執(zhí)行方法的動作。對于被配置為執(zhí)行特定操作或動作的一個或多個計算機的系統(tǒng),是指該系統(tǒng)上安裝有軟件、固件、硬件或它們的組合,在操作中使得該系統(tǒng)執(zhí)行操作或動作。對于被配置為執(zhí)行特定操作或動作的一個或多個計算機程序,是指一個或多個程序包括指令,所述指令在由數(shù)據(jù)處理裝置執(zhí)行時使該裝置執(zhí)行操作或動作。上述和其他實施例每一個可以可選地包括下述特征中的一個或多個,單獨的組合。具體地,一個實施例包括結(jié)合的所有下述特征。解析所述自然語言查詢包括將所述自然語言查詢分成短語并且將短語作為節(jié)點放在解析樹中。執(zhí)行詞法分辨包括生成用于一個或多個所解析的短語的概念。分析所述概念樹包括:分析概念樹中的概念以及父-子或兄弟姐妹關(guān)系;以及變換概念樹包括用新信息注釋概念、移動概念、刪除概念或?qū)⒏拍钆c其他概念合并。超圖表示數(shù)據(jù)庫模式,其中數(shù)據(jù)表可以具有它們之間的多個聯(lián)合映射。該方法進一步包括分析超圖,包括使用概念樹來執(zhí)行用于聯(lián)合的路徑分辨。該方法進一步包括在將自然語言查詢轉(zhuǎn)換成一個或多個結(jié)構(gòu)化操作期間檢測故障。該方法進一步包括通過包括確定用于自然語言查詢的替代解析是否可用的另外的處理來解決故障。該方法進一步包括通過包括以下操作的另外的處理來解決故障:通過用戶交互界面向用戶提供識別故障的一個或多個信息項;響應(yīng)于與信息項的用戶交互:以及根據(jù)用戶交互,修改自然語言查詢以生成一個或多個結(jié)構(gòu)化操作。故障能基于不良解析、歧義列引用、歧義常量、歧義日期時間、未用比較關(guān)鍵字或否定關(guān)鍵字、聚合錯誤、丟失聯(lián)合步驟、未處理概念、不匹配的名詞短語或丟失數(shù)據(jù)訪問中的一個或多個。知識庫、自然語言前端和用戶交互界面被實現(xiàn)在一個或多個計算機和存儲指令的一個或多個存儲設(shè)備上,以及其中,知識庫根據(jù)數(shù)據(jù)模式來存儲與實體相關(guān)聯(lián)的信息并且具有用于查詢知識庫的程序的api。本說明書中所述的主題能在特定實施例中實現(xiàn)以便實現(xiàn)以下優(yōu)點中的一個或多個。能減少用于處理在處理自然語言查詢中的故障的努力。通過用戶交互,能使自然語言詞語匹配到由自然語言處理系統(tǒng)識別的詞典,減少可能出現(xiàn)在自然語言查詢中先期對查詢詞語的完整定義的需要。而且,在用戶提供的自然語言查詢中檢測到的語言歧義能當它們出現(xiàn)時被解決,消除了基于每一替選解釋來產(chǎn)生搜索結(jié)果的需要。此外,能更早引起用戶對數(shù)據(jù)訪問問題的關(guān)注,沒有任何違反數(shù)據(jù)安全的風險。在從自然語言查詢生成結(jié)構(gòu)化查詢中能最小化用戶交互。具體地,系統(tǒng)經(jīng)由評估解析以及在解析和處理以自然語言表達的輸入查詢期間通過識別某些錯誤或警告生成的結(jié)構(gòu)化查詢的質(zhì)量,通過用戶動作,使用技術(shù)來避免不必要迭代。該評估允許系統(tǒng)執(zhí)行提供將自然語言查詢翻譯成結(jié)構(gòu)化查詢同時克服解析器的一些缺點或自然語言查詢中的一些語法/結(jié)構(gòu)錯誤的操作。因此,該系統(tǒng)通常能從緊湊的句子或甚至短語確定結(jié)構(gòu)查詢的內(nèi)容。這提高了用戶體驗并且使得更有用地將自然語言查詢翻譯成結(jié)構(gòu)化查詢。在一些情況下,該系統(tǒng)在沒有用戶交互的情況下不能確定結(jié)構(gòu)化查詢。在那些情況下,該系統(tǒng)嘗試引導用戶進行能解決錯誤并且導致成功翻譯成結(jié)構(gòu)化查詢的校正。例如,如果有歧義,該系統(tǒng)能識別并且呈現(xiàn)可能的解釋和選擇以消歧。這幫助用戶在那些情況下快速地校正自然語言查詢并且提高生成結(jié)構(gòu)化查詢的速度。系統(tǒng)允許未面臨特定數(shù)據(jù)領(lǐng)域或查詢語言的用戶使用自然語言查詢來獲得特別所期望的信息。該系統(tǒng)接受以純英文(或用戶選擇的語言)呈現(xiàn)的查詢并且通過使用nlp(自然語言處理)技術(shù)處理它以在查詢后端生成和運行相應(yīng)的結(jié)構(gòu)化查詢并且將結(jié)果返回給用戶。為了處理自然語言查詢,生成多個模式詞典,其提供用來處理自然語言查詢的多個映射。在附圖和下述描述中闡述本說明書的主題的一個或多個實施例的細節(jié)。主題的其他特征、方面和優(yōu)點從描述、附圖和權(quán)利要求將變得顯而易見。附圖說明圖1是將自然語言查詢轉(zhuǎn)換成結(jié)構(gòu)查詢的示例性過程的流程圖。圖2是示出用于通過用戶交互來處理在處理自然語言查詢中的故障的示例性系統(tǒng)的框圖。圖3是示出用于在查詢版本上迭代的示例性過程的流程圖。圖4-7是示例性概念樹的圖。圖8是示出用于通過用戶交互來處理丟失令牌故障的示例性過程的框圖。圖9是示出用于通過用戶交互來處理詞典匹配故障的示例性過程的框圖。圖10是示出用于通過用戶交互來處理數(shù)據(jù)訪問故障的示例性過程的框圖。圖11是示出用于通過用戶交互來處理語言歧義故障的示例性過程的框圖。圖12是示出用于通過用戶交互來處理在處理自然語言查詢中的故障的示例性過程的流程圖。不同圖中相同的參考數(shù)字和名稱指示相同的元件。具體實施方式概述用戶能使用例如自由形式英文文本串的自然語言來提供查詢。系統(tǒng)能將接收的自然語言查詢轉(zhuǎn)換成結(jié)構(gòu)化查詢,例如結(jié)構(gòu)化查詢語言(“sql”)查詢。能執(zhí)行結(jié)構(gòu)化查詢并且返回響應(yīng)數(shù)據(jù)以輸出。例如,響應(yīng)于查詢,轉(zhuǎn)換的結(jié)構(gòu)化查詢能被用來獲得響應(yīng)于該查詢的數(shù)據(jù),然后能將其返回給用戶。該系統(tǒng)不總是能夠成功地將給定的自然語言查詢轉(zhuǎn)換成結(jié)構(gòu)化查詢。具體地,自然語言查詢能包括用戶所犯的錯誤,包括打字錯誤、格式錯誤的句子、或丟失關(guān)鍵詞。由于系統(tǒng)在識別特定語句格式方面的限制,該系統(tǒng)還可能不能轉(zhuǎn)換自然語言查詢。將自然語言查詢轉(zhuǎn)換成結(jié)構(gòu)化查詢的過程可能經(jīng)過許多階段。圖1是將自然語言查詢轉(zhuǎn)換成結(jié)構(gòu)化查詢的示例性過程100的流程圖。為了方便,參考執(zhí)行該過程的系統(tǒng),例如下文參考圖2所述的系統(tǒng),描述該過程。系統(tǒng)獲得102自然語言查詢。該系統(tǒng)能接收用戶通過用戶接口輸入的查詢。例如,用戶接口能是搜索接口,用戶通過該接口能提交自然語言搜索查詢。在下文中,將參考圖2-7,更詳細地描述各個過程步驟的細節(jié)。系統(tǒng)解析104獲得的自然語言查詢。解析器能被用來將自然語言查詢解析為令牌,例如將查詢“我能在哪兒獲得培根雞蛋三明治?”解析為下述令牌:“哪兒”、“我”、“獲得”、“培根雞蛋”和“三明治”。能使用兩種解析器:依賴性解析器和組別(constituency)解析器。另一示例性查詢能是“每一銷售國家的計算機銷售和用于在asia制造和在emea銷售的商品的生產(chǎn)國家”。該查詢能被解析成令牌“銷售”、“每一”、“銷售國家”、“生產(chǎn)國家”、“制造”、“asia”、“銷售”和“emea”。組別解析器將自然語言查詢分成短語并且將這些短語放在解析樹中作為節(jié)點。解析樹中的非終端節(jié)點是短語類型,例如名詞短語或動詞短語,終端節(jié)點是短語本身,以及不標記邊。依賴性解析器根據(jù)這些詞之間的關(guān)系來分解自然語言查詢中的詞。解析樹中的每一節(jié)點表示詞,子節(jié)點是與依賴于父的詞,以及邊由該關(guān)系標記。系統(tǒng)分析106所解析的查詢來確定組分之間的依賴性。依賴性分析允許該系統(tǒng)來識別解析的短語之間的修飾語關(guān)系。此外,系統(tǒng)執(zhí)行108詞法分辨來識別匹配n元和生成用于匹配的n元語法的概念。對于短語,例如n元創(chuàng)建的概念捕捉該短語對一些人群意味著什么。能通過使用一個或多個詞典來識別該含義。例如,在上述示例中,短語“銷售”能被識別為映射到用于特定模式詞典的表中的“sales_cost_usd”列的n元。因此,將屬性概念生成為對應(yīng)于所解析的查詢中的短語“銷售”。也可以從詞典了解其他信息,例如短語與數(shù)字和可聚合的列相關(guān)聯(lián)。當最終生成相應(yīng)的結(jié)構(gòu)化查詢時,可以使用該信息。能基于識別的短語,包括例如屬性、日期/時間_窗口表達式、語音部分(例如每、通過、對、在…中或否)、數(shù)字/串常量、識別的常量、子上下文和聚合,創(chuàng)建多種不同類型的概念。例如通過倒排索引或通過通用項,能識別所識別的常量。系統(tǒng)從生成的概念以及n元之間的依賴性,形成110概念樹。初始概念樹從對應(yīng)于解析的短語和所識別的依賴性關(guān)系的概念創(chuàng)建。概念由概念樹中的節(jié)點表示。然而,初始概念樹不包括能由從概念樹本身的父-子關(guān)系推斷的信息。由此,初始概念樹表示在該概念樹上執(zhí)行另外的分析、簡化和變換后由該系統(tǒng)用來結(jié)構(gòu)化查詢的中間結(jié)構(gòu)。該分析和變換允許該系統(tǒng)識別在概念樹中表示的實體與能用來形成準確地表示用戶提交該查詢的意圖的結(jié)構(gòu)化查詢的屬性、聯(lián)合點、聚合和/或謂語之間的有意義和無歧義映射。系統(tǒng)處理112該概念樹的概念和依賴性來變換該概念樹。具體地,分析概念樹中的概念和父-子或兄弟姐妹關(guān)系。變換基于推理規(guī)則體系,該推理規(guī)則體系基于由概念樹提供的、允許該系統(tǒng)梳理句法歧義的語義表示。變換的概念可以用新信息來注釋,它們可能被移動、刪除或與其他概念合并。處理后的剩余概念形成變換的概念樹。變換的概念樹確定性地映射至查詢運算/組件來便于通過逐個地簡單處理它們來構(gòu)建查詢組分,而翻譯為結(jié)構(gòu)化查詢。系統(tǒng)從概念樹創(chuàng)建114超圖并且分析該超圖以生成聯(lián)合。超圖表示數(shù)據(jù)庫模式,其中數(shù)據(jù)表本身中可以具有多個聯(lián)合映射。超圖能包括表示在數(shù)據(jù)庫中存儲的數(shù)據(jù)表的列的節(jié)點集,以及表示該列所屬的邊的集合。如果由兩個節(jié)點表示的列可聯(lián)合,則兩個節(jié)點由邊連接;以及邊識別列所屬的表。超圖分析包括使用概念樹來用于聯(lián)合的路徑分辨。一旦變換概念樹并且完成超圖分析,該系統(tǒng)處理116該概念樹和超圖以生成將被稱為虛擬查詢的輸出查詢的構(gòu)建塊。虛擬查詢是查詢組分的表示,包括例如選擇的屬性、分組屬性、聚合、過濾和聯(lián)合。從變換的概念樹的節(jié)點,換句話說,來自超圖分析的除聯(lián)合規(guī)范外的處理、合并或注釋過的概念,創(chuàng)建這些組分。系統(tǒng)處理118該虛擬查詢來生成結(jié)構(gòu)化查詢。通過處理由虛擬查詢表示的查詢組分,虛擬查詢能被翻譯為結(jié)構(gòu)化查詢。能取決于使用的查詢評價引擎的類型,定制翻譯來以不同用語生成結(jié)構(gòu)化查詢。另外,虛擬查詢能被翻譯為不同查詢語言,例如對應(yīng)于接收的查詢的語言。在轉(zhuǎn)換的不同階段可能發(fā)生故障。本說明書描述用于識別故障和作用于故障的技術(shù)。動作能包括通過另外的處理解決故障。具體地,能在轉(zhuǎn)換的相應(yīng)階段采取動作。例如,如果在解析自然語言查詢時出現(xiàn)故障,該系統(tǒng)能請求替選的解析。在一些實施方式中,能始終向用戶傳播動作。例如,能提示用戶闡明輸入查詢的一部分,例如闡明常數(shù)值的綁定。系統(tǒng)架構(gòu)圖2是示出用于通過用戶交互來處理在處理自然語言查詢中的故障的示例性系統(tǒng)200的框圖。系統(tǒng)200包括自然語言(nl)前端220和知識庫230。系統(tǒng)200接收源自一個或多個用戶設(shè)備210(例如智能電話210-b和膝上型電腦210-a)的自然語言查詢,并且將它們轉(zhuǎn)換成將在知識庫230的應(yīng)用編程接口(api)上執(zhí)行的結(jié)構(gòu)化操作,例如編程語句。當系統(tǒng)200檢測到預(yù)定類型的轉(zhuǎn)換故障時,系統(tǒng)200能使得向用戶呈現(xiàn)提示,請求用戶提供輸入來校正該故障。注意,并非所有轉(zhuǎn)換故障要求用戶輸入或交互;相反,僅一些類型的故障,例如數(shù)據(jù)訪問問題或選擇的語言歧義要求用戶輸入。系統(tǒng)被配置為使用用于處理如在本說明書中所述的故障的一種或多種技術(shù)在沒有用戶交互的情況下處理大部分問題。知識庫230包括知識獲取子系統(tǒng)232和實體數(shù)據(jù)庫234。知識庫230提供結(jié)構(gòu)化api,用于由程序使用來查詢和更新實體數(shù)據(jù)庫234。知識獲取子系統(tǒng)232從例如互聯(lián)網(wǎng)的外部源獲得另外的實體信息以及與實體數(shù)據(jù)庫234中的現(xiàn)有的實體信息相關(guān)聯(lián)地并且根據(jù)知識庫的數(shù)據(jù)模式存儲。知識獲取子系統(tǒng)可以繞過nl前端220,直接與外部源通信。實體數(shù)據(jù)庫234存儲實體信息,即,有關(guān)實體的信息,例如人的出生日期、企業(yè)的地址和多個組織之間的關(guān)系。根據(jù)數(shù)據(jù)模式,將實體信息存儲在實體數(shù)據(jù)庫234中。在一些實施方式中,實體數(shù)據(jù)庫234使用表結(jié)構(gòu)來存儲實體信息。在其他實施方式中,實體數(shù)據(jù)庫234以圖結(jié)構(gòu)來存儲實體信息。通常使用由實體數(shù)據(jù)庫的數(shù)據(jù)庫管理系統(tǒng)(dbms)支持的形式語言來表達數(shù)據(jù)模式。數(shù)據(jù)模式指定實體信息的組織,如同實體數(shù)據(jù)庫中邏輯地構(gòu)成,例如,當實體數(shù)據(jù)庫是關(guān)系數(shù)據(jù)庫時,將實體信息分成數(shù)據(jù)庫表。數(shù)據(jù)模式能包括表示特定于應(yīng)用的完整性約束的數(shù)據(jù),例如應(yīng)用能訪問表中的哪些列以及應(yīng)當如何組織輸入?yún)?shù)來查詢某一表。在關(guān)系數(shù)據(jù)庫中,數(shù)據(jù)模式可以定義例如表、字段、關(guān)系、視圖、索引、封裝、過程、功能、隊列、觸發(fā)器、類型、語句、物化視圖、同義詞、數(shù)據(jù)庫鏈接、目錄、xml模式和其他元素。能在位于一個或多個位置處的一個或多個計算機上實現(xiàn)的nl前端220包括nl輸入/輸出接口222、轉(zhuǎn)換和故障處理子系統(tǒng)224和轉(zhuǎn)換數(shù)據(jù)庫226。nl輸入/輸出接口222從用戶接收自然語言查詢,并且當系統(tǒng)200完成處理這些查詢時,將匹配搜索結(jié)果提供給用戶,通常通過與用戶設(shè)備的網(wǎng)絡(luò)連接。轉(zhuǎn)換數(shù)據(jù)庫226存儲基于自然語言查詢來生成將在知識庫230的api上執(zhí)行的結(jié)構(gòu)化操作的規(guī)則。例如,基于(1)知識庫使用數(shù)據(jù)表存儲實體信息的配置,和(2)在應(yīng)用模式中指定的這些表的名稱,將參考圖8更詳細解釋,轉(zhuǎn)換規(guī)則可以指定應(yīng)當將自然語言查詢“非紅色卡迪拉克cts2015的價格?”轉(zhuǎn)換成結(jié)構(gòu)化查詢語言(sql)語句“從汽車表選擇其中make_and_model='卡迪拉克cts'和顏色='non-red'的msrp”。在轉(zhuǎn)換數(shù)據(jù)庫226中存儲的轉(zhuǎn)換規(guī)則可以特定于由基礎(chǔ)知識庫使用的數(shù)據(jù)模式。例如,如果基礎(chǔ)知識庫將實體信息存儲為使用節(jié)點來表示實體以及使用邊來表示實體之間的關(guān)系的圖結(jié)構(gòu),轉(zhuǎn)換規(guī)則可以指定應(yīng)當如何解析自然語言查詢或更新語句以生成用于查詢圖結(jié)構(gòu)的語句,例如輸入?yún)?shù)、這些輸入?yún)?shù)之間的運算符以及輸出參數(shù)。例如,在接收自然語言查詢“誰是美國的第一任總統(tǒng)”后,系統(tǒng)可以使用轉(zhuǎn)換規(guī)則來生成下述語句:1.查找通過“第一”邊與節(jié)點“us總統(tǒng)”連接的節(jié)點,以及2.檢索節(jié)點名“喬治華盛頓”。轉(zhuǎn)換和故障處理子系統(tǒng)224將從用戶接收的自然語言查詢轉(zhuǎn)換成將在知識庫230的api上執(zhí)行的結(jié)構(gòu)化操作。子系統(tǒng)224基于在轉(zhuǎn)換數(shù)據(jù)庫226中指定的轉(zhuǎn)換規(guī)則來執(zhí)行這些轉(zhuǎn)換。在轉(zhuǎn)換過程期間,當故障發(fā)生時,子系統(tǒng)224能解決故障或能向用戶呈現(xiàn)有關(guān)故障的信息并且與用戶交互來解決故障。可能發(fā)生不同類型的故障,因為處理自然語言查詢包括若干階段,例如解析、令牌化、依賴性分析、概念樹分析和sql查詢生成,以及可能在這些階段的任何一個處發(fā)生故障。在查詢版本上迭代當故障發(fā)生時,可以生成替選解析并且對其評分。贏的替選解析,例如具有最高分值的替選解析,能用來生成結(jié)構(gòu)化查詢。圖3是用于在查詢版本上迭代的示例性過程300的流程圖。為了方便,參考執(zhí)行該過程300的系統(tǒng),例如參考圖2所述的系統(tǒng),描述過程300。系統(tǒng)解析自然語言查詢302。首先,自然語言查詢能對應(yīng)于獲得的用戶輸入查詢。例如如上參考圖1所述,能獲得和解析自然語言查詢。系統(tǒng)基于解析的查詢的分析來確定304解析的查詢是否觸發(fā)錯誤或警告。警告能被用作指示解析的查詢不如預(yù)期,但仍然能被處理的質(zhì)量度量。錯誤是指示解析查詢出錯,并且不能進行到結(jié)構(gòu)化查詢的轉(zhuǎn)化過程的故障。在解析查詢的分析期間,取決于分析的階段,能觸發(fā)多于一個警告。響應(yīng)于確定解析查詢觸發(fā)警告,警告分支,系統(tǒng)計算306質(zhì)量分值。能與例如解析結(jié)果的狀態(tài)信息以及例如有關(guān)原因、位置和相關(guān)查詢令牌的信息的警告信息一起存儲質(zhì)量分值。在計算質(zhì)量分值后,系統(tǒng)確定308是否有替選解析。質(zhì)量分值能取決于在分析解析查詢期間觸發(fā)的警告的數(shù)目。響應(yīng)于確定解析查詢觸發(fā)錯誤,錯誤分支,系統(tǒng)確定308是否有替選解析。另外,系統(tǒng)記錄錯誤和狀態(tài)信息。狀態(tài)信息能包括與錯誤相關(guān)聯(lián)的原因、位置和相關(guān)令牌。響應(yīng)于確定有替選解析,是分支,系統(tǒng)從步驟302迭代。由此,如果觸發(fā)后續(xù)警告或錯誤,能分析多個替選解析。響應(yīng)于確定無可用替選解析,系統(tǒng)選擇最佳可用解析310。如果一個或多個迭代導致警告,比較用于解析的質(zhì)量分值。例如,能選擇具有最高質(zhì)量分值的解析。在選擇最佳可用解析后,系統(tǒng)確定該解析是否是最佳解析。最佳解析是可以具有警告但不具有任何錯誤的解析。如果找到這樣的最佳解析,系統(tǒng)生成314結(jié)構(gòu)化查詢。解析查詢的分析或解析替選查詢包括生成變換的概念樹,然后能用來生成結(jié)構(gòu)化查詢。如果未找到最佳解析,例如,如果最佳可用解析仍然具有錯誤,系統(tǒng)生成316錯誤消息。如果每一迭代導致觸發(fā)錯誤,該系統(tǒng)不能繼續(xù)。能向用戶呈現(xiàn)特定的錯誤消息。在一些實施方式中,能提示用戶采取行動來校正輸入查詢。另外,即使當找到最佳解析時,如果生成警告,系統(tǒng)能生成316能提供給用戶的警告消息。返回到步驟304的確定,響應(yīng)于確定查詢或替選查詢未觸發(fā)錯誤或警告,系統(tǒng)生成314結(jié)構(gòu)化查詢。記錄和傳播故障在自然語言查詢的轉(zhuǎn)換期間,能確定會導致故障的錯誤或能觸發(fā)導致指示較低置信度的質(zhì)量分值的警告。能確定多種不同類型的錯誤。不良解析:例如,當系統(tǒng)不能從解析查詢生成概念樹時,系統(tǒng)能確定存在不良解析。響應(yīng)于不良解析,系統(tǒng)確定是否存在替選解析。如果不存在替選解析,會發(fā)生故障。如果的確存在替選解析,使用替選解析來執(zhí)行分析。歧義列引用:在轉(zhuǎn)換過程的若干不同階段,會發(fā)生歧義列引用錯誤。如上參考圖1所述,系統(tǒng)將通過解析識別的組分與特定n元匹配。然而,可能存在多個匹配可能,例如,存在特定n元的多個列匹配。代替記錄該階段的錯誤,系統(tǒng)能記錄所有可能匹配并且確定圖1中所述的概念樹變換階段中的進一步分析是否解決該歧義。此外,在超圖分析期間,系統(tǒng)能確定沒有可用來消除哪一聯(lián)合路徑是用于列的聯(lián)合路徑的歧義的子上下文。響應(yīng)于該錯誤,系統(tǒng)能提示用戶指定特定子上下文來解決該歧義。替選地,歧義可能是由于不良解析。該系統(tǒng)能嘗試替選解析來在提示用戶之前解決該歧義。例如,輸入查詢能是“銷售多于1000的國家”。該查詢能生成能提供給用戶的下述錯誤消息:在用于短語“國家”的查詢中發(fā)現(xiàn)歧義列引用。不能消除該列的歧義,因為它具有多個匹配:表表可能短語factorytoconsumermanufacture_country_code生產(chǎn)factorytoconsumerpackage_country_code包裝factorytoconsumersale_country_code銷售修改查詢:“銷售多于1000的生產(chǎn)國家”會導致下述結(jié)構(gòu)化查詢:歧義常數(shù):解析查詢的分析,特別是在上文參考圖1所述的概念樹分析期間,會導致格式錯誤的概念樹,阻止該系統(tǒng)識別指定常數(shù)值引用的內(nèi)容或所識別的列具有與該常數(shù)不兼容的類型。響應(yīng)于所識別的錯誤,該系統(tǒng)能確定替選解析是否解決該問題,作為確保該問題不是不良解析的方式。如果替選解析不能解決該歧義,會將該錯誤作為識別特定固定短語和請求闡明的消息傳播給用戶。例如,輸入查詢能是“喜歡名稱'johndoe'”。對該查詢的解析導致不能適當捕捉固定串'johndoe'和屬性名之間的依賴性關(guān)系的概念樹。在圖4中示出該概念樹的示例。在圖4所示的示例性概念樹400中,概念“johndoe”未被示為依賴于概念“名稱”。然而,適當?shù)亟馕霾煌樵儼姹?,例如“喜歡地名為'johndoe'的地方”并且導致圖5所示的概念樹500。在概念樹500中,正確地定義“johndoe”與“名稱”的依賴性。這導致轉(zhuǎn)換成下述結(jié)構(gòu)化查詢:歧義日期時間:一些日期時間表示看起來非常像整數(shù),例如2015既能是數(shù)字也能是日期時間常數(shù)。解析可能不能消除數(shù)字和日期時間常數(shù)之間的歧義。因此,系統(tǒng)使用短語的上下文來確定其實際上是日期時間還是數(shù)字常數(shù)。這能在概念樹分析階段期間執(zhí)行。如果該系統(tǒng)不能消歧,會生成錯誤。響應(yīng)于該錯誤,系統(tǒng)檢查替選解析來確認歧義錯誤不是由該解析導致的。如果替選解析不能解決該歧義,能夠向用戶提供指出特定日期時間/數(shù)字表達式并且請求闡明的消息。例如,會導致要求用戶輸入以解決的查詢是“2015的總利潤”。未用比較關(guān)鍵字或否定關(guān)鍵字:否定和比較關(guān)鍵字對正確地生成謂語很重要。在概念樹分析階段期間處理關(guān)鍵字。當系統(tǒng)不能適當?shù)靥幚硭鼈儠r,該系統(tǒng)生成警告。未適當?shù)靥幚碇饕侵肝词褂藐P(guān)鍵字概念來設(shè)置或修改關(guān)系。警告很大可能是由不良解析或錯誤格式的語句導致的。系統(tǒng)首先嘗試替選解析來查看是否有允許系統(tǒng)適當?shù)靥幚黻P(guān)鍵字的替選版本。由于錯誤是警告并且不是故障,假定無其他錯誤,系統(tǒng)至少可以生成結(jié)構(gòu)化查詢。然而,系統(tǒng)仍然能用指示該系統(tǒng)不能處理該關(guān)鍵字的消息告知用戶。例如,輸入查詢能是“生產(chǎn)成本不是2000的銷售”。在圖6中示出用于該輸入查詢的解析結(jié)果概念樹。在圖6所示的概念樹600中,未正確地定位否定概念“不”。因此,能對該解析生成指示該系統(tǒng)不能解析該輸入查詢中的否定關(guān)鍵字“不”的警告。如果不存在不生成警告的替選解析,從該輸入查詢生成的結(jié)構(gòu)化查詢?nèi)缦拢喝绻嬖诮鉀Q該問題的替選解析,圖7中示出示例結(jié)果概念樹。在圖7中示出的概念樹700中,正確地定位否定概念。結(jié)果,生成的結(jié)構(gòu)化查詢能夠是:聚合錯誤:在分析輸入查詢期間,具體地是在概念樹分析期間,會發(fā)生不同類型的聚合錯誤。當不應(yīng)用聚合函數(shù)時,會發(fā)生一種聚合錯誤。這會發(fā)生在系統(tǒng)不能將聚合函數(shù)與屬性或結(jié)構(gòu)化查詢表達式關(guān)聯(lián)時。例如,輸入查詢“生產(chǎn)國家為法國的平均數(shù)”會導致生成指示該系統(tǒng)不能將聚合函數(shù)、具體地是輸入查詢中的[平均值]與所應(yīng)用于的列相關(guān)聯(lián)的錯誤消息。能使用校正的查詢“生產(chǎn)國家為法國的平均銷售額”來生成結(jié)構(gòu)化查詢:在概念樹分析期間會發(fā)生的第二種聚合錯誤是非兼容類型的聚合函數(shù)。該聚合錯誤會發(fā)生在當查詢指示在不是兼容類型的屬性上指定聚合,例如對串屬性求平均時發(fā)生。當識別到不同關(guān)鍵字,但沒有適當?shù)嘏c兼容的聚合自變量相關(guān)聯(lián)時,第三種聚合錯誤會發(fā)生。例如,查詢“銷售國家為法國的不同生產(chǎn)國家的數(shù)量”生成錯誤消息,因為該系統(tǒng)不能解釋輸入查詢中的“不同”關(guān)鍵字。校正的查詢“銷售國家為法國的不同多個生產(chǎn)國家”能用來生成結(jié)構(gòu)化查詢:當未指定一個或多個聚合自變量時,第四種聚合錯誤會發(fā)生。當查詢指定聚合表達式,例如度量,作為分組鍵時,第五種聚合錯誤會發(fā)生。例如,查詢“每一閃現(xiàn)總和的點擊總量”,其中,“點擊”和“閃現(xiàn)”是數(shù)值度量。在查詢中使用“每”指示查詢是錯誤格式。能生成指示在該輸入查詢中聚合表達式“閃現(xiàn)總和”被指定為維度的錯誤消息。在每一聚合錯誤中,該問題可能是由不良解析或錯誤格式的語句導致的。該系統(tǒng)能嘗試替選解析來了解替選解析解決該錯誤。如果不存在替選解析,例如,通過用于校正輸入查詢的提示,將該錯誤呈現(xiàn)給用戶。丟失聯(lián)合步驟:在超圖分析期間,該系統(tǒng)可以確定不能唯一地識別列引用。該系統(tǒng)能夠執(zhí)行與聯(lián)合路徑的部分匹配來確定哪一聯(lián)合步驟丟失。該系統(tǒng)檢查替選解析來確保該錯誤不是由解析導致的。該系統(tǒng)可以用用戶識別正確的聯(lián)合路徑將所需的丟失引用(例如子上下文短語)告知用戶。例如,輸入查詢能是“買方位置在內(nèi)華達的銷售”。系統(tǒng)能確定生成的錯誤是指示聯(lián)合步驟丟失的查詢中的歧義引用。該系統(tǒng)能向用戶呈現(xiàn)指示丟失的引用所處的位置的信息,例如如下表所示:表列可能短語buyer_seller.personbusiness_address_id企業(yè)地址buyer_seller.personpersonal_address_id個人地址示例性查詢還能導致告知用戶未識別名詞短語“位置”的info消息。用“個人地址”替代“位置”的校正會導致生成下述結(jié)構(gòu)化查詢:未處理概念:除了系統(tǒng)識別還可以用作語音的一部分的一些關(guān)鍵字外,在概念樹分析期間,應(yīng)當處理系統(tǒng)為概念生成的n元。例如,如果存在恒定字面概念,該系統(tǒng)應(yīng)當能夠找出哪一列與之有關(guān)并且最終從其生成謂語。如果系統(tǒng)以未處理的概念結(jié)束,則其是即使該系統(tǒng)仍然能夠生成結(jié)構(gòu)化查詢也有事物丟失的指示。如果生成結(jié)構(gòu)化查詢,該系統(tǒng)能將其與警告一起返回以讓用戶知道有事物丟失。該消息能例如高亮指示丟失了的內(nèi)容。如果沒有生成結(jié)構(gòu)化查詢,則處理可以取決于概念類型。最低限度能將錯誤消息返回給用戶。不匹配名詞短語:系統(tǒng)監(jiān)控沒有與任何詞典匹配的名詞短語,例如屬性、子上下文等,并且生成用于它們的啞概念以確保它們在形成概念樹中適當?shù)仄鹚鼈兊淖饔?。未識別的名詞短語非常可能是錯誤拼寫的短語或部分提供的多元。例如,系統(tǒng)能識別“個人地址”或“企業(yè)地址”短語,但用戶僅將短語“地址”包括在查詢中。在不進行處理的情況下,如果可能,系統(tǒng)將生成相應(yīng)的結(jié)構(gòu)化查詢,但還能將讀作短語“地址”沒有與系統(tǒng)識別的任何短語匹配的消息傳播給用戶。消息可以進一步提到該短語可能對應(yīng)于“個人地址”或“企業(yè)地址”。一旦用戶指定意圖是哪一個,轉(zhuǎn)換通過。在類似的示例中,錯誤拼寫用戶輸入查詢并且使用了“個人地址”。該系統(tǒng)能識別相似性并且詢問用戶她/他是否是指“個人地址”、丟失數(shù)據(jù)訪問:在語義解決階段,當該系統(tǒng)為其創(chuàng)建概念時,系統(tǒng)能檢查以查看用戶是否訪問表(和列)。取決于用戶訪問的類型,系統(tǒng)能向他/她示出指示用戶無權(quán)訪問表的錯誤消息,或能僅示出查詢,例如用戶僅具有速覽(peeker)訪問,或能同時示出查詢和結(jié)果,例如,如果用戶有權(quán)訪問數(shù)據(jù)。如果用戶無權(quán)訪問數(shù)據(jù)但能看到模式,則該系統(tǒng)能處理倒排索引命中或從用戶獲得顯式驗證來將它們處理為索引命中。將用戶交互用于解決故障的示例如上所述,使用用戶交互,能解決不同類型的故障。例如,系統(tǒng)可以生成不良解析。如果系統(tǒng)不能識別成功處理的一個或多個替選解析,則能通過描述該問題的消息提示用戶。然后,用戶能修改自然語言查詢并且再次嘗試解析。接收的自然語言查詢可能導致歧義列引用。例如,查詢“銷售多于1000的國家”要求用戶輸入以消歧。能為用戶提供可能解釋的列表以幫助用戶闡明在提交的查詢中“國家”的使用。在一些實施方式中,系統(tǒng)提供相應(yīng)的子上下文短語以闡明“國家”的每一可能含義。然后,用戶能添加特定短語并且重試,例如“銷售多于1000的生產(chǎn)國家”。接收的自然語言查詢可能導致聚合錯誤。例如,查詢“銷售國家為法國的不同生產(chǎn)國家的數(shù)量”導致錯誤消息,向用戶指示該系統(tǒng)不能將“不同”與表達式相關(guān)聯(lián)。然后,用戶具有重寫查詢的機會。接收的自然語言查詢可能導致丟失聯(lián)合步驟。例如,查詢“買方的位置在內(nèi)華達的銷售”未對系統(tǒng)提供足夠的信息來識別“內(nèi)華達”是指什么。從聯(lián)合分析,該系統(tǒng)檢測到能引用買方的企業(yè)地址或買方的家庭地址中的一個。該系統(tǒng)提供用戶能用來固定查詢的可能短語的顯示。上文僅表示一些示例。即使該系統(tǒng)能夠向前移動并且生成結(jié)構(gòu)化查詢,如果最佳解析具有警告,則該系統(tǒng)仍然能為用戶提供所有警告(具有上下文信息)。例如,將在自然語言查詢和警告消息中高亮未使用的比較或否定關(guān)鍵字。在那時,用戶可以檢查結(jié)構(gòu)化查詢并且決定修改自然語言查詢(可能使用更適當?shù)挠⑽?以避免警告。與未處理概念”、“不匹配的名詞短語”或“歧義日期時間”錯誤類似。如果該系統(tǒng)生成不具有任何警告或錯誤的解析,用戶接收翻譯的結(jié)構(gòu)化查詢和系統(tǒng)使用的查詢的版本(如果使用替選解析)。否則,通過使用錯誤/警告消息,為用戶提供某種指導。圖8-12示出用于解決故障的一些示例性用戶交互。當處理自然語言查詢時會發(fā)生的一種故障是丟失令牌故障。令牌化是將文本分解成通常稱為令牌的單元的過程。令牌能表示一個或多個詞、數(shù)字或標點符號。圖8是示出用于通過用戶交互來處理丟失令牌故障的示例性過程800的框圖。當自然語言處理系統(tǒng)不能定位初始查詢中對應(yīng)于要求令牌的詞時,發(fā)生丟失令牌故障。例如,因為主語從自然語言查詢“在哪兒?”丟失,當系統(tǒng)處理該查詢時,會生成丟失令牌故障。為了便利,過程800將被描述為由位于一個或多個位置并且根據(jù)本說明書適當編程的一個或多個計算機的系統(tǒng)執(zhí)行。例如,被適當?shù)鼐幊痰膱D2的系統(tǒng)200能執(zhí)行過程800。過程800從系統(tǒng)獲得用戶提供的自然語言查詢802開始,例如“非紅2015價格?”。接收自然語言查詢802后,系統(tǒng)嘗試將自然語言查詢802轉(zhuǎn)換成適合于在基于表的知識庫850上操作的結(jié)構(gòu)化操作,例如sql查詢。在一些實施方式中,轉(zhuǎn)換步驟中的一個包括基于知識庫850的基礎(chǔ)知識模式,例如車輛表810,來使自然語言查詢802令牌化。如圖8所示,基于車輛表810的所有sql查詢必須提供對應(yīng)于車輛的品牌&型號的令牌的需求,自然語言處理系統(tǒng)將自然語言查詢802細分成下述令牌804:“非紅”和“2015”。在一些實施方式中,因為令牌“非紅”在車輛表810的“品牌和型號”列中沒有匹配值,該系統(tǒng)將令牌804視為未被正確地產(chǎn)生并且視為發(fā)生丟失令牌故障。一旦自然語言處理系統(tǒng)檢測到該故障,該系統(tǒng)提示用戶輸入以解決該故障。例如,該系統(tǒng)可以要求用戶提供車輛的品牌和型號以闡明提交的自然語言查詢802,如步驟806所示。用戶能通過用另外的上下文闡明自然語言查詢802以產(chǎn)生闡明的自然語言查詢,例如“藍色卡迪拉克ats2015價格?”進行響應(yīng)。系統(tǒng)800可以通過處理闡明的查詢,例如將自然語言查詢802用作上下文繼續(xù)。系統(tǒng)可以從來自闡明查詢的闡明的查詢:“藍色”、“卡迪拉克ats”和“2015”生成下述令牌并且基于新令牌來生成sql查詢。當處理自然語言查詢時可能發(fā)生的另一種故障是過度復(fù)雜查詢故障。例如,語義復(fù)雜的查詢很可能具有大量詞典匹配和依賴性關(guān)系,當它們超出系統(tǒng)處理能力時,會導致故障。圖9是示出通過用戶交互來處理詞典匹配或依賴性故障的示例性過程900的框圖。為了便利,過程900將被描述為由位于一個或多個位置并且根據(jù)本說明書適當編程的一個或多個計算機的系統(tǒng)執(zhí)行。例如,圖2的系統(tǒng)200,當被適當編程時,能執(zhí)行過程900。在接收用戶提供的自然語言查詢902,例如“全新非紅卡迪拉克cts2015的價格?但二手車如果便宜10k或具有天窗或渦輪引擎也可以”,自然語言處理系統(tǒng)在將自然語言查詢902轉(zhuǎn)換成一個或多個sql查詢時,會嘗試解決短語“二手車”的依賴性。因為解決短語“二手車”的依賴性904會生成大量可能結(jié)果,例如“二手非紅卡迪拉克cts2015”、“二手非紅卡迪拉克cts”、“二手非紅卡迪拉克2015”、“二手卡迪拉克cts2015”、“二手卡迪拉克cts”、“二手卡迪拉克2015”、“二手卡迪拉克”,會超出系統(tǒng)對單個自然語言查詢能處理的指定最大數(shù)量的結(jié)果,該系統(tǒng)會經(jīng)歷詞典匹配故障或依賴性故障906。當詞典匹配或依賴性故障發(fā)生時,該系統(tǒng)會提供查詢構(gòu)建用戶界面,用戶通過該界面能重寫初始自然語言查詢902或為包括在初始自然語言查詢902中的術(shù)語提供語言界限以減少查詢復(fù)雜度。例如,該系統(tǒng)可以將例如單選按鈕和下拉列表的用戶界面(ui)控制提供為過濾器,使得用戶可以去除自然語言查詢902中的依賴性。例如,用戶可以應(yīng)用條件過濾器,例如具有值“二手”,結(jié)合品牌和型號過濾器,例如具有值“卡迪拉克cts”和年份過濾器,例如具有值“2015”來闡明術(shù)語“二手”是指“卡迪拉克cts2015”。一旦用戶應(yīng)用適當?shù)倪^濾器,該系統(tǒng)可以基于過濾器值來處理新查詢。當處理自然語言查詢時會發(fā)生的第三種故障是數(shù)據(jù)訪問故障。例如,當用戶查詢用戶無權(quán)訪問的數(shù)據(jù)源時,數(shù)據(jù)訪問故障發(fā)生。圖10是示出用于通過用戶交互來處理數(shù)據(jù)訪問故障的示例性過程1000的框圖。為了便利,將過程1000描述為由位于一個或多個位置并且根據(jù)本說明書適當編程的一個或多個計算機的系統(tǒng)執(zhí)行。例如,圖2的系統(tǒng)200在被適當編程時能執(zhí)行過程1000。在接收到自然語言查詢1002時,例如“非紅卡迪拉克cts2015的價格?”,在步驟1004,自然語言處理系統(tǒng)可以確定處理自然語言查詢1002要求讀取訪問車輛表1010。然而,系統(tǒng)可以例如基于在用戶簡檔中指定的許可來確定用戶不被允許對車輛表1010的讀取訪問。當檢測到缺乏適當?shù)臄?shù)據(jù)訪問許可時,系統(tǒng)會經(jīng)受數(shù)據(jù)訪問故障1004。在一些實施方式中,該系統(tǒng)提供有關(guān)如何解決該故障的建議。例如,該系統(tǒng)可以建議用戶聯(lián)系數(shù)據(jù)庫管理員來接收適當?shù)臄?shù)據(jù)訪問,然后返回該查詢。然后,用戶能按照該建議來解決該故障,使得處理能繼續(xù)。注意,當向用戶提供建議時,該系統(tǒng)避免提供潛在展現(xiàn)用戶無權(quán)訪問的數(shù)據(jù)的信息。例如,系統(tǒng)能抑制向用戶展現(xiàn)用戶不能讀取訪問的數(shù)據(jù)表的名稱,例如,車輛表1010,或數(shù)據(jù)列,例如“顏色”和“品牌&型號”列。相反,系統(tǒng)可以僅提供常用指令,指示用戶解決數(shù)據(jù)訪問故障,例如建議用戶應(yīng)當聯(lián)系數(shù)據(jù)庫管理員。當處理自然語言查詢時可能發(fā)生的第四種故障是語言歧義故障。例如,當自然語言查詢包括會導致查詢術(shù)語的多個不同解釋的歧義時,語言歧義故障會發(fā)生。圖11是示出用于通過用戶交互來處理語言歧義故障的示例性過程1100的框圖。為了便利,將過程1100描述為由位于一個或多個位置并且根據(jù)本說明書適當編程的一個或多個計算機的系統(tǒng)執(zhí)行。例如,圖2的系統(tǒng)200在被適當編程時能執(zhí)行過程1100。在接收用戶提供的自然語言查詢102后,例如“哪兒有培根雞蛋三明治?”,如步驟1104所示,自然語言處理系統(tǒng)將自然語言查詢102解釋為兩個獨立的查詢“哪兒有培根?”和“哪兒有雞蛋三明治?”替選地,如步驟1106所示,系統(tǒng)也可以將自然語言查詢1102解釋為單個查詢“哪兒有包括培根和雞蛋的三明治?”。有時,例如由于缺少進一步上下文,系統(tǒng)認為兩種替選同樣可能或甚至似乎合理。當面對兩個競爭似乎合理的解釋時,系統(tǒng)會面臨語言歧義故障。為了解決該故障,該系統(tǒng)提示用戶闡明自然語言查詢102以去除歧義。例如,該系統(tǒng)可以提示用戶闡明她是否想搜索在哪里獲得“培根雞蛋三明治”,如步驟1108所示。一旦用戶闡明自然語言查詢102,去除一個或多個歧義,該系統(tǒng)能繼續(xù)處理闡明的查詢并且產(chǎn)生匹配結(jié)果。圖12是示出用于通過用戶交互處理在處理自然語言查詢中的故障的示例性過程1200的流程圖。為了便利,將過程1200描述為由位于一個或多個位置并且根據(jù)本說明書適當編程的一個或多個計算機的系統(tǒng)執(zhí)行。例如,圖2的系統(tǒng)200在被適當編程時能執(zhí)行過程1200。過程1200以系統(tǒng)通過自然語言前端從用戶獲得(1202)自然語言查詢開始。在獲得查詢后,系統(tǒng)嘗試將該查詢轉(zhuǎn)換成將在知識庫的結(jié)構(gòu)化應(yīng)用編程接口(api)上執(zhí)行的結(jié)構(gòu)化操作。例如,該系統(tǒng)可以解析純英文查詢以產(chǎn)生若干令牌并且將產(chǎn)生的令牌映射到數(shù)據(jù)表模式以便生成sql查詢。當系統(tǒng)嘗試將自然語言查詢轉(zhuǎn)換成一個或多個結(jié)構(gòu)化操作時,會發(fā)生例如在本說明書中所述的故障。當系統(tǒng)檢測到故障時,系統(tǒng)通過用戶交互界面向用戶提供(1204)描述該故障的信息,例如提示用戶幫助解決該故障。例如,當語言歧義故障發(fā)生時,該系統(tǒng)可以以某種方式為用戶提供解釋自然語言查詢的選擇以解決歧義。響應(yīng)于接收有關(guān)該故障的用戶的輸入,該系統(tǒng)基于用戶的輸入修改(1206)轉(zhuǎn)換過程。在一些實施方式中,系統(tǒng)通過丟棄初始查詢并且處理新查詢來修改轉(zhuǎn)換過程。在一些其他實施方式中,系統(tǒng)通過考慮用戶的輸入,例如上下文,繼續(xù)處理初始查詢來修改轉(zhuǎn)換過程。例如,在接收到應(yīng)如何解決歧義的用戶選擇后,例如“培根雞蛋三明治”而不是“培根”和“雞蛋三明治”,系統(tǒng)可以相應(yīng)地生成sql查詢。然后,系統(tǒng)通過在知識庫的結(jié)構(gòu)化api上執(zhí)行(1208)一個或多個結(jié)構(gòu)化操作,例如sql查詢,繼續(xù)過程1200。一旦生成操作結(jié)果,例如匹配查詢結(jié)果,系統(tǒng)可以將它們提供(1210)給用戶。在一些實施方式中,用戶通過用戶界面輸入自然語言查詢。自然語言查詢處理系統(tǒng)解析該查詢以生成文檔樹并且執(zhí)行短語依賴性分析以生成組分之間的依賴性。然后,系統(tǒng)執(zhí)行詞法分辨,包括在生成用于匹配的n元的概念后的n元匹配。系統(tǒng)基于生成的概念以及概念之間的依賴性來生成概念樹。該系統(tǒng)還可以通過修改樹中的概念之間的關(guān)系來變換概念樹。下一階段是虛擬查詢生成并且以執(zhí)行路徑分辨的超圖分析步驟開始。該系統(tǒng)迭代所有節(jié)點(概念)以生成用于輸出查詢的構(gòu)建塊并且使用超圖來生成所有聯(lián)合(如果有的話)。能處理結(jié)構(gòu)化查詢來生成實際的sql查詢。在這些階段的任何一個中會發(fā)生故障并且自然語言查詢處理系統(tǒng)可以匹配故障并且將該故障傳播給用戶以解決或可以記錄該問題以作為缺陷進行調(diào)查。為通過錯誤傳播來解決故障,系統(tǒng)跟蹤上下文并且提供合理信息量,使得能采取動作。通常,能在先前經(jīng)過的任一階段采取動作(例如向解析器請求替選解析)或能始終傳播到用戶(例如請求用戶闡明常數(shù)值的綁定)。生成替選解析如上參考圖3所述,迭代查詢版本能包括確定用于給定初始自然語言查詢的替選解析。在一些實施方式中,檢查初始查詢的解析結(jié)果。如果初始查詢不具有任何動詞或如果查詢結(jié)尾的標點與解析輸出不一致,系統(tǒng)能對查詢進行一個或多個小的改變以使其更接近適當形成的語句或問題。例如,初始查詢能是“昨天法國每個銷售渠道的利潤?”。該查詢實際上是在結(jié)尾處具有問號的名詞短語。如果將原始查詢改變成適當問題,例如解析為適當問題的“法國昨天每個銷售渠道的利潤是多少?”,該系統(tǒng)能夠獲得更好的解析。該系統(tǒng)能通過向初始查詢添加動詞,例如解析為適當語句的“給我看看昨天法國每個銷售渠道的利潤”,獲得更好解析。在另一示例中,由用戶輸入的初始查詢能是“買方個人地址在加利福尼亞以及賣方的企業(yè)地址在內(nèi)華達的每一買方名的銷售?”該查詢被解析為語句,但末尾具有引號。解析丟失一些依賴性并且導致在解析分析期間觸發(fā)的錯誤。然而,下述改變查詢正確地解析:“買方個人地址在加利福尼亞以及賣方的企業(yè)地址在內(nèi)華達的每一買方名的銷售是多少?”解釋為適當問題?!百I方個人地址在加利福尼亞以及賣方的企業(yè)地址在內(nèi)華達的每一買方名的銷售”丟掉問號并且解釋為適當片段。為了完整性,導致的結(jié)構(gòu)化查詢?nèi)缦拢涸谝恍┢渌鼘嵤┓绞街校跏驾斎氩樵儠鄙龠m當?shù)臉它c和/或可以多種方式解釋。用于這樣的查詢的初始解析結(jié)果可能不會導致成功的分析。如上所述,試圖基于基本的修改的替選解析的系統(tǒng)嘗試也可能不能產(chǎn)生成功分析。該系統(tǒng)會通過使用其他技術(shù),例如在解析器外,生成替選解析來在將查詢發(fā)送到解析前,用一些令牌范圍約束來擴增輸入查詢。由解析器將這些約束處理為單元,并通常導致能被正確解析的替選版本,例如具有成功分析或高質(zhì)量分值。有能用來基于特定語法生成替選查詢的不同技術(shù)。示例性初始查詢是“賣家具有多于100個贊的銷售額和買家的平均贊”。如上所述,用于生成替選版本的基本改變不會導致成功解析。生成具有令牌范圍約束的替選查詢的示例是“銷售額和買家的平均贊”,其中“賣家具有多于100個贊”,這會導致成功解析。通過使用花括號{}來標記約束。系統(tǒng)可以生成多個版本并且使用排名機制來基于它們的排名將那些版本饋送到分析中。為了完整性,生成的結(jié)構(gòu)化查詢?nèi)缦拢耗茉跀?shù)字電子電路中或者在有形地體現(xiàn)的計算機軟件、固件或者在計算機硬件(包括在本說明書中公開的結(jié)構(gòu)及其結(jié)構(gòu)等效物中)或者在它們中的一個或者多個的組合中實施在本說明書中描述的主題和功能操作的實施例。能將在本說明書中描述的主題的實施例實施為一個或者多個計算機程序,即編碼在有形非易失存儲介質(zhì)上的用于由數(shù)據(jù)處理裝置執(zhí)行或者控制數(shù)據(jù)處理裝置的操作的一個或者多個計算機程序指令模塊。計算機存儲介質(zhì)能是機器可讀存儲設(shè)備、機器可讀存儲基片、隨機或者串行存取存儲器設(shè)備或者它們中的一個或者多個的組合。替選地或者附加地,能在人為生成的傳播的信號,例如機器生成的電、光或者電磁信號上對程序指令編碼,該信號被生成用于對信息編碼以用于向適當接收器設(shè)備發(fā)送以供數(shù)據(jù)處理裝置執(zhí)行。術(shù)語“數(shù)據(jù)處理裝置”是指數(shù)據(jù)處理硬件并且涵蓋各種用于處理數(shù)據(jù)的裝置、設(shè)備和機器,舉例而言包括可編程處理器、計算機、多個處理器或計算機。該裝置還能是或進一步包括專用邏輯電路,例如fpga(現(xiàn)場可編程門陣列)或者asic(專用集成電路)。該裝置除了硬件之外可選地也能包括為計算機程序創(chuàng)建執(zhí)行環(huán)境的代碼,例如構(gòu)成處理器固件、協(xié)議棧、數(shù)據(jù)庫管理系統(tǒng)、操作系統(tǒng)或者它們中的一項或者多項的組合的代碼。計算機程序(也可以被稱為或描述為程序、軟件、軟件應(yīng)用、應(yīng)用、模塊、軟件模塊、腳本或者代碼)能用任何形式的編程語言編寫,包括編譯或者解譯語言、或聲明或者過程語言,并且計算機程序能用任何形式部署,包括部署為獨立程序或者部署為適合于在計算環(huán)境中使用的模塊、組件、子例程或者其他單元。程序可以但不必須對應(yīng)于文件系統(tǒng)中的文件。程序能被存儲于保持其他程序或者數(shù)據(jù)的文件,例如存儲于標記語言文檔中的一個或者多個腳本的一部分中、專用于討論的程序的單個文件中,或者多個協(xié)同文件,例如存儲一個或者多個模塊、子程序或者代碼部分的文件中。計算機程序能被部署用于在一個計算機上或者在位于一個地點或者跨多個地點分布并且由數(shù)據(jù)通信網(wǎng)絡(luò)互連的多個計算機上執(zhí)行。在本說明書中描述的過程和邏輯流程能由一個或者多個可編程計算機執(zhí)行,該一個或者多個可編程計算機執(zhí)行一個或者多個計算機程序以通過對輸入數(shù)據(jù)操作并且生成輸出來執(zhí)行功能。該過程和邏輯流也能由專用邏輯電路,例如fpga或者asic,或由專用邏輯電路和一個或多個編程計算機的組合執(zhí)行。適合于執(zhí)行計算機程序的計算機能基于通用微處理器或者專用微處理器,或者其兩者,或者任何其他種類的中央處理單元。通常,中央處理單元將從只讀存儲器或者隨機存取存儲器或者二者接收指令和數(shù)據(jù)。計算機的必要元件是用于執(zhí)行指令的中央處理單元以及用于存儲指令和數(shù)據(jù)的一個或者多個存儲器設(shè)備。中央處理單元和存儲器能由專用邏輯電路補充或者并入專用邏輯電路中。通常,計算機還將包括用于存儲數(shù)據(jù)的一個或者多個海量存儲裝置,例如磁盤、磁光盤或者光盤或者被操作地耦合用于從該一個或者多個海量存儲設(shè)備接收數(shù)據(jù)或者向該一個或者多個海量存儲設(shè)備發(fā)送數(shù)據(jù)或者接收和發(fā)送二者。然而,計算機無需具有這樣的設(shè)備。另外,計算機能被嵌入在另一設(shè)備中,僅舉幾個示例,例如移動電話、個人數(shù)字助理(pda)、移動音頻或者視頻播放器、游戲控制臺、全球定位系統(tǒng)(gps)接收器或者便攜存儲設(shè)備,例如通用串行總線(usb)閃存驅(qū)動。適合于存儲計算機程序指令和數(shù)據(jù)的計算機可讀介質(zhì)包括所有形式的非易失性存儲器、介質(zhì)和存儲器設(shè)備,舉例而言包括半導體存儲器設(shè)備,例如eprom、eeprom和閃速存儲器設(shè)備;磁盤,例如內(nèi)部硬盤或者可拆卸盤;磁光盤;以及cd-rom和dvd-rom盤。為了提供與用戶的交互,能在計算機上實施在本說明書中描述的主題的實施例,該計算機具有用于向用戶顯示信息的顯示設(shè)備(例如,crt(陰極射線管)或者lcd(液晶顯示器)監(jiān)視器)以及用戶能用來向計算機提供輸入的鍵盤和指向設(shè)備,例如鼠標或者軌跡球。其他種類的設(shè)備也能用來提供與用戶的交互;例如向用戶提供的反饋能是任何形式的感知反饋,例如視覺反饋、聽覺反饋或者觸覺反饋;并且能用包括聲音、語音或者觸覺輸入的任何形式接收來自用戶的輸入。此外,計算機能通過向用戶使用的設(shè)備發(fā)送文檔和從該設(shè)備接收文檔,例如通過響應(yīng)于從用戶的設(shè)備上的web瀏覽器接收的請求向web瀏覽器發(fā)送網(wǎng)頁來與用戶交互。在本說明書中描述的主題的實施例能在計算系統(tǒng)中實施,該計算系統(tǒng)包括例如作為數(shù)據(jù)服務(wù)器的后端組件;或者包括例如應(yīng)用服務(wù)器的中間件組件;或者包括前端組件,例如具有圖形用戶交互接口或者web瀏覽器、或應(yīng)用的客戶端計算機,用戶能通過它們與在本說明書中描述的主題的實現(xiàn)方式交互;或者一個或者多個這樣的后端、中間件或者前端組件的任何組合。系統(tǒng)的組件能通過任何形式或者介質(zhì)的數(shù)字數(shù)據(jù)通信(例如通信網(wǎng)絡(luò))互連。通信網(wǎng)絡(luò)的示例包括局域網(wǎng)(lan)和廣域網(wǎng)(wan),例如因特網(wǎng)。計算系統(tǒng)能包括客戶端和服務(wù)器。客戶端和服務(wù)器一般相互遠離并且通常通過通信網(wǎng)絡(luò)交互??蛻舳撕头?wù)器的關(guān)系借助在相應(yīng)計算機上運行并且相互具有客戶端-服務(wù)器關(guān)系的計算機程序而產(chǎn)生。在一些實施例中,服務(wù)器將例如html頁的數(shù)據(jù)傳送到用戶設(shè)備,例如,為了向與作為客戶端的設(shè)備交互的用戶顯示數(shù)據(jù)以及從用戶接收用戶輸入。能在服務(wù)器處從該設(shè)備接收在用戶設(shè)備處生成的數(shù)據(jù),例如用戶交互的結(jié)果。盡管本說明書包含許多具體實現(xiàn)方式細節(jié),但是不應(yīng)將這些解釋為限制任何發(fā)明的范圍或可以要求保護的內(nèi)容的范圍,而是解釋為對特定于特定發(fā)明的特定實現(xiàn)方式的特征的描述。在本說明書中在分立的實施例的背景中描述的某些特征也能在單個實施例中被組合實施。相反地,在單個實施例的背景中描述的各種特征也能在多個實施例中分立地或者在任何適當子組合中被實施。另外,雖然上文可能將特征描述為在某些組合中發(fā)揮作用并且甚至起初這樣要求保護,但是來自要求保護的組合的一個或者多個特征能在一些情況下從該組合中去除,并且要求保護的組合能涉及子組合或者子組合的變型。類似地,盡管在附圖中以特定順序描繪操作,但是這不應(yīng)被理解為要求以所示特定順序或者以依次順序執(zhí)行這樣的操作或者執(zhí)行所有所示操作以實現(xiàn)希望的結(jié)果。在某些境況中,多任務(wù)和并行處理可能是有利的。另外,在上文描述的實施例中的各種系統(tǒng)模塊和組件的分離不應(yīng)被理解為在所有實施例中要求這樣的分離,并且應(yīng)當理解描述的程序組件和系統(tǒng)一般能一起集成于單個軟件產(chǎn)品中或者被封裝到多個軟件產(chǎn)品中。已描述了主題的特定實施例。其他實現(xiàn)方式在所附權(quán)利要求的范圍內(nèi)。例如,在權(quán)利要求中記載的動作能按不同順序被執(zhí)行并仍然實現(xiàn)希望的結(jié)果。作為一個示例,在附圖中描繪的過程不必需要所示的特定順序或者依次順序以實現(xiàn)希望的結(jié)果。在一些情況下,多任務(wù)和并行處理會是有利的。當前第1頁12
當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
新建县| 通渭县| 阿图什市| 延长县| 湘潭县| 当阳市| 德州市| 仪征市| 高邮市| 巫溪县| 鄱阳县| 汾西县| 府谷县| 安仁县| 武穴市| 上思县| 宜宾县| 宜良县| 出国| 黄大仙区| 塘沽区| 增城市| 荆门市| 雷州市| 江孜县| 高陵县| 长汀县| 礼泉县| 鹿泉市| 那坡县| 寿阳县| 巧家县| 扶风县| 镇雄县| 葫芦岛市| 集贤县| 宝坻区| 怀来县| 蓝田县| 台湾省| 张北县|