專利名稱:語法創(chuàng)建系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及上下文無關(guān)文法。本發(fā)明尤其涉及用于創(chuàng)建這種語法的創(chuàng)建系統(tǒng)。
背景技術(shù):
基于語義的穩(wěn)健的理解技術(shù)已經(jīng)被廣泛應(yīng)用于人機(jī)對(duì)話系統(tǒng)中。事實(shí)上,在口語理解領(lǐng)域工作了多年之后,它已經(jīng)成了最具有競(jìng)爭(zhēng)力的技術(shù)之一。但是,該技術(shù)也有許多缺點(diǎn)。主要的缺點(diǎn)之一是要求有在特定領(lǐng)域語法的人工開發(fā)方面的專門技術(shù)。這被認(rèn)為是眾多開發(fā)者在建立對(duì)話系統(tǒng)過程中所面臨的一個(gè)主要障礙。
研究人員試圖解決這一問題。例如,一些研究人員多年來一直在致力于嘗試開發(fā)數(shù)據(jù)驅(qū)動(dòng)的自動(dòng)語法推理。但是,由于復(fù)雜目標(biāo)語法的稀少數(shù)據(jù)的根本問題,所以在該類型系統(tǒng)方面的成功極為有限。
一種語義上下文無關(guān)文法(CFG),如句法CFG,定義了從單獨(dú)的單詞到組成部分的合法組合,以及從組成部分到句子的組合。此外,語義CFG必須定義特定領(lǐng)域中的概念以及那些概念之間的關(guān)系。正是這種變化的額外維度使得需要為每個(gè)新的領(lǐng)域開發(fā)一種語法。
把這些應(yīng)用中的語義信息定義成語義模型也是很普遍的。語義模型常常用于很多不同的目的。例如,語義模型可以作為對(duì)語言啟用應(yīng)用的說明。換言之,一旦定義了語義模型,語法和應(yīng)用邏輯開發(fā)可以根據(jù)語義模型同時(shí)進(jìn)行。語義模型還在對(duì)話管理中扮演著重要的角色。另外,從語義模型不指定用來表達(dá)概念的語言表達(dá)式這一方面而言,語義模型和語言無關(guān)。因此,它不僅被用于語言啟用應(yīng)用,還被用于集成從多種模式來的輸入,如鼠標(biāo)點(diǎn)擊事件。因此,在很多這樣的應(yīng)用中,語義模型必須被創(chuàng)建,并且在開發(fā)CFG之前必須已經(jīng)存在。
發(fā)明內(nèi)容
一種語法創(chuàng)建系統(tǒng)使用多個(gè)信息源來幫助創(chuàng)建語法。這產(chǎn)生了用相對(duì)較小的數(shù)據(jù)量半自動(dòng)地推導(dǎo)出的語義語法。
在一個(gè)實(shí)施例中,首先寫出語義模型,再從該模型自動(dòng)地推導(dǎo)出一種上下文無關(guān)文法(CFG)模板,使得繼承了語義模型的語義限制(FG模擬還是呈現(xiàn)出結(jié)構(gòu)的一般化)。
在另一個(gè)實(shí)施例中,本發(fā)明采用語義注釋使語法分析器的學(xué)習(xí)專注于感興趣的地方。本發(fā)明可以進(jìn)一步使用句法限制來減小語法開發(fā)期間的學(xué)習(xí)空間。此外,本發(fā)明可以高效的方式利用預(yù)先存在的庫語法來開發(fā)語法,如使用拖放技術(shù)。
圖1是僅形成本發(fā)明的環(huán)境的一個(gè)實(shí)施例的個(gè)人計(jì)算機(jī)的框圖。
圖2是展示了根據(jù)本發(fā)明的一個(gè)實(shí)施例說明上下文無關(guān)文法的創(chuàng)建的數(shù)據(jù)流程圖。
圖2A展示了上下文無關(guān)文法的語法分析樹。
圖2B詳細(xì)顯示了圖2中的表達(dá)式注釋塊212的數(shù)據(jù)流程。
圖6A展示了根據(jù)本發(fā)明一實(shí)施例的具有樹葉節(jié)點(diǎn)的語法分析樹。
圖3-11是展示了根據(jù)本發(fā)明的一個(gè)實(shí)施例的創(chuàng)建系統(tǒng)的工作的屏幕畫面。
具體實(shí)施例方式
本發(fā)明是用于幫助創(chuàng)建環(huán)境無關(guān)語義語法的創(chuàng)建系統(tǒng)。該系統(tǒng)可以在計(jì)算機(jī)設(shè)備上實(shí)現(xiàn),并被實(shí)現(xiàn)成一種方法。圖1僅是一個(gè)可以使用本發(fā)明的示范環(huán)境的展示實(shí)施例。當(dāng)然,也可以使用其它的環(huán)境。
圖1展示了可以在其上實(shí)現(xiàn)本發(fā)明的適合的計(jì)算機(jī)系統(tǒng)環(huán)境100的例子。計(jì)算機(jī)系統(tǒng)環(huán)境100只是合適的計(jì)算機(jī)環(huán)境的一個(gè)例子,并且不試圖對(duì)本發(fā)明的使用或功能范圍提供任何限制。計(jì)算機(jī)環(huán)境100也不應(yīng)該被解釋成對(duì)于示范工作環(huán)境100中所展示的任何一個(gè)部件或者部件的組合有任何的依賴或要求。
本發(fā)明也可以基于一些其他的通用或?qū)S糜?jì)算機(jī)系統(tǒng)環(huán)境或配置來工作。適于本發(fā)明所使用的一些熟知的計(jì)算機(jī)系統(tǒng)、環(huán)境和/或配置的例子包括但不限于個(gè)人計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)、手持式或膝上型設(shè)備、微處理器系統(tǒng)、基于微處理器的系統(tǒng)、機(jī)頂盒、可編程消費(fèi)電子器件、網(wǎng)絡(luò)PC、微型計(jì)算機(jī)、大型機(jī)、包含上述任一種系統(tǒng)或設(shè)備的分布式計(jì)算機(jī)環(huán)境以及類似。
本發(fā)明可以在由計(jì)算機(jī)執(zhí)行的計(jì)算機(jī)可執(zhí)行指令(如程序模塊)的大環(huán)境下進(jìn)行描述。通常,程序模塊包括進(jìn)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等。本發(fā)明還可以在分布式計(jì)算機(jī)環(huán)境中來實(shí)踐,其中任務(wù)是由通過通信網(wǎng)絡(luò)鏈接的遠(yuǎn)程處理設(shè)備來進(jìn)行的。在分布式計(jì)算機(jī)環(huán)境中,程序模塊可以位于包括記憶存儲(chǔ)設(shè)備的本地或者遠(yuǎn)程計(jì)算機(jī)存儲(chǔ)媒介中。
參考圖1,用于實(shí)現(xiàn)本發(fā)明的示范系統(tǒng)包括以計(jì)算機(jī)110的形式出現(xiàn)的通用計(jì)算機(jī)設(shè)備。計(jì)算機(jī)110的組件可以包括但不限于處理單元120、系統(tǒng)存儲(chǔ)器130以及把包括由系統(tǒng)存儲(chǔ)器的各系統(tǒng)組件耦接至處理單元120的系統(tǒng)總線121。系統(tǒng)總線121可以是若干類型總線結(jié)構(gòu)中的任一種,包括存儲(chǔ)總線或存儲(chǔ)控制器、外圍總線以及使用多種總線結(jié)構(gòu)中的任一種的本地總線。作為例子而不是限制,這樣的結(jié)構(gòu)包括工業(yè)標(biāo)準(zhǔn)結(jié)構(gòu)(ISA)總線、微通道結(jié)構(gòu)(MCA)總線、擴(kuò)展工業(yè)標(biāo)準(zhǔn)結(jié)構(gòu)(EISA)總線、視頻電子標(biāo)準(zhǔn)協(xié)會(huì)(VESA)本地總線以及外圍組件互聯(lián)總線(也被稱為夾層總線)。
計(jì)算機(jī)110一般包括多種計(jì)算機(jī)可讀媒介。計(jì)算機(jī)可讀媒介可以是計(jì)算機(jī)110能夠訪問的任何可用媒介,并且包括易失性和非易失性媒介,可拆卸和不可拆卸媒介。作為例子而不是限制,計(jì)算機(jī)可讀媒介可以包括計(jì)算機(jī)存儲(chǔ)媒介和通信媒介。計(jì)算機(jī)存儲(chǔ)媒介包括以任何方法或技術(shù)實(shí)現(xiàn)的,用于存儲(chǔ)注入計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其他數(shù)據(jù)等信息的易失性和非易失性、可拆卸和不可拆卸媒介。計(jì)算機(jī)存儲(chǔ)媒介包括但不限于RAM、ROM、EEPROM、閃存或其他存儲(chǔ)技術(shù)、CD-ROM、數(shù)字多用途光盤(DVD)或其他光盤存儲(chǔ)、盒式磁帶、磁帶、磁盤存儲(chǔ)或其他磁存儲(chǔ)設(shè)備或可用于存儲(chǔ)所需的信息并可由計(jì)算機(jī)110訪問的任何其他媒介。通信媒介一般在如載波等調(diào)制數(shù)據(jù)信號(hào)或其他傳輸機(jī)制中把計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其他數(shù)據(jù)具體化,并包括了任何信息傳遞媒介。術(shù)語“調(diào)制數(shù)據(jù)信號(hào)”指的是讓它的一個(gè)或多個(gè)特征以信號(hào)中的編碼信息的方式來設(shè)置或改變。作為例子而不是限制,通信媒介包括有線網(wǎng)絡(luò)或直接線纜連接等有線媒介,和聲波、RF、紅外以及其他無線媒介等無線媒介。計(jì)算機(jī)可讀媒介的范圍還應(yīng)該包括上面的任意組合。
系統(tǒng)存儲(chǔ)器130包括易失性和/或非易失性存儲(chǔ)器形式的計(jì)算機(jī)存儲(chǔ)媒介,如只讀存儲(chǔ)器(ROM)131和隨機(jī)存取存儲(chǔ)器(RAM)132。基本輸入/輸出系統(tǒng)133(BIOS)包含有基本的例程,它們有助于在計(jì)算機(jī)110的單元之間傳輸信息(如在啟動(dòng)時(shí)),BIOS一般被存儲(chǔ)在ROM 131中。RAM 132一般包含有處理單元120可以立即訪問的和/或目前正在運(yùn)行的數(shù)據(jù)和/或程序模塊。作為例子而不是限制,圖1展示了操作系統(tǒng)134、應(yīng)用程序135、其他程序模塊136和程序數(shù)據(jù)137。
計(jì)算機(jī)110還可以包括其他可拆卸/不可拆卸的易失性/非易失性計(jì)算機(jī)存儲(chǔ)媒介。僅作為例子,圖1展示了從不可拆卸非易失性磁媒介讀取或?qū)懭氲挠脖P驅(qū)動(dòng)141、從可拆卸非易失性磁盤152讀取或?qū)懭氲拇疟P驅(qū)動(dòng)151以及從CDROM或其他光媒介等不可拆卸非易失性光盤讀取或?qū)懭氲墓獗P驅(qū)動(dòng)155??梢员挥迷谑痉恫僮鳝h(huán)境中的其他可拆卸/不可拆卸的易失性/非易失性計(jì)算機(jī)存儲(chǔ)媒介包括但不限于盒式磁帶、閃存卡、數(shù)字多用途光盤、數(shù)字視頻磁帶、固態(tài)RAM、固態(tài)ROM以及類似。硬盤驅(qū)動(dòng)141一般通過諸如接口140之類的不可移動(dòng)存儲(chǔ)器接口被連接到系統(tǒng)總線121,而磁盤驅(qū)動(dòng)151和光盤驅(qū)動(dòng)155一般通過諸如接口150之類的可移動(dòng)存儲(chǔ)器接口被連接到系統(tǒng)總線121。
上面所討論的以及圖1中所示的驅(qū)動(dòng)器和它們的相關(guān)計(jì)算機(jī)存儲(chǔ)媒介提供了對(duì)計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊以及計(jì)算機(jī)110的其他數(shù)據(jù)的存儲(chǔ)。例如,在圖1中,硬盤驅(qū)動(dòng)器141被顯示成存儲(chǔ)操作系統(tǒng)144、應(yīng)用程序145、其他程序模塊146和程序數(shù)據(jù)147。要注意,這些部分可以和操作系統(tǒng)134、應(yīng)用程序135、其他程序模塊136及程序數(shù)據(jù)137相同或不同。操作系統(tǒng)144、應(yīng)用程序145、其他程序模塊146及程序數(shù)據(jù)147在這里被賦予了不同的號(hào)碼,以至少展示它們是不同的拷貝。
用戶可以通過鍵盤162、麥克風(fēng)163和指示設(shè)備161(如鼠標(biāo)、軌跡球或觸摸墊)等輸入設(shè)備把命令和信息輸入計(jì)算機(jī)110。其他輸入設(shè)備(未示出)可以包括操縱桿、游戲手柄、圓盤式衛(wèi)星電視天線、掃描儀或類似。這些以及其他的輸入設(shè)備通常通過耦接到系統(tǒng)總線的用戶輸入接口160被連接到處理單元120,但也可以用其他接口和總線來連接,如并行端口、游戲端口或通用穿行總線(USB)。監(jiān)視器191或者其他類型的顯示設(shè)備也可以經(jīng)由視頻接口190等接口被連接到系統(tǒng)總線121。除了監(jiān)視器之外,計(jì)算機(jī)還可以包括其他的外圍輸出設(shè)備,如揚(yáng)聲器197和打印機(jī)196,它們可以通過輸出外圍接口195連接。
計(jì)算機(jī)110可以運(yùn)行在使用到遠(yuǎn)程計(jì)算機(jī)180等一個(gè)或多個(gè)遠(yuǎn)程計(jì)算機(jī)的邏輯連接的聯(lián)網(wǎng)環(huán)境中。遠(yuǎn)程計(jì)算機(jī)可以是個(gè)人計(jì)算機(jī)、手持式設(shè)備、服務(wù)器、路由器、網(wǎng)絡(luò)PC、對(duì)等設(shè)備或其他公共網(wǎng)絡(luò)節(jié)點(diǎn),并且一般包括上面關(guān)于計(jì)算機(jī)110所描述到的很多或所有單元。圖1中所描繪的邏輯連接包括局域網(wǎng)(LAN)171和廣域網(wǎng)(WAN)173,但是也還可以包括其他網(wǎng)絡(luò)。這樣的聯(lián)網(wǎng)環(huán)境在辦公室、企業(yè)范圍的計(jì)算機(jī)網(wǎng)、內(nèi)聯(lián)網(wǎng)和因特網(wǎng)中是非常常見的。
當(dāng)被用于LAN網(wǎng)絡(luò)環(huán)境中時(shí),計(jì)算機(jī)110通過網(wǎng)絡(luò)接口或適配器170被連接到LAN 171。當(dāng)被用于WAN網(wǎng)絡(luò)環(huán)境中時(shí),計(jì)算機(jī)110一般包括調(diào)制解調(diào)器172或其他用于建立WAN 173(如因特網(wǎng))上的通信的裝置。調(diào)制解調(diào)器172可以是內(nèi)部的或者是外部的,它可以經(jīng)由用戶輸入接口160或其他合適的機(jī)制被連接到系統(tǒng)總線121。在聯(lián)網(wǎng)的環(huán)境中,和計(jì)算機(jī)110相關(guān)的程序模塊或其部分可以被存儲(chǔ)在遠(yuǎn)程記憶存儲(chǔ)設(shè)備中。作為例子而不是限制,圖1把遠(yuǎn)程應(yīng)用程序185顯示成駐于遠(yuǎn)程計(jì)算機(jī)180上??梢宰⒁獾剿@示的網(wǎng)絡(luò)連接是示范性的,并且可以使用其它的在計(jì)算機(jī)之間建立通信鏈路的裝置。
圖2是展示了根據(jù)本發(fā)明的一個(gè)實(shí)施例的上下文無關(guān)文法的生成的數(shù)據(jù)流程圖。圖2中所示的不同組件可以示范性地實(shí)現(xiàn)在圖1中所示的各組件中。圖2被提供作為綜覽,而參考圖3-10,將詳細(xì)討論單獨(dú)的數(shù)據(jù)流程步驟。圖2顯示了系統(tǒng)198,它包括前端,或者說用戶接口(UI)224以及后端199。后端199包括模板語法生成組件204、語法分析器208、學(xué)習(xí)器218和語法管理器230。
運(yùn)行時(shí),首先寫出系統(tǒng)的語義模型。塊200指出了這一步。語義模型是特定領(lǐng)域應(yīng)用中不同概念之間的關(guān)系的相對(duì)高層且相對(duì)簡(jiǎn)單的語義描述。例如,可能需要數(shù)小時(shí)來編寫相對(duì)復(fù)雜應(yīng)用的語義模型。語義模型通過圖2中的塊202展示。
語義模型不是語法。它不足以用模型來分析自然語言輸入。為了正確地解釋自然語言表達(dá)式的含義,一個(gè)語法分析器被用來根據(jù)上下文無關(guān)文法(CFG)在表達(dá)式和模型之間進(jìn)行映射。例如,模型可以包含下列語義類的定義<entity name=”ApptByAttributes”type=”Appointment”>
<slot type=”Time”name=”StartTime”/>
<slot type=”Time”name=”EndTime”/>
<slot type=”Person”name=”Attendees”/>
</entity>
該語義類簡(jiǎn)單地定義了語義概念“ApptByAttributes”,它是引用“Appointment”(“ApptByAttributes”的類型)的特定方式。為了用該概念來引用一次已有的約會(huì),說話者必須指定概念空位(slot)中的一個(gè)或多個(gè),以從其它已有的約會(huì)中把它區(qū)分出來。例如,“the meeting from 3 to 5 withAlex(3點(diǎn)到5點(diǎn)和Alex會(huì)面)”就是該概念的一個(gè)表達(dá)式。為了正確地理解該短句,我們需要識(shí)別它的語義結(jié)構(gòu),語義結(jié)構(gòu)把短句中的單詞映射到語義類中的組成部分<entity name=”ApptByAttributes”type=”Appointment”>
<slot type=”Time”name=”StartTime”text=’3’/>
<slot type=”Time”name=”EndTime”text=’5’/>
<slot type=”Person”name=”Attendees”text=’Alex’/>
</entity>
為了識(shí)別上面的正確解釋,我們需要使得語義分析器知道“3”和“5”是“Time”,“Alex”是“Person”,且在該語境中“3”是“StartTime”,“5”是“EndTime”。此外,語法從諸如“上午9點(diǎn)至下午3點(diǎn)的航班”等其他也包含時(shí)間表達(dá)式的表達(dá)中區(qū)分出該表達(dá),并且只將前面的表達(dá)接受為“ApptByAttributes”。類似于此的一個(gè)語法例子如下<ApptByAttributes>→會(huì)見<ApptAttributes>
<ApptAttributes>→<ApptAttribute><ApptAttributes>
<ApptAttributes>→<ApptAttributes>
<ApptAttribute>→從<Time>StartTime<ApptAttribute>→到<Time>EndTime<ApptAttribute>→與<Person>Attendee<Person>→Alex|john|Dave|.....
<Time>→1|2|3|4|5|.....
給出了前述的語法,一種穩(wěn)健的語義分析器可以把輸入的表達(dá)映射入圖2A所示的CFG語義分析樹203。前述的語義結(jié)構(gòu)可以從該CFG語義分析樹被構(gòu)建。該語義結(jié)構(gòu)是對(duì)隱藏關(guān)于產(chǎn)生該樹的CFG規(guī)則的應(yīng)用的所有細(xì)節(jié)的CFG語義分析樹的抽象。
很明顯,該語法包含了詳細(xì)的語言學(xué)信息,它們描述了如何表達(dá)式模型中的概念以及如何用自然語言把簡(jiǎn)單的概念組合成更復(fù)雜的一種概念。因此語法開發(fā)的任務(wù)要遠(yuǎn)難于在語義模型中描述某領(lǐng)域的概念關(guān)系。但是,用從模型、語法庫和注釋樣本來的信息,可以非常大地改進(jìn)語法產(chǎn)生過程。
一旦編寫好了模型202,可以如下面所討論的用自動(dòng)語法模板生成組件204從該模型產(chǎn)生模板CFG。模板CFG從語義模型繼承了語義限制。這是通過假設(shè)在CFG中把較小單元的集成引導(dǎo)成較大單元語言學(xué)限制對(duì)于在人機(jī)互動(dòng)中所使用的語言是不變的來完成的。在模板CFG中,每個(gè)語義類具有相應(yīng)的CFG非終結(jié)符,還有很多限制語言結(jié)構(gòu)的非終結(jié)符和預(yù)終結(jié)符。很多預(yù)終結(jié)符起初是占位符,并且不與任何終結(jié)符相關(guān)。因而,模板CFG沒有被非常充分地明確。塊206指出了模板語法。
可以用兩種方式來擴(kuò)展未充分明確的模板語法206。第一種是通過使用語法庫。語法管理器230可以訪問預(yù)先存在的語法的語法庫232。語法管理器230根據(jù)通過UI 224的用戶輸入將語法庫232中的特定語法和模型中的概念相關(guān)(因此還和對(duì)應(yīng)于這些概念的模板CFG中的非終結(jié)符相關(guān))。這樣的庫語法可以包含例如和領(lǐng)域無關(guān)的低級(jí)語義實(shí)體,如可以在不同應(yīng)用中共享的日期、時(shí)間、持續(xù)長度、郵寄地址、貨幣、數(shù)字、百分?jǐn)?shù)等。
讓模板語法206更具體的第二種方式是通過用注釋樣本進(jìn)行語法學(xué)習(xí)。這可以在穩(wěn)健的語義分析器和訓(xùn)練語句的語義注釋的幫助下來完成。一旦模板語法生成器204發(fā)展出了模板語法206,且語法管理器230用語法庫擴(kuò)展了模板語法206,就準(zhǔn)備好分析輸入的訓(xùn)練語句了。訓(xùn)練語句(或訓(xùn)練表達(dá)式)可以有創(chuàng)建者寫入,或者從訓(xùn)練表達(dá)式數(shù)據(jù)庫中得到,并由圖2中的塊210代表。根據(jù)本發(fā)明的一個(gè)實(shí)施例,創(chuàng)建者通過UI 224處合適的輸入用訓(xùn)練語句的語義結(jié)構(gòu)來注釋這些訓(xùn)練語句。由于語義結(jié)構(gòu)是CFG分析樹結(jié)構(gòu)的抽象,所以根據(jù)模型注釋句子比直接注釋CFG分析樹結(jié)構(gòu)要容易得多。塊212指出了訓(xùn)練語句的注釋,而塊214指出了注釋的表達(dá)。
因?yàn)槟0逭Z法206沒有被非常充分地明確,所以用模板CFG生成的語義分析是相當(dāng)模糊的,且性能通常是不可接受的。注釋的數(shù)據(jù)通過只使符合語義注釋的那些語義分析樹結(jié)構(gòu)有效而對(duì)此進(jìn)行了補(bǔ)償。在語義分析器發(fā)現(xiàn)符合抽象語義結(jié)構(gòu)的語義分析216之后,它可以通過把語句中的終結(jié)詞和語義分析樹中的預(yù)終結(jié)符并列來從CFG語義分析樹學(xué)習(xí)CFG規(guī)則。抽象語義結(jié)構(gòu)的注釋通過固定語句中的詞和對(duì)應(yīng)于語義注釋中的語義類的那些非終結(jié)符的并列從而在CFG語義分析樹結(jié)構(gòu)中提供一些錨接點(diǎn)。這種固定很大程度地減小了對(duì)輸入單詞和沒有在語義結(jié)構(gòu)中注釋的模板語法的預(yù)終結(jié)符之間的可能并列的搜索空間,這樣學(xué)習(xí)組件可以有效地學(xué)習(xí)單詞和預(yù)終結(jié)符之間的并列。學(xué)習(xí)組件還調(diào)用句法限制220,這樣可以進(jìn)一步減小可能的單詞/預(yù)終結(jié)符并列的搜索空間。從學(xué)習(xí)到的并列,通過學(xué)習(xí)組件218可以產(chǎn)生新的CFG規(guī)則228,并隨之被語法管理器230用于擴(kuò)展模板語法,以使其更具體。
即使有這些限制,仍然有一些必須由學(xué)習(xí)器218解決的額外的不明確性。為了解決這些不明確性,學(xué)習(xí)器218生成用戶查詢或提示222,它被傳遞到UI224以顯示給用戶。用戶然后可以提供對(duì)于那些查詢的回答226?;卮?26被提供給學(xué)習(xí)組件218,使得學(xué)習(xí)組件218可以根據(jù)指明的單詞/預(yù)終結(jié)符并列輸出學(xué)習(xí)后的CFG 228。應(yīng)該注意,可以進(jìn)行附加的學(xué)習(xí)來重復(fù)該過程。此時(shí),學(xué)習(xí)后的CFG 228中的學(xué)習(xí)到的CFG規(guī)則被用來擴(kuò)展模板語法206。這樣的擴(kuò)展可以得到更加具體的新語法。新語法隨后被語義分析器208用于分析新句子和新表達(dá)式,以發(fā)現(xiàn)它們的注釋;并且學(xué)習(xí)器218可以從新的注釋進(jìn)行學(xué)習(xí),以繼續(xù)改進(jìn)語法。
在一個(gè)實(shí)施例中,可以半自動(dòng)地獲得對(duì)句子或表達(dá)式的注釋。圖2B展示了圖2中的表達(dá)式注釋塊212的詳細(xì)數(shù)據(jù)流程。該開發(fā)工具的用戶可以用穩(wěn)健的語法分析器208和目前所學(xué)習(xí)到的語法(最初是用語法庫擴(kuò)展的模板語法)來分析句子。該分析器生成CFG分析樹,并把它映射到語義結(jié)構(gòu)注釋241。該注釋隨后通過UI 224被顯示給用戶。由于該階段的語法是未充分明確的,所以分析器208可能會(huì)犯錯(cuò)。用戶可以在塊242中通過UI 224糾正錯(cuò)誤,以產(chǎn)生糾正后的注釋214,糾正后的錯(cuò)誤隨后再被分析器用來生成符合糾正后注釋的CFG分析樹。從該CFG分析樹,可以提取并列候選,并將其送到學(xué)習(xí)器,以識(shí)別正確的并列。
圖3-11是更好地展示了根據(jù)本發(fā)明的語法創(chuàng)建系統(tǒng)的運(yùn)行的屏幕畫面。
用戶接口(UI)不需要采用圖3-11中所展示的形式。然而,這些圖僅僅是示范性的。在該實(shí)施例中,UI顯示包括標(biāo)有Parse,Save Ann,Learn以及Next的按鈕。當(dāng)例如指示和點(diǎn)擊設(shè)備激發(fā)Next按鈕時(shí),它使得下一個(gè)訓(xùn)練語句或訓(xùn)練表達(dá)式(訓(xùn)練表達(dá)式不需要是完整的句子)顯示在標(biāo)記為“Sentence To BeAnalyzed”的范圍之中。Parse按鈕使得句子被遞給分析器208;分析器208生成語義注釋。Save Ann按鈕使得一個(gè)被注釋的訓(xùn)練語句被保存,而Learn按鈕使得在語法開發(fā)者糾正了注釋之后,學(xué)習(xí)器218對(duì)分析器生成的注釋進(jìn)行學(xué)習(xí)。
圖3是顯示模型300和一組庫語法232的屏幕畫面。數(shù)字304所指出的符號(hào)代表了對(duì)象類型,而數(shù)字306所指出的符號(hào)代表了對(duì)象類型代表了語義類的實(shí)際名,名字緊跟在它之后。因此,CancelAppt是包括必須由類型為ExistingAppt的對(duì)象(例如類型為ExistingAppt的語義類ApptByAttribute的實(shí)例化)填充的空位的語義類名。語義類ApptByAttribute包括五個(gè)空位,其中兩個(gè)是日期(StartDate和EndDate),兩個(gè)是時(shí)間(StartTime和EndTime),一個(gè)標(biāo)識(shí)People。
在為了產(chǎn)生語義注釋而完成分析之前,將為該系統(tǒng)提供模型300;且模板語法生成組件204開發(fā)模板語法206。模板語法隨后被提供給語法管理器230??梢杂枚喾N不同的方法來生成模板語法。為了說明的目的,下面將提供一種較短的例子。假設(shè)下面是語義模型中的概念定義的一個(gè)例子<entity type=”ExistingAppt”name=”ApptByAttributes”>
<slot type=”People”/>
</entity>
<command type=”ApptUpdate”name=”AddAttendee”>
<slot type=”People”/>
<slot type=”ExistingAppt”/>
</command>
在該例中,簡(jiǎn)化的語義類ApptByAttributes是有代表已有約會(huì)的參與者的一個(gè)空位的實(shí)體。它涵蓋了這樣的表達(dá)式“和Alex會(huì)面”。它的語義類型是ExistingAppt,意味著它是引用已有約會(huì)的很多不同方式中的一種。其他方式(語義類)包括ApptByAnaphora(如“那次會(huì)面”)。語義類AddAttendee是一個(gè)命令。它有兩個(gè)空位,它們簡(jiǎn)單地表達(dá)式了可以把People加入ExistingAppt中。
為了給該模型開發(fā)模板CFG,假設(shè)把指導(dǎo)較小單元集成為較大單元的語言學(xué)限制對(duì)于人機(jī)互動(dòng)中所用的語言是不變的。改變的是特定領(lǐng)域的語義和對(duì)概念的語言學(xué)表達(dá)式。因此,這使得可以建立從語義模型繼承了語義限制的模板CFG。因此,上面的模型可以自動(dòng)地被解釋成下列的模板CFG
<T_ExistingAppt>→<C_ApptByAttributes> (1)<C_ApptByAttributes>→{<ApptByAttributeMods>}<ApptByAttributeHead>
{<ApptByAttributeProperties>} (2)<ApptByAttributeProperties>→<ApptByAttributeProperty>
{<ApptByAttributeProperties>} (3)<ApptByAttributeProperty>→<ApptByAttributePeopleProperty> (4)<ApptByAttributePeopleProperty>→{<PreApptByAttributePeopleProperty>}<T_People>
{<PostApptByAttributePeopleProperty>} (5)<ApptByAttributeHead>→NN(6)<PreApptByAttributePeopleProperty>→.* (7)<PostApptByAttributePeopleProperty>→.* (8)<T_UpdateAppt>→<C_AddAttendee>
<C_AddAttendee>→<AddAttendeeCmd>{<AddAttendeeProperties>}<AddAttendeeCmd>→.*<AddAttendeeProperties>→<AddAttendeeProperty>{<AddAttendeeProperties>}<AddAttendeeProperty>→<AddAttendeePeopleProperty>
<AddAttendeeExistingApptProperty>
<AddAttendeeExistingApptProperty>→{<PreAddAttendeeExistingApptProperty>}<T_ExistingAppt>
{<PostAddAttendeeExistingApptProperty>
<AddAttendeePeopleProperty>→{<PreAddAttendeePeopletProperty>}<T_People>
{<PostAddAttendeePeopletProperty>
<PreAddAttendeeExistingApptProperty→.*<PostAddAttendeeExistingApptProperty→.*<PreAddAttendeePeopleProperty→.*<PostAddAttendeePeopleProperty→.*在該例中,在右面空白處用數(shù)字標(biāo)出了規(guī)則。一個(gè)實(shí)體,如ApptByAttribute,包括頭部、出現(xiàn)在頭部前面的可選(帶括號(hào))修飾符(如,“Alex的會(huì)面”)以及規(guī)則2所展示的跟在頭部后面的可選(帶括號(hào))屬性(如,“和Alex會(huì)面”)。修飾符和屬性兩者是遞歸地定義的,使得它們最終如規(guī)則3和4所示的引入不同空位的順序。
每個(gè)空位是用可選的先導(dǎo)和結(jié)尾括起來的,如規(guī)則5所示。頭部、先導(dǎo)和結(jié)尾最開始是規(guī)則7和8中所展示的(.*)占位符。一些占位符是用部分語言限制(如,頭部必須是NN(名詞)),如規(guī)則6所示。
對(duì)于類似于AddAttendee之類的命令,該模板開始于一個(gè)命令部分<AddAttendeeCmd>,接下來是<AddAttendeeProperties>。剩下來的非常類似于對(duì)象的模板規(guī)則的相應(yīng)部分。該模板設(shè)置了語法的結(jié)構(gòu)框架。因此,語法學(xué)習(xí)的任務(wù)變成了從例子學(xué)習(xí)對(duì)于像頭部、命令、先導(dǎo)等預(yù)終結(jié)符之類的表達(dá)式。不進(jìn)行學(xué)習(xí),占位符可以匹配任何事物。但是,這樣的性能是無法被接受的,因?yàn)檎Z法的未充分明確性導(dǎo)致了不明確性。
非終結(jié)符<T_People>是和應(yīng)用有關(guān)的,并因此將由開發(fā)者以例如名字列表的形式提供。
如果語義分析器208已經(jīng)具有繼承了模型的句法限制的模板語法(如上所述地被開發(fā)),用戶現(xiàn)在將可以用已有的庫語法來增強(qiáng)語法。這可以通過在屏幕上把庫語法從庫302拖至(如通過用指示和點(diǎn)擊設(shè)備)合適的對(duì)象類型或語義類來完成。
但是,根據(jù)庫語法232的簡(jiǎn)化列表,創(chuàng)建者可能難以確定那些庫語法中實(shí)際包含了什么。因此,通過輸入合適的用戶輸入,用戶可以使得庫語法232中的一個(gè)在生成模式下運(yùn)行,并因此生成該特定CFG支持的語句段或表達(dá)式。在一個(gè)示范實(shí)施例中,用戶簡(jiǎn)單地只需要把點(diǎn)擊光標(biāo)放在庫語法232列表中的語法上,并用右鍵點(diǎn)擊,那么如圖4所示將出現(xiàn)一個(gè)顯示框303,它顯示了用戶所選的CFG支持的語句段或表達(dá)式例子。在所示的例子中,框303為“PreciseTime”庫語法生成,并顯示了用該語法生成的許多不同的表達(dá)式。
圖5所顯示的屏幕畫面和圖3中所示的屏幕畫面基本相同,除了左邊的模型已經(jīng)用從列表232來的多個(gè)庫語法進(jìn)行了擴(kuò)展。為了發(fā)現(xiàn)庫語法232列表中的每個(gè)語法中的各語義類,用戶可以簡(jiǎn)單地用右擊代表庫語法的任一圖標(biāo)。在一個(gè)示范例中,用戶已經(jīng)點(diǎn)擊了Date語法、People語法和Time語法。隨后將顯示包含在每個(gè)語法中的語義類。用戶然后可以從列表232把特定語法類拖至屏幕左手邊的模型,并將它們放置(通過放下它們)在恰當(dāng)?shù)膶?duì)象類型或空位類型中。
在圖5中,可以看到用戶把Weekday庫語法305從列表232拖至顯示在圖5左邊的語法。還可以看到用戶把PreciseTime語法307從列表232中拖出,并也將它放置在顯示在圖5左邊的語法中。最后,可以看到用戶還把PeopleList語法309從語法列表232拖至左邊。
通過把語法從列表232拖放至屏幕5左邊的正在開發(fā)的語法的模型,這使得可以把合適的用戶輸入從UI 224(圖2)提供至語法管理器230。語法管理器230隨后將所選的庫語法和系統(tǒng)開發(fā)的CFG相關(guān)。
圖6展示了本發(fā)命另一個(gè)包括注釋的實(shí)施例。為了注釋訓(xùn)練語句或訓(xùn)練表達(dá)式,用戶首先點(diǎn)擊用戶界面上的Next按鈕,使得新的訓(xùn)練語句或訓(xùn)練表達(dá)式被顯示在題為“被分析的句子”的輸入框內(nèi)。當(dāng)然,用戶也可以簡(jiǎn)單地通過打字輸入句子。在任一種情況,一旦下一個(gè)訓(xùn)練語句或訓(xùn)練表達(dá)式出現(xiàn)在了輸入框中,用戶可以把該句子拖放至顯示在屏幕左手邊的特定語義類。
這使得UI 224(圖2)發(fā)送命令到分析器208,以用特定的語義類分析段。分析器208隨后把句子分析成CFG分析樹,CFG分析樹隨后被抽象成語義結(jié)構(gòu)注釋,圖6中顯示了該注釋的例子,其中分析器208通過用詞語“meeting”填充CancelAppt語義類中的ExistingAppt空位已經(jīng)發(fā)現(xiàn)了正確的語義結(jié)構(gòu)。
另一個(gè)注釋例子可能會(huì)有所幫助。注釋提供了必須符合的并列中的錨接點(diǎn)。因此,它們劃分了并列的搜索空間,并使得學(xué)習(xí)器專注于本地感興趣的地方。例如,假設(shè)使用下列的訓(xùn)練語句?!鞍才藕蚉eter在下午3點(diǎn)會(huì)面”(“Schedule a meeting with Peter at 3 PM”)。且進(jìn)一步假設(shè)輸入了下列的注釋<command name=”NewMeeting”type=”ApptUpdate”>
<slot type=”Time”name=”StartTime”text=”3 PM”/>
<slot type=”Person”name=”Attendees”text=”Peter”/>
</command>
然后,分析器遵守這些限制,并生成圖6A中所示的具有下列的樹葉節(jié)點(diǎn)的分析樹(不約定把終結(jié)詞映射到預(yù)終結(jié)符,除非這樣的映射在注釋中被明確了)ScheduleMeetingCmd PreAttendeeProperty|Attendee/Peter|PostAttendeeProperty PreTimeProperty|Time/3 PM|PostTimeProperty注釋的限制把可能的并列空間劃分成三個(gè)部分,這樣“Schedule a meetingwith”只能匹配“ScheduleMeetingCmd”和“PreAttendeeProperty”,“at”只能匹配PostAttendeeProperty和PreTimeProperty。因此,注釋過程提供了被認(rèn)為是正確的錨接點(diǎn),并顯著地減小了學(xué)習(xí)器所要求的搜索空間。
學(xué)習(xí)器還可以用句法線索220(圖2)來把單詞并列到預(yù)終結(jié)符。例如,在一個(gè)實(shí)施例中,介詞和限定詞只能和它們后面的詞組合。因此,“at”只能和“PreTimeProperty”并列。因此,將引入下面兩個(gè)規(guī)則PreTimeProperty→at句法限制可以依據(jù)語言的一部分,或者也可以依據(jù)其他希望的句法限制。
圖7展示了另一種方式,為了產(chǎn)生語法學(xué)習(xí)的注釋用戶可以用這種方式強(qiáng)迫分析器208分析沒有注釋的句子。首先用戶簡(jiǎn)單地點(diǎn)擊Next按鈕,在標(biāo)有“將被分析的句子”的輸入框中將出現(xiàn)新的訓(xùn)練表達(dá)式。用戶隨后點(diǎn)擊Parse按鈕,從UI 224將生成將該訓(xùn)練語句傳送到分析器208的輸入,并使得它分析該句子。CFG分析隨后被抽象成語義結(jié)構(gòu),并在330顯示該結(jié)構(gòu)??梢钥吹椒治銎?08已經(jīng)正確地分析了該訓(xùn)練語句。因此,用戶可以通過按下Learn按鈕讓學(xué)習(xí)組件218從該分析中進(jìn)行學(xué)習(xí)。假設(shè)分析中沒有剩下任何的不確定性,學(xué)習(xí)組件218將從分析器208生成的分析中學(xué)習(xí)額外的關(guān)系。在學(xué)習(xí)了關(guān)系之后,學(xué)習(xí)器218生成代表那些關(guān)系的CFG規(guī)則。
圖8展示了另一個(gè)實(shí)施例,其中用戶可以通過糾正分析來進(jìn)一步注釋訓(xùn)練語句。在圖8中,假設(shè)用戶已經(jīng)按下了Next按鈕來獲得新的訓(xùn)練語句“Newmeeting with Peter Mau at five(五點(diǎn)鐘和Peter Mau的新會(huì)面)”。還假設(shè)用戶已經(jīng)把該句子拖至NewAppt語義類。分析器208因此嘗試用特定類型或語義來分析該句子,并輸出一個(gè)抽象的語義結(jié)構(gòu)332??梢钥吹椒治銎饕呀?jīng)犯了一個(gè)錯(cuò)誤。該分析器把小時(shí)(“five”)錯(cuò)誤地分析成了EndTime,而不是所引用的會(huì)面的StartTime。這可以被創(chuàng)建者糾正。
圖9展示了圖8中所示的分析樹是如何被糾正的。在圖9中,用戶在語義類NewAppt上點(diǎn)擊了右鍵,這使得UI顯示該語義類的所有空位,包括StartTime。用戶隨后拖出被錯(cuò)誤分析的小時(shí),并把它放在StartTime空位上。這樣的糾正因此正確地注釋了小時(shí),使得語義注釋被修改成如336所示。用戶可以因此按下Learn按鈕,使得學(xué)習(xí)組件從該正確分析進(jìn)行學(xué)習(xí)。
當(dāng)學(xué)習(xí)組件嘗試從該注釋進(jìn)行學(xué)習(xí)并生成需要的CFG規(guī)則時(shí),它將遭遇到訓(xùn)練語句中未注釋部分的不確定性。例如,學(xué)習(xí)組件仍然不具有允許它確定應(yīng)該把“new meeting with”放在語法并列中的哪個(gè)地方的信息。分析器不能確定如何在該文本段中劃分NewAppt的命令和People的修改符。換言之,系統(tǒng)無法知道“New meeting with”中的哪些對(duì)應(yīng)于新會(huì)面的命令,以及哪些字修飾Peter這個(gè)人。因此,該系統(tǒng)允許用戶進(jìn)行選擇。學(xué)習(xí)組件218生成圖10中所示的用戶提示222。在用戶提示中,要求用戶用恰當(dāng)?shù)姆侄蝸順?biāo)識(shí)特定的文本字串,這些分段是用文本段中放置在某些地方的垂線來指明的。這基本上使得用戶進(jìn)一步注釋訓(xùn)練語句,使得學(xué)習(xí)器可以沒有疑義地完成分析。
當(dāng)然,為了完成該糾正過程,在圖2中由UI 224生成恰當(dāng)?shù)妮斎耄暂斎氲较到y(tǒng)中的各組件。在學(xué)習(xí)器完成了注釋學(xué)習(xí)之后,用戶隨后可以通過簡(jiǎn)單地按下Parse按鈕來再一次要求系統(tǒng)分析相同的句子,并且將生成圖11中所示的分析樹340,以展示該系統(tǒng)已從以前生成的注釋分析進(jìn)行了學(xué)習(xí)。
還應(yīng)該提一提另一個(gè)特點(diǎn)。根據(jù)本發(fā)明的創(chuàng)建工具展示性地包括了可選語法輸入框342。通過點(diǎn)擊可選語法輸入框,UI 224接受并顯示隨后將被顯示的分析340中所用的特定語法。這使得用戶確定了在分析運(yùn)行過程中采用的是正確的語法。
應(yīng)該注意UI 224可以按照多種不同的方式和系統(tǒng)198的剩余部分199互動(dòng)。表1包括定義了UI 224和系統(tǒng)的剩余部分之間的互動(dòng)的一個(gè)示范協(xié)議。當(dāng)然,也可以使用其它或另外的協(xié)議。
表1[helpstring(“方法LoadSDL要求服務(wù)器加載語義模型[用語義描述語言]文件”)]HRESULT LoadSDL([in]BSTR SDLfname);[helpstring(“方法LoadGramLibrary通知FastLearner加載庫語法?!?]HRESULT LoadGramLibrary([in]BSTR Libfname);[helpstring(“方法Save保存經(jīng)學(xué)習(xí)的語法?!?]HRESULT Save( );[helpstring(“方法SaveAs將經(jīng)學(xué)習(xí)的語法保存為指定文件。”)]HRESULT SaveAs([in]BSTR FileName);[helpstring(“方法ViewGrammar要求服務(wù)器顯示經(jīng)學(xué)習(xí)的語法。”)]HRESULT ViewGrammar( );[helpstring(“方法GetLibrarySample要求FastLearner生成n[輸入?yún)?shù)]個(gè)庫語法非終結(jié)符樣本。用‘|’分隔輸出樣本?!?]HRESULT GetLibrarySample([in]BSTR NT,[in]int n,[out,retval]BSTR*Samples);[helpstring(“方法LoadGrammar加載預(yù)先學(xué)習(xí)的語法。第一個(gè)[輸入]參數(shù)指定語法文件名?!?]HRESULT LoadGrammar([in]BSTR NT);[helpstring(“方法ParseSegment要求FastLearner分析把非終結(jié)符rootNT作為起始符號(hào)的句段。輸出的是插入的分析樹?!?]HRESULT ParseSegment([in]BSTR rootNT,[in]BSTR segment,[out,retval]BSTR*ParseTree);[helpstring(“方法Associate將CFG非終結(jié)符和語義模型中的空位相關(guān)?!?]HRESULT Associate([in]BSTR slot,[in]BSTR CFG_NT);[helpstring(“方法Unassociate將CFG非終結(jié)符和語義模型中的空位去相關(guān)?!?]HRESULT Unassociate([in]BSTR slot,[in]BSTR CFG_NT);[helpstring(“方法LearnAnnotation讓FastLearner開始從注釋進(jìn)行學(xué)習(xí)。如果FastLearner發(fā)現(xiàn)了它不能解決的歧義,輸出參數(shù)fAmbi將為1。否則將為0?!?]HRESULT LearnAnnotation([in]BSTR sentence,[in]BSTR annotation,[out,retval]BSTR*fAmbi);[helpstring(“方法AskQuestion當(dāng)分析出現(xiàn)歧義時(shí),讓FastLearner提問。如果fYNQ=1,它是Y/N問題。否則它是多選問題?!?’被用來為多選問題分隔問題和選項(xiàng)?!?]HRESULT AskQuestion([out]int fYNQ,[out,retval] BSTR*question);[helpstring(“方法LearnFromAnswer把對(duì)所提問題的回答提供給FastLearner。如果問題是Y/N回答是0|1。否則將返回選項(xiàng)號(hào)(1...n)。如果仍然有歧義,輸出的fAmbi為1?!?]HRESULT LearnFromAnswer([in]int answer,[out,retval]int*fAmbi);[helpstring(“方法BatchAnnotationLearning把包含注釋句列表(每一行中有成對(duì)的句子字串和加括號(hào)的注釋字串的列表)的文件發(fā)送給FastLearner以開始批量的學(xué)習(xí)。”)]HRESULT BatchAnnotationLearning([in]BSTR annoFile);[helpstring(“方法ParseWithType分析特定類型的段。用加括號(hào)的樹表示REluts”)]HRESULT ParseWithType([in]BSTR type,[in]BSTR segment,[out,retval]BSTR*ParseTree);可以看到本發(fā)明提供了一個(gè)或多個(gè)顯著的優(yōu)點(diǎn)。其中之一是從CFG分析樹結(jié)構(gòu)中抽象了語義結(jié)構(gòu)。雖然已有技術(shù)在語法學(xué)習(xí)中使用了句法,但句法注釋和CF6是有關(guān)的;因此就顯得太昂貴,并且容易出錯(cuò)。本發(fā)明只要求用戶在模型的基礎(chǔ)上注釋句子,以生成語義注釋,該語義注釋相對(duì)于語言學(xué)CFG語法透明,并且可以由開發(fā)者在很好地理解他正在開發(fā)的應(yīng)用的情況下簡(jiǎn)單地進(jìn)行。
此外,本發(fā)明用分析器來引導(dǎo)注釋。人工語義注釋的一個(gè)公共問題是不一致性。例如,一些注釋者把“at 5:00”注釋成開始時(shí)間,而其他人則簡(jiǎn)單地把“5:00”注釋成開始時(shí)間。通過減輕了創(chuàng)建者清楚地寫出這些項(xiàng)目中的每一項(xiàng)這一任務(wù),且通過代之以允許創(chuàng)建者簡(jiǎn)單地把文本的一個(gè)部分拖至語義類以及允許分析器用該語義文本分析文本,分析器將總是以相同的方式編寫術(shù)語。換言之,分析器可以被配置成從不把術(shù)語“at 5:00”寫成開始時(shí)間,并且隨后把術(shù)語“5:00”寫成開始時(shí)間。因此,本發(fā)明調(diào)用分析器來消除創(chuàng)建過程中的不一致性。
用分析器來引導(dǎo)注釋不僅導(dǎo)致了提高的一致性,還節(jié)約了時(shí)間。例如,用戶可以把整個(gè)句子或句段拖至一個(gè)語義類。分析器隨后將用該語義類分析該句子或句段。這允許用戶只在較高層次上進(jìn)行注釋(如在語義類層)并允許分析器進(jìn)行較低層次的注釋。
此外,本發(fā)明用注釋來限制分析器。換言之,一旦做出了注釋,分析器將知道應(yīng)該根據(jù)注釋激活哪一個(gè)非終結(jié)符。這為分析器顯著地減小了分析訓(xùn)練語句時(shí)的搜索空間。
本發(fā)明還用處于生成模式的庫語法來生成例子。這在確定庫語法是否應(yīng)該被用于特定應(yīng)用中時(shí)是非常有用的。
此外,本發(fā)明從語義模型中開發(fā)了一種模板語法,它繼承了語義模型的語義限制。模板語法提供了結(jié)構(gòu)化的推廣,使得學(xué)習(xí)的語法可以被用來對(duì)具有和訓(xùn)練數(shù)據(jù)中不一樣的結(jié)構(gòu)的新句子進(jìn)行分析。由于模板語法遵從簡(jiǎn)單的范例,所以它的結(jié)構(gòu)便于閱讀和維護(hù)。用模板語法和庫語法,分析器可以獲得一種分析,該分析可以幫助用戶為語法學(xué)習(xí)注釋句子。
本發(fā)明還提示用戶解決開發(fā)CFG過程中的不確定性。本發(fā)明進(jìn)一步在學(xué)習(xí)過程中使用句法限制來進(jìn)一步為學(xué)習(xí)減小搜索空間。
盡管參考特定實(shí)施例對(duì)本發(fā)明進(jìn)行了描述,但是本領(lǐng)域的技術(shù)人員將意識(shí)到在不離開本發(fā)明的精神和范圍的情況下做出形式上的和細(xì)節(jié)上的變化。
權(quán)利要求
1.一種為應(yīng)用而構(gòu)建經(jīng)學(xué)習(xí)的上下文無關(guān)文法(CFG),其特征在于,包括為應(yīng)用生成語義模型,該語義模型具有相關(guān)的語義限制;根據(jù)該語義模型生成模板語法,使得該模板語法繼承和該語義模型相關(guān)的語義限制;以及通過用該模板語法分析訓(xùn)練語句構(gòu)建經(jīng)學(xué)習(xí)的CFG。
2.如權(quán)利要求1所述的方法,其特征在于,構(gòu)建經(jīng)學(xué)習(xí)的CFG包括通過根據(jù)語義模型注釋獲得的訓(xùn)練表達(dá)式來提供經(jīng)注釋的訓(xùn)練表達(dá)式,以提供一個(gè)或多個(gè)錨接點(diǎn),這些錨接點(diǎn)是訓(xùn)練表達(dá)式和模板語法中的一個(gè)或多個(gè)預(yù)終結(jié)符之間的已知正確并列。
3.如權(quán)利要求2所述的方法,其特征在于,構(gòu)建經(jīng)學(xué)習(xí)的CFG進(jìn)一步包括分析經(jīng)注釋的表達(dá)式,以產(chǎn)生符合錨接點(diǎn)的分析結(jié)果。
4.如權(quán)利要求3所述的方法,其特征在于,構(gòu)建經(jīng)學(xué)習(xí)的CFG進(jìn)一步包括用模板CFG為訓(xùn)練表達(dá)式的除了錨接點(diǎn)處并列的部分外的剩余部分學(xué)習(xí)并列。
5.如權(quán)利要求4所述的方法,其特征在于,學(xué)習(xí)并列包括獲得一組預(yù)先選擇的句法限制;以及應(yīng)用句法限制來為訓(xùn)練表達(dá)式的剩下部分學(xué)習(xí)并列。
6.如權(quán)利要求4所述的方法,其特征在于,學(xué)習(xí)并列包括用模板CFG中的預(yù)終結(jié)符把訓(xùn)練表達(dá)式中多個(gè)不同潛在詞語并列標(biāo)識(shí)成不明確性。
7.如權(quán)利要求6所述的方法,其特征在于,學(xué)習(xí)并列進(jìn)一步包括提供輸出查詢給用戶,該輸出查詢提示需要清楚的用戶輸入來消除不確定性的歧義;以及接收該清楚的用戶輸入。
8.如權(quán)利要求7所述的方法,其特征在于,提供輸出查詢包括提供潛在的并列作為多個(gè)用戶可選并列選項(xiàng)。
9.如權(quán)利要求1所述的方法,其特征在于,進(jìn)一步包括分析獲得的訓(xùn)練表達(dá)式以產(chǎn)生分析結(jié)果;顯示分析結(jié)果的抽象;以及接收糾正的輸入,它指出用戶對(duì)分析結(jié)果的糾正。
10.如權(quán)利要求9所述的方法,其特征在于,糾正輸入注釋至少一個(gè)錨接點(diǎn),該至少一個(gè)錨接點(diǎn)是訓(xùn)練表達(dá)式和模板語法中的預(yù)終結(jié)符之間的已知正確并列。
11.如權(quán)利要求10所述的方法,其特征在于,接收糾正輸入包括接收選擇輸入,選中分析結(jié)果中的訓(xùn)練表達(dá)式的錯(cuò)誤并列部分;接收移動(dòng)輸入,指出用戶把錯(cuò)誤并列部分拖至分析結(jié)果抽象中的正確對(duì)象;以及接收放置輸入,指出用戶把錯(cuò)誤并列部分放至分析結(jié)果抽象中的正確對(duì)象。
12.如權(quán)利要求11所述的方法,其特征在于,進(jìn)一步包括重新分析訓(xùn)練表達(dá)式,以產(chǎn)生符合錨接點(diǎn)的新分析結(jié)果;以及顯示新分析結(jié)果的新抽象。
13.如權(quán)利要求1所述的方法,其特征在于,構(gòu)建經(jīng)學(xué)習(xí)的CFG包括根據(jù)用戶輸入將至少一個(gè)預(yù)先已有的庫語法和模板語法相關(guān)。
14.如權(quán)利要求13所述的方法,其特征在于,將至少一個(gè)預(yù)先已有的庫語法和模板語法相關(guān)包括選擇多個(gè)可用庫語法中的一個(gè);以及將所選庫語法運(yùn)行于生成模式,以生成所選庫語法支持的至少一個(gè)表達(dá)式例子。
15.如權(quán)利要求13所述的方法,其特征在于,構(gòu)建經(jīng)學(xué)習(xí)的CFG包括同時(shí)顯示語義模型的指示和可用庫語法的指示;選擇庫語法中的一個(gè);將所選庫語法拖至語義模型中希望的位置;放下所選庫語法;以及將所選庫語法和模板語法相關(guān)。
16.一種構(gòu)建經(jīng)學(xué)習(xí)的上下文無關(guān)文法(CFG)的方法,其特征在于,包括為經(jīng)學(xué)習(xí)的CFG生成語義模型;獲得模板CFG;接收訓(xùn)練表達(dá)式;通過根據(jù)語義模型注釋訓(xùn)練表達(dá)式來提供經(jīng)注釋的訓(xùn)練表達(dá)式,以提供至少一個(gè)錨接點(diǎn),這些錨接點(diǎn)是部分訓(xùn)練表達(dá)式和模板CFG之間的已知正確并列;分析經(jīng)注釋的表達(dá)式來提供符合錨接點(diǎn)的分析結(jié)果;以及根據(jù)分析結(jié)果構(gòu)建經(jīng)學(xué)習(xí)的CFG。
17.一種用于開發(fā)特定領(lǐng)域的上下文無關(guān)文法(CFG)的系統(tǒng),其特征在于,包括模板語法生成器,它接收語義模型并生成從該語義模型繼承了語義限制的模板語法;注釋接口,它接收指出了用戶指定的錨接點(diǎn)的用戶注釋輸入,錨接點(diǎn)是訓(xùn)練表達(dá)式的至少一部分和語義模型之間的并列;耦接到模板語法生成器和注釋接口的分析器,它接收模板語法和用戶注釋輸入,并分析該訓(xùn)練表達(dá)式以提供符合錨接點(diǎn)的分析結(jié)果;以及耦接到分析器的學(xué)習(xí)器,它根據(jù)分析結(jié)果學(xué)習(xí)特定領(lǐng)域的CFG。
18.如權(quán)利要求17所述的系統(tǒng),其特征在于,進(jìn)一步包括語法管理器,配置成訪問預(yù)先已有的語法的語法庫,接收用戶相關(guān)輸入,以及根據(jù)用戶相關(guān)輸入將所選預(yù)先已有的語法和經(jīng)學(xué)習(xí)的CFG相關(guān)。
19.如權(quán)利要求18所述的系統(tǒng),其特征在于,學(xué)習(xí)器被配置成將至少一個(gè)預(yù)先已有的語法運(yùn)行于生成模式,以生成預(yù)先已有的語法支持的表達(dá)式例子。
20.一種生成上下文無關(guān)文法(CFG)的方法,其特征在于,包括生成未充分明確的模板CFG;根據(jù)模板CFG的抽象用一個(gè)或多個(gè)錨接點(diǎn)注釋訓(xùn)練表達(dá)式,這些錨接點(diǎn)將訓(xùn)練表達(dá)式的部分和CFG中的預(yù)終結(jié)符并列;給出錨接點(diǎn)的情況下,用模板CFG分析訓(xùn)練表達(dá)式,以提供分析結(jié)果;除錨接點(diǎn)之外,還學(xué)習(xí)訓(xùn)練表達(dá)式和模板CFG的并列;以及將CFG規(guī)則加入到模板CFG,以反映經(jīng)學(xué)習(xí)的并列和錨接點(diǎn)。
21.如權(quán)利要求20所述的方法,其特征在于,進(jìn)一步包括接收指出了用戶對(duì)分析結(jié)果的糾正的用戶糾正輸入。
22.如權(quán)利要求21所述的方法,其特征在于,學(xué)習(xí)并列包括獲取預(yù)先已有的句法限制;以及通過限制必須為之學(xué)習(xí)和模板CFG的并列的訓(xùn)練表達(dá)式部分來將預(yù)先已有的句法限制應(yīng)用于學(xué)習(xí)并列。
23.如權(quán)利要求21所述的方法,其特征在于,學(xué)習(xí)并列包括把用戶對(duì)分析結(jié)果的糾正用作錨接點(diǎn)。
24.一種為應(yīng)用領(lǐng)域中的應(yīng)用生成上下文無關(guān)文法(CFG)的方法,其特征在于,包括生成未充分明確的模板CFG;顯示應(yīng)用領(lǐng)域的模型,而不是CFG;根據(jù)模型而不是模板CFG注釋訓(xùn)練表達(dá)式,標(biāo)識(shí)訓(xùn)練表達(dá)式和模板CFG之間的一個(gè)或多個(gè)并列點(diǎn);用模板CFG分析訓(xùn)練表達(dá)式,以提供符合并列點(diǎn)的分析結(jié)果;學(xué)習(xí)訓(xùn)練表達(dá)式和CFG的并列;以及將CFG規(guī)則加入到模板CFG,以反映學(xué)習(xí)的并列。
全文摘要
一種語法創(chuàng)建系統(tǒng),它使用多個(gè)信息源來幫助語法創(chuàng)建。這產(chǎn)生了用相對(duì)較小的數(shù)據(jù)量半自動(dòng)地導(dǎo)出的語義語法。
文檔編號(hào)G06F17/27GK1423194SQ02156109
公開日2003年6月11日 申請(qǐng)日期2002年12月5日 優(yōu)先權(quán)日2001年12月5日
發(fā)明者Y·Y·王, A·阿克洛 申請(qǐng)人:微軟公司