專利名稱:用于編譯兩級詞法規則的方法和設備的制作方法
技術領域:
本發明涉及語言處理。特別地,本發明涉及將表面文本轉化成詞匯表示。
背景技術:
在語言處理中,通常將詞的表面形式轉換成詞匯形式,以便消除由于與語言的不同部分相關聯的詞法所引起的單詞拼寫中的變化。例如,表面形式“happiness”將被轉換成詞匯形式“happy+ness”,“found”通過將過去式的標志器添加到詞匯形式而轉換成“find”。由于需要支持的單詞的變化較少,因此這種轉換以后將簡化詞的處理。
執行這種轉換的一般方法包含對有限狀態轉換器(Finite State Transducer)的使用。在有限狀態轉換器中,兩個狀態通過轉換相連接,該轉換將單詞表面形式的字符映射到詞匯形式的字符或標記。在許多系統中,有限狀態轉換器基于一組描述從表面形式的字符到詞匯形式的字符映射規則而生成。這些規則中的一些包括左上下文、右上下文或二者均包括,它們需要有限狀態轉換器中的狀態多于兩個狀態。例如,如果一個從i到y轉換的規則包括左上下文“p:p”,該左上下文“p:p”需要在字母i之前具有一個表面形式的“p”,并包括一個右上下文“n:n”,該右上下文需要在字母i之后具有一個“n”,完整的有限狀態轉換器需包括開始狀態、字母p向第二狀態的轉換、從第二狀態到第三狀態的轉換i:y的轉換、和字母“n”從第三狀態的轉換。
二級詞法有限狀態轉換器用于通過將作為輸入的表面形式應用到有限狀態轉換器來建立單詞的詞匯形式。在每個狀態中,有限狀態轉換器確定是否輸入中的當前字符可以從當前狀態轉換到下一狀態。如果可以轉換,那么該有限狀態轉換器沿著該轉換的方向移動到下一狀態,并選擇輸入中的下一字符。如果當前字符與狀態外的任何轉換不匹配,則有限狀態轉換器終止并返回到有限狀態轉換器的開始狀態。
在現有技術中,規則的每個部分左上下文、核心、右上下文,被定義為獨立的有限狀態轉換器。這些有限狀態轉換器中的每一個分別被轉換成二進制表示,該二進制表示可在詞法處理期間(也稱為運行時)使用。
在運行時,各種有限狀態轉換器基于使用者的輸入進行動態結合,從而產生適合該輸入的單個虛擬FST。
雖然在運行時結合有限狀態轉換器提供了工作詞法系統,但是它極大地減慢了詞法處理過程。
發明內容
一種編譯正投影規則的方法包括為規則的核心建立核心有限狀態轉換器,并且為規則的上下文建立上下文有限狀態轉換器。核心有限狀態轉換器與上下文有限狀態轉換器相結合以便基于與規則操作符相聯系的模板建立一個規則有限狀態轉換器。該規則有限狀態轉換器然后用于創建可執行的有限狀態轉換器。在一個實施例中,規則有限狀態轉換器基于一個有限狀態轉換器中的公共核心更進一步地結合,以便形成核心有限狀態轉換器。核心有限狀態轉換器然后結合,以便形成適合于一組正投影規則的一組有限狀態轉換器。該組有限狀態轉換器然后轉換成為可執行有限狀態轉換器。
圖1是本發明實施例將在其中實現的通用計算環境的框圖。
圖2是根據本發明用于建立和使用有限狀態轉換器的系統框圖。
圖3是根據本發明建立有限狀態轉換器的方法的流程圖。
圖4是針對“可能出現”的有限狀態轉換器的狀態圖。
圖5是針對“必將出現”的有限狀態轉換器的狀態圖。
圖6是針對“如果核心表面字符出現則必將出現”的有限狀態轉換器的狀態圖。
圖7是針對“必將不出現”的有限狀態轉換器的狀態圖。
圖8提供了針對具有核心的規則的有限狀態轉換器。
圖9提供了針對具有與圖8相同核心的第二規則的有限狀態轉換器。
圖10提供了通過將圖8和9中有限狀態轉換器相結合所建立的有限狀態轉換器。
圖11提供了針對具有核心的規則的有限狀態轉換器。
圖12提供了針對具有與圖11相同核心的第二規則的有限狀態轉換器。
圖13提供了通過將圖11和12中有限狀態轉換器相結合所建立的有限狀態轉換器。
圖14提供了最小化有限狀態轉換器的一種方法的流程圖。
圖15提供了通過將圖10和13中有限狀態轉換器相結合所建立的有限狀態轉換器。
具體實施例方式
圖1示出了一個本發明適合在其上執行的計算系統環境100的實例。該計算系統環境100僅是適合的計算環境的一個實例,并不意味著對本發明的使用或功能范圍作出任何限定。計算環境100也不應被解釋成其具有與示范性的操作環境100中所示出組件中任何一個或它們的組合相關的依賴性或需求。
本發明在許多其他的通用或專用計算系統環境或結構中進行操作。適合于使用本發明的公知的計算系統、環境和/或結構的實例包括(但并不局限于)個人計算機、服務器計算機、手提或膝上裝置、多處理器系統、以微處理機為基礎的系統、機頂盒、可編程消費電子設備、網絡PC、小型機、大型機、電話系統、含有任何以上系統或裝置的分布式計算環境,等等。
本發明以在計算機可執行指令的通用范圍內進行描述,例如計算機執行的程序模塊。通常,程序模塊包括執行特定任務或實現特定抽象數據類型的例程、程序、對象、組件、數據結構等。本發明設計成在分布式計算環境中實現,在該分布式計算環境中,任務通過通信網絡所連接的遠程處理裝置執行。在分布式計算環境中,程序模塊位于包括存儲器存儲裝置的本地和遠程計算機存儲介質中。
參考圖1,用于執行本發明的示范系統包括計算機110形式的通用計算裝置。計算機110的組件可能包括(但不限定為)處理單元120、系統存儲器130和將具有系統存儲器的不同系統組件包括系統存儲器與處理單元120相耦合的系統總線121。該系統總線121可以是包括存儲器總線和存儲器控制器、外設總線、使用各種總線結構中任一種的本地總線在內的幾種總線結構類型中的任意一個。作為舉例,但并不是限定,這樣的結構包括工業標準結構(ISA)總線、微通道結構(MCA)總線、擴展ISA(EISA)總線、視頻電子標準協會(VESA)本地總線和也被通稱為夾層總線(Mezzanine bus)的外設部件互連(PCI)總線。
計算機110一般包括各種計算機可讀介質。計算機可讀介質可以是任何可用的介質,其可以通過計算機110存取,并包括易失和非易失介質、可拆裝和不可拆裝介質。作為舉例,但并不限定,計算機可讀介質可以包含計算機存儲介質和通信介質。計算機存儲介質包括以任何方法或技術實現的用于信息存儲的易失和非易失、可拆裝和不可拆裝介質,這些信息例如計算機可讀指令、數據結構、程序模塊或其它數據。計算機存儲介質包括,但不限定于,RAM、ROM、EEPROM、閃存或其它存儲技術、CD-ROM、數字通用盤(DVD)或其它光盤存儲器、盒式磁帶、磁帶、磁盤存儲器或其它磁存儲裝置、或任何其它可以用于存儲期望信息并可通過計算機110存取的介質。通信介質一般包含計算機可讀指令、數據結構、程序模塊或在已調數據信號例如載波或其它傳輸機構中的其它數據,還包括任何信息傳送介質。術語“已調數據信號”的意思是一個信號,該信號具有一個或更多它的特征集合或者以像在信號中編碼信息的方式一樣進行改變。作為舉例,但并不是限定,通信介質包括有線介質,例如有線網絡或直接有線連接,和無線介質,例如音傳、RF、紅外線和其他無線介質。以上任何的組合也應當包括在計算機可讀介質的范圍之內。
系統內存130包括以易失和/或非易失存儲器形式存在的計算機存儲介質,例如只讀存儲器(RAM)131和隨機存儲器(RAM)132。基本輸入/輸出系統133(BIOS)包括幫助在計算機110各元件之間傳輸信息的基本例程,例如在啟動過程中,一般存儲在ROM131中。RAM132一般包括由處理單元120立即存取和/或即刻操作的數據和/或程序模塊。作為舉例,但不是限定,圖1示出了操作系統134、應用程序135、其他程序模塊136和程序數據137。
計算機110可能還包括其他可拆裝/不可拆裝、易失/非易失計算機存儲介質。僅僅作為舉例,圖1示出了一個硬盤驅動器141,其從不可拆裝、非易失磁介質中讀取或寫入數據、磁盤驅動器151,其從可拆裝、非易失磁盤152中讀取或寫入數據,和一個光盤驅動器155,其從可拆裝、非易失光盤如CD ROM或其他光介質中讀取或寫入數據。可以在范例操作環境中使用的其他可拆裝/不可拆裝、易失/非易失計算機存儲介質包括(但不是限定)盒式磁帶、閃存卡、數字通用盤、數字視頻帶、固態RAM、固態ROM等。硬盤驅動器141一般通過不可拆裝存儲器接口,例如接口140,與系統總線121相連接;以及磁盤驅動器151和光盤驅動器155一般通過可拆裝存儲器接口,例如接口150,與系統總線121相連接。
圖1中示出并在以上討論的驅動器和它們所關聯的計算機存儲介質為計算機110提供了計算機可讀指令、數據結構、程序模塊和其他數據的存儲。在圖1中,例如,示出了硬盤141存儲操作系統144、應用程序145、其他程序模塊146和程序數據147。注意,這些組件可以與操作系統134、應用程序135、其他程序模塊136和程序數據137相同或不同。操作系統144、應用程序145、其他程序模塊146、和程序數據147在這里給出不同的編號,最低限度說明它們是不同的副本。
使用者可通過輸入裝置例如鍵盤162、麥克風163和點擊裝置如鼠標、跟蹤球或觸摸板向計算機110輸入命令和信息。其他輸入裝置(未示出)可包括操縱桿、游戲墊、疊形衛星天線、掃描儀等。這些和其他輸入裝置通常通過與系統總線相耦合的用戶輸入接口160與處理單元120相連接,但也可通過其他接口和總線結構相連接,例如并行端口、博弈端口或通用串行總線(USB)。監視器191或其他類型的顯示裝置也通過接口,例如視頻接口190,與系統總線121相連接。除監視器之外,計算機也可包括其他外圍輸出設備,例如揚聲器197和打印機196,它們可通過輸出外設接口195相連接。
計算機110可以利用到一個或多個遠程計算機,例如遠程計算機180,邏輯連接在網絡環境中進行操作。該遠程計算機180可以是個人計算機、手提設備、服務器、路由器、網絡PC、對等設備或其他公共網絡節點、并且一般包括以上所描述的與計算機110有關的許多或所有元件。圖1中所描述的邏輯連接包括局域網(LAN)171和廣域網(WAN)173,但也可包括其他網絡。這樣的網絡環境常見于辦公室、企業廣域計算機網絡、企業內聯網和互聯網。
當在LAN網絡環境中使用時,計算機110通過網絡接口或適配器170與LAN171相連接。當在WAN網絡環境中使用時,計算機110一般包括調制解調器172或其他用于在WAN173上建立通信的工具,例如互聯網。可能是內置的或外置的調制解調器172可通過用戶輸入接口160或其他適當的機構與系統總線121相連接。在網絡環境中,描述為與計算機110或其中的部分相關聯的程序模塊可以存儲于遠程存儲裝置中。作為舉例,但并不是限定,圖1示出了駐留于遠程計算機180中的遠程應用程序185。可以理解為,所示的網絡連接是示范性的,并且其他在計算機間建立通信鏈接的工具也可以使用。
本發明提供了一種用于創建有限狀態變換器的方法,該有限狀態轉換器在運行時有效地運行,將表面語言形態轉換為詞匯形式。
圖2和3分別提供了一個簡單框圖和流程圖,示出了本發明實施例的基本操作。在圖3的步驟300中,一組正投影規則200通過語言學家寫入,其用來描述從表面形式到詞匯形式的可能的轉換。作為默認,假定表面形式中的每一個字符將被映射到詞匯形式中的相同字符。每一個規則描述了這種默認映射的例外。
在一個實施例中,每一個規則包括定義非默認映射的核心、左上下文和右上下文。這些元素的每一個以一對通過冒號隔開的字符形式被寫入,并且左邊的字符表示表面形式的字符,右邊的字符表示詞匯形式的字符。因此,核心“i:y”表示從表面形式字符“i”到詞匯形式字符“y”的映射。同樣地,“a:b”的左上下文表示有左表面形式核心字符“a”和左詞匯形式核心字符“b”。一般左上下文的表面形式和詞匯形式的字符相互匹配,例如“a:a”。右上下文的表面形式和詞匯形式的字符同樣會相互匹配。
在一個實施例中,基于該規則可能出現、必將出現、如果核心的表面形式被找到則必將出現或必將不出現的情況,存在四種規則。這些規則中的每一個規則通過各自的操作符->,<->,<-,和><表示。一般規則以如下的格式寫入核心操作符左上下文---右上下文例如,規則a:b->c:c---d:d表示從“a”到“b”的核心映射,其可能出現于當存在左上下文c:c和右上下文d:d時。
正投影規則200提供給編譯器202。在步驟302,通過編譯器202中的規則FST構造(formation)204為每一個規則產生有限狀態變換器。規則RST構造204在步驟301首先分析每個規則,以識別每個規則的核心、操作符、左上下文和右上下文。在步驟302,規則FST構造204為每個核心、左上下文和右上下文形成獨立的FST。每個規則的左上下文FST然后使用與規則操作符相聯系的模板與規則各自的核心FST相組合。這個組合的FST然后與各自的用于規則的右上下文FST相組合而形成基于相同模板的規則FST。
由于存在四種不同的可能操作符,因此存在四個獨立的模板,每個模板適合一個類型的操作符。
圖4示出了可能出現操作符的模板有限狀態變換器。該模板包括三個狀態400、406和414。狀態400和406表示接收狀態,當有限狀態轉換器在那些狀態中結束變換時,該接收狀態產生一個成功值。狀態414是拒絕狀態,當有限狀態轉換器在那個狀態中結束轉換時,該拒絕狀態產生一個失敗值。通常,本申請所示的圖中,接收狀態表示為兩個同心圓,拒絕狀態表示為單個圓。
在圖4所示的模板中,規則的左上下文沿著狀態400和狀態406之間的轉換402插入,通過Ls:L1表示。左上下文也沿著自循環408的方向放置,其從狀態406延伸并返回狀態406。從而,在有限狀態轉換器中,如果在表面形式和詞匯形式中遇到左上下文而狀態轉換器處于狀態400或狀態406時,則有限狀態轉換器將移動到狀態406。狀態400也包括默認轉換404,其引起有限狀態轉換器在狀態400循環,直至遇到左上下文。
核心Cs:C1然后沿著狀態406和狀態414之間的轉換412插入。核心的表面形式Cs用于形成一個“*”字符對,其表示詞匯形式的任何可能的字符。該對然后沿著從狀態406到狀態412的轉換410插入。因此,如果有限狀態轉換器處在狀態406,如果遇到核心它將轉換到狀態414,如果再次遇到左上下文它將返回狀態406,如果遇到任何其他值它將返回狀態400。
右上下文Rs:R1插入到狀態414和400之間的轉換416。如果遇到右上下文而有限狀態轉換器處在狀態414時,則有限狀態轉換器將返回狀態400。然而,如果在狀態414遇到任何其他值,則有限狀態轉換器將失敗并在拒絕狀態中414結束。
圖5提供了必將不出現操作符的模板有限狀態轉換器。該模板包括三個接收狀態500、502、504和一個拒絕狀態506。左上下文Ls:L1插入到狀態500和502之間的轉換508,并處在狀態502的自循環轉換510。核心Cs:C1插入到狀態502和504之間的轉換512,并且右上下文Rs:R1在狀態504和506之間插入。
在操作中,當在狀態500或狀態502中遇到左上下文時,圖5的有限狀態轉換器將轉換到狀態502。如果在狀態502中遇到核心,則有限狀態轉換器將轉換到狀態504。如果在狀態502既未遇到核心也未遇到左上下文,則有限狀態轉換器將沿著轉換512返回狀態500。如果在狀態504遇到右上下文,則有限狀態轉換器跟隨轉換514到拒絕狀態506,并且由于其遇到了左上下文、核心和右上下文的序列,有限狀態轉換器失敗。如果在狀態504未遇到右上下文,則轉換516跟隨到狀態500。
圖6提供了核心的語義形式是遇到的操作符時必將出現的模板。圖6的模板包括接收狀態600、602和拒絕狀態604,它們和圖4可能出現模板中的狀態400、406和414相似。該模板還包括接收狀態606和拒絕狀態608。左上下文Ls:L1插入到轉換610、612、614,并在狀態602結束。核心Cs:C1在轉換616插入,并且該核心的表面形式字符Cs與適合于詞匯形式的字符“*”相組合,并插入到轉換618。右上下文Rs:R1在轉換620和622插入。
當執行時,若遇到左上下文,圖6的有限狀態轉換器將從狀態600移動到狀態602。如果未遇到左上下文,它將沿著轉換624在狀態600循環。在狀態602中,如果遇到核心,有限狀態轉換器將移動到604;如果再次遇到左上下文,它將在狀態602循環;如果它遇到核心表面形式字符具有不同于核心詞匯形式字符的任何值,其將轉換到狀態606;并且對于所有其他情況,其將返回到狀態600。在狀態604,如果遇到右上下文,有限狀態轉換器將返回到接收狀態600。如果未遇到右上下文,該有限狀態轉換器將在狀態604失敗。
在狀態606中,如果遇到右上下文,有限狀態轉換器將轉換到失敗狀態608。從而,如果遇到一個包括左上下文、與不同于核心詞匯形式配對的核心表面形式、和右上下文的序列,該模板將在狀態608失敗。如果在狀態606遇到左上下文,該有限狀態轉換器將返回到狀態602。對于在狀態606的其他值,有限狀態轉換器將沿著默認轉換626返回到狀態600。
圖7提供了一個必將出現操作符的模板。該模板與圖6的模板相似,包括三個接收狀態700、702和706以及兩個拒絕狀態704和708。左上下文在進入到狀態702的轉換710、712和714上插入,核心在進入到狀態704的轉換716上插入,并且右上下文插入進入到狀態700的轉換718和進入到狀態708的轉換720上。默認轉換722和724在狀態702和706之間以及狀態706和700之間提供。
在圖3的步驟302,通過將規則插入到適當的模板,建立了單獨的有限狀態轉換器,適合于每個核心的單獨有限狀態轉換器以核心對核心為基礎由圖2的編譯器202的規則組合器206加以組合。這樣的有限狀態轉換器的組合的一個實例可參見圖8、9和10。圖8提供了適合于核心“a:b”的第一有限狀態轉換器,圖9提供了適合于核心“a:b”的第二有限狀態轉換器。適合于核心“a:b”的有限狀態轉換器的組合在圖10中示出。
圖8中示出的有限狀態轉換器表示了規則a:b->c:c---d:d圖9中示出的有限狀態轉換器表示了規則a:b<-d:d---e:e關于這些規則要注意兩件事情。第一,它們包括不同的操作符。根據本發明,適合于任何操作符的有限狀態轉換器可在步驟304組合。第二,適合于圖8有限狀態轉換器的規則的右上下文形成了圖9有限狀態轉換器的左上下文。從而,規則可順序地執行。
在組合圖8和9的有限狀態轉換器中,第一步是將初始狀態800和900組合成圖10有限狀態轉換器中的單獨初始狀態1000。圖8的狀態802和804然后插入到圖10的有限狀態轉換器中,作為狀態1002和1004;圖9的狀態902、904、906和908作為狀態1006、1008、1010和1012分別插入。在初始有限狀態轉換器中找到的狀態間的轉換保留在已組合的有限狀態轉換器中,除了一些例外。第一,由于各自獨立的初始狀態被替換為一個初始狀態1000,到達或者從初始狀態800和900發出的轉換均改為到達或者從初始狀態1000發出。第二,由于圖8中有限狀態轉換器的右上下文是圖9有限狀態轉換器的左上下文,因此適合于圖8中有限狀態轉換器右上下文的從狀態804到狀態800的轉換806在已組合的有限狀態轉換器中改變,從而替代初始狀態1000在狀態1006終止。通過運行狀態1000、1002、1004、1006、1008這允許表面序列“cadae”來描述兩個狀態“cad”和“dae”并返回到狀態1000。
最后,每個先于核心轉換的狀態必將是從每一個接收狀態通過左上下文轉換可獲得的。為了如此做,加入了附加轉換。特別地,進入到狀態1002的轉換1014和1016被加入以支持左上下文“c:c”,進入到狀態1006的轉換1018被加入以支持左上下文“d:d”。
注意,為同一核心附加的有限狀態轉換器可通過分享相同的初始狀態與圖10的有限狀態轉換器相組合,確保存在從每個接收狀態到核心轉換前的狀態的左上下文轉換,并適當地與右上下文轉換相連接以便于規則的級聯。
圖11、12和13示出了適合于第二核心“h:i”的有限狀態轉換器的組合的另一個實例。圖11中的有限狀態轉換器適合于規則
h:i->g:g---j:j并且圖12中的有限狀態轉換器適合于規則h:i->k:k---n:n像先前實例一樣,圖11和12中有限狀態轉換器的各自獨立的初始狀態1100和1200組合成圖13中有限狀態轉換器的一個單獨的初始狀態1300。到達或從各自初始狀態發出的轉換改變成到達或者從單獨初始狀態1300發出的轉換。注意,由于這些規則不是級聯的,因此每個規則的右上下文返回到初始狀態1300。
另外,為了使得左上下文從任一接收狀態發生,增加了到狀態1306和1308的轉換1302和1304。轉換1302支持從接收狀態1306到狀態1308的左上下文“g:g”。轉換1304支持從接收狀態1308到狀態1306的左上下文“k:k”。
在適合特殊核心的有限狀態轉換器被組合到一個單獨的有限狀態轉換器上之后,最小化已組合核心有限狀態轉換器的可選步驟通過圖2中的最小化器(minimizer)208在步驟306執行。這樣的最小化技術在本領域是公知的,并包含刪除不可達狀態和組合等價狀態,此處等價狀態根據相同的輸入值轉換到同一組狀態。
圖14提供了一個用于最小化有限狀態轉換器的現有技術的流程圖。該過程在步驟1400開始,基于這些狀態是接收狀態還是拒絕狀態,狀態被分到兩個組中的一個。在步驟1402,基于該組針對給定的表面形式/詞匯形式對轉換到何處,每個組中的狀態被分為子組。從而,轉換到接收組中狀態的狀態被放入一個子組,轉換到拒絕組中狀態的狀態被放入另一個子組。
在步驟1404,該方法檢查對于任意可能的表面形式/詞匯形式對是否可以形成至少兩個子組。如果可以形成這些子組,則該組在步驟1406被劃分,從而每個子組成為一個獨立的組。該過程然后返回步驟1402來看是否當前的組能否被進一步劃分。當該組在步驟1404不能再劃分,每個組中的狀態組合成一個單獨的狀態,并且在步驟1408,到達或者從那些各自獨立狀態發出的轉換被生成到達或者從一個單獨的已組合的狀態發出。
在步驟306完成最小化核心有限狀態轉換器之后,核心有限狀態轉換器通過圖2的核心組合器210被組合成一個單獨的有限狀態轉換器。圖15示出了一個通過將圖10和13的核心有限狀態轉換器組合形成的單獨的有限狀態轉換器。
像組合有限狀態轉換器以形成核心有限狀態轉換器時一樣,組合核心狀態轉換器的步驟包括將每一核心有限狀態轉換器的初始狀態組合成一個單獨的狀態。從而狀態1000和1300成為圖15中狀態1500,并且到達或者從狀態1000和1300發出的轉換成為到達或者從狀態1500發出的轉換。
為了支持左上下文,針對每個左上下文的轉換必須在核心轉換前從每一接收狀態擴展到適當的狀態。從而,必須增加一些的轉換以支持每一可能的左上下文。例如,增加轉換1502和1504以支持到狀態1506的左上下文“g:g”。另外,適合于右上下文的轉換應當改進以允許規則的級聯,就像建立核心有限狀態轉換器時所做的一樣。
注意,圖15的有限狀態轉換器是針對一組規則的單個有限狀態轉換器的一個小實例。在實際中,單個有限狀態轉換器將大得多。
在步驟308建立單個有限狀態轉換器之后,在步驟310使用最小化器212將其最小化。這導致了一組有限狀態轉換器,它是表示所有正投影規則200的單個有限狀態轉換器。在步驟312,這組有限狀態轉換器然后轉換成可執行的有限狀態轉換器。在運行時可執行有限狀態轉換器可以直接執行。在運行時期間,將表面形式216中的字符序列216應用于可執行有限狀態轉換器214。基于表面形式,有限狀態轉換器在狀態之間移動并由此產生詞匯形式218。由于存在針對所有規則的單個有限狀態轉換器,所以運行時執行比在現有技術的系統中快得多。
雖然參考特定實施方式對本發明進行了描述,但是本領域的熟練技術人員將會認識到在不脫離本發明精神和范圍的情況下可以在形式和細節上進行一些變化。
權利要求
1.一種編譯正投影規則以形成可執行有限狀態轉換器的方法,其特征在于,所述方法包括為正投影規則的核心形成核心有限狀態轉換器;為正投影規則的上下文形成上下文有限狀態轉換器;將核心有限狀態轉換器與上下文有限狀態轉換器相結合,以形成基于與正投影規則操作符相聯系模板的規則有限狀態轉換器;以及使用該規則有限狀態轉換器建立可執行的有限狀態轉換器。
2.如權利要求1所述的方法,其特征在于,所述方法進一步包括,為正投影規則的第二上下文形成第二上下文有限狀態轉換器,其中形成規則有限狀態轉換器包括,將核心有限狀態轉換器、上下文有限狀態轉換器和基于模板的第二上下文有限狀態轉換器相結合。
3.如權利要求2所述的方法,其特征在于,所述正投影規則是第一正投影規則,規則有限狀態轉換器是第一規則有限狀態轉換器,并且該方法進一步包括為第二正投影規則形成核心有限狀態轉換器和上下文有限狀態轉換器,以及基于與第二規則操作符相聯系的模板,將核心有限狀態轉換器與上下文有限狀態轉換器結合為第二規則有限狀態轉換器。
4.如權利要求3所述的方法,其特征在于,所述第二正投影規則的模板與第一正投影規則的模板不同。
5.如權利要求4所述的方法,其特征在于,所述第一正投影規則的操作符與第二正投影規則的操作符不同。
6.如權利要求1所述的方法,其特征在于,所述方法進一步包括,建立多個規則狀態轉換器,每個規則狀態轉換器與不同的規則相聯系。
7.如權利要求6所述的方法,其特征在于,所述使用規則有限狀態轉換器包括結合規則有限狀態轉換器,該有限狀態轉換器具有相同的核心以便為每個核心形成一個單獨的已結合核心有限狀態轉換器。
8.如權利要求7所述的方法,其特征在于,所述使用規則有限狀態轉換器更進一步包括為核心結合已結合的核心有限狀態轉換器以便形成一組有限狀態轉換器。
9.如權利要求8所述的方法,其特征在于,所述方法進一步包括在形成組有限狀態轉換器之前,最小化每個已結合的核心有限狀態轉換器。
10.一種具有計算機可執行指令的計算機可讀介質,用于執行的各步驟包括確定正投影規則中的操作符;基于該操作符選擇模板;以及在模板中插入正投影規則的元素以形成有限狀態轉換器。
11.如權利要求10所述的計算機可讀介質,其特征在于,所述正投影規則包括指示從表面形式到詞匯形式映射的核心。
12.如權利要求11所述的計算機可讀介質,其特征在于,所述正投影規則更進一步包括左上下文和右上下文。
13.如權利要求12所述的計算機可讀介質,其特征在于,所述插入正投影規則的元素包括將核心、左上下文和右上下文插入模板中。
14.如權利要求10所述的計算機可讀介質,其特征在于,進一步包括為多個規則中的每一個執行確定操作符、選擇模板和插入元素的步驟,以形成多個有限狀態轉換器。
15.如權利要求14所述的計算機可讀介質,其特征在于,進一步包括結合有限狀態轉換器中的至少兩個,以形成已結合有限狀態轉換器。
16.如權利要求15所述的計算機可讀介質,其特征在于,所述結合至少兩個有限狀態轉換器中包括結合所有具有相同核心的有限狀態轉換器。
17.如權利要求16所述的計算機可讀介質,其特征在于,所述結合至少兩個有限狀態轉換器中包括通過結合所有具有第一核心的有限狀態轉換器形成第一已結合有限狀態轉換器,以及通過結合所有具有第二核心的有限狀態轉換器形成第二已結合有限狀態轉換器。
18.如權利要求17所述的計算機可讀介質,其特征在于,進一步包括結合第一有限狀態轉換器和第二有限狀態轉換器,以形成一組有限狀態轉換器。
19.如權利要求17所述的計算機可讀介質,其特征在于,進一步包括最小化第一已結合有限狀態轉換器和最小化第二已結合有限狀態轉換器。
20.如權利要求9或19所述的方法或介質,其特征在于,進一步包括最小化所述有限狀態轉換器組。
21.如權利要求20所述的方法或介質,其特征在于,進一步包括由有限狀態轉換器組形成可執行有限狀態轉換器。
全文摘要
一種編譯正投影規則的方法包括通過在有限狀態轉換器模板中插入規則元素,將第一和第二正投影規則編譯到各自獨立的有限狀態轉換器中。該各自獨立的有限狀態轉換器組合以形成一個單獨的已組合的有限狀態轉換器。在一個實施例中,有限狀態轉換器基于有限狀態轉換器中的共同核心首先被組合。然后,該適合于核心的已組合有限狀態轉換器被組合以便為該組正投影規則形成一個單獨的有限狀態轉換器。
文檔編號G06F9/45GK1609849SQ20041003522
公開日2005年4月27日 申請日期2004年3月31日 優先權日2003年4月3日
發明者C·E·胡騰豪爾 申請人:微軟公司