專利名稱:外圍設備的語言識別系統(tǒng)和方法
技術領域:
本發(fā)明涉及數(shù)據(jù)處理系統(tǒng)中所接收語言的識別,更具體地說,涉及一種采用語法和上下文分析的語言識別系統(tǒng)。
現(xiàn)代的數(shù)據(jù)處理網(wǎng)絡可以使各種類型的計算機與通信網(wǎng)絡互連起來。諸如打印機、繪圖儀等之類的外圍設備也可與通信網(wǎng)絡連接起來,作為所連接的各計算機的資源。這些外圍設備必須能理解和響應收自各種計算機的指令。只要全部所連接的計算機采用同一外圍控制語言,外圍設備就只需要識別和響應一種語言。但當這些計算機采用不同的外圍控制語言時,外圍設備就必須能夠識別輸進來的語言語種,并響應所識別語言中的指令。
某些外圍控制語言采用識別語言的初始識別碼序列。只要與網(wǎng)絡連接的各種計算機符合這種語言的語法編碼要求,就能識別語言,但保證不了這些代碼序列一定能在所有可能連接到網(wǎng)絡上的計算機上起作用。外圍設備制造廠家必須預料到這種可能性,即,某一特定初始識別碼序列可能出現(xiàn)在另一種語言的數(shù)據(jù)流中從而使外圍設備引起錯誤的語言轉(zhuǎn)換。
最近,有一些復雜的外圍設備采用“上下文轉(zhuǎn)換”系統(tǒng),在該系統(tǒng)中,所收到的代碼組經(jīng)過分析,就能夠在裝入作業(yè)中識別要被使用的語言。QMSESP就是這樣的一種上下文轉(zhuǎn)換器,它是美國QMS國際公司(地址OneMagnumPass,Mo-bile,Alabama36618)的產(chǎn)品。雖然這種QMSESP產(chǎn)品的細節(jié)尚未公布,但從外部分析可以略知其工作情況。該ESP產(chǎn)品看來用以檢索表示特定控制語言的特殊字符串、符號和控制字符(以下總稱為關鍵字)。某些關鍵字由于表示某特定語言而具有特別重要的地位。此外,一個關鍵字出現(xiàn)的次數(shù)也非常重要。
根據(jù)從初始代碼序列積累的統(tǒng)計資料,ESP確定輸進來的語言。據(jù)發(fā)現(xiàn),ESP在某些情況下并不能進行識別語言。估計語言選擇上的這種差錯是由于某些關鍵字在一種以上的語言中出現(xiàn),而且由于對輸進來的數(shù)據(jù)流沒有進行上下文分析所致,經(jīng)過一段時間之后必然會顯示出錯誤的語言。
因此,本發(fā)明的目的是提供外圍設備的一種經(jīng)改進的語言識別系統(tǒng)。
本發(fā)明的另一個目的是提供一種對輸進來的數(shù)據(jù)流既進行上下文分析又進行語法分析的語言識別系統(tǒng)。
本發(fā)明還有另一個目的,即提供一種可加以擴充以支持其他語言的語言識別系統(tǒng)。
數(shù)據(jù)處理系統(tǒng)通常對多種輸入的語言起反應,各種語言遵循既定的語法。輸進來的數(shù)據(jù)有某一些說明部分(“容許”關鍵字)時表明經(jīng)表決容許某一種語言出現(xiàn),有其他說明部分(“禁此”關鍵字)時表明經(jīng)表決禁止該語言出現(xiàn)。識別所輸入的語言時,系統(tǒng)履行下列程序就各預期的語言分析輸進來的數(shù)據(jù)組的語法,從而識別數(shù)據(jù)組中的“容許”和“禁止”關鍵字;根據(jù)分析提供各預期語言的“容許”和“禁止”計數(shù),各計數(shù)為關鍵字條的總和,各關鍵字條由一個經(jīng)識別的關鍵字計數(shù)乘上一個加權系數(shù)組成,加權系數(shù)值表示關鍵字在語法和該數(shù)據(jù)組上下文中的重要性,“容許”計數(shù)是“容許”關鍵字條的總和,“禁止”計數(shù)是“禁止”關鍵字條的總和;將“容許”計數(shù)與“禁止”計數(shù)加以比較,以確定它們是否接近得有必要發(fā)出“測不準”的信號;然后根據(jù)數(shù)據(jù)組的另一個語法特性,分析該“測不準”情況,并根據(jù)其中一個計數(shù)顯示某一個數(shù)值,或者兩個計數(shù)極其明確時顯示從較大的計數(shù)得出的數(shù)值;最后根據(jù)各預期語言的顯示值識別所收到的語言。
圖1是體現(xiàn)本發(fā)明的語言識別程序的系統(tǒng)方框圖。
圖2是圖1所示的語言識別程序中表決模塊中的子程序表。
圖3是打印機控制語言PCL的語法定義。
圖4是打印機控制語言PS的語法定義。
圖5a舉例說明了PS語言中各關鍵字的加權表。
圖5b舉例說明了PCL語言中各關鍵字的加權表。
圖6是PS語言的上下文表。
圖7是PCL語言的上下文表。
圖8-11舉例說明了圖1的系統(tǒng)執(zhí)行語言識別程序的高級流程圖。
參看圖1。個人計數(shù)機10、12和14通過局部地區(qū)網(wǎng)絡(LAN)16互連起來。打印機18也接到LAN16上,給各個人計算機10、12和14提供打印服務。下面將圍繞打印機18說明本發(fā)明的內(nèi)容,但不言而喻,其它給各有關計算機提供服務的數(shù)據(jù)處理系統(tǒng)也可應用本發(fā)明。其它這類外圍設備的例子有繪圖儀、傳真設備等。
與LAN連接的各計算機可以采用不同的打印機控制語言。為說明本發(fā)明,假設PC10采用叫做PCL(打印機控制語言)的打印機語言,PC12采用PS打印機語言,PC14采用其它打印機控制語言。本發(fā)明使打印機18能自動分析從PC10、12和/或14中任何一個個人計算機輸進來的指令/數(shù)據(jù)流的上下文,識別所收到的語言,并能由此接下去執(zhí)行打印的各項指令。
打印機18包括中央處理單元20、輸入/輸出(I/0)模塊22和隨機存取存儲模塊24,均經(jīng)總線25與打印發(fā)動機28互連。30示出了RAM24的一部分的分解圖,該部分包括RAM24供語言識別程序用的部分,其中含有存儲收自PC10、12和14任一個人計算機的數(shù)據(jù)組的存儲區(qū)32。存儲區(qū)32最好大得足以存儲256字節(jié)的數(shù)據(jù)組。我們知道如此規(guī)模的數(shù)據(jù)組是足以識別輸進來的語言而無需不適當?shù)匮娱L所需要的處理時間的。
語言識別程序涉及多個表決器模塊34、36和38,這些模塊各個是專門用來分析預期的打印機語言的。例如,表決器模塊34用來分析PCL語言,表決器36用來分析PS語言等。判定器模塊40接收來自各表決器模塊34、36和38的輸出,然后根據(jù)這些表決器模塊的輸入判定所接收的語言可能性最大的語種。判定器40指示CPU20,令其訪問語法譯碼軟件,使其能譯出并執(zhí)行該判定出的語言。由于判定和表決功能在不同的模塊中執(zhí)行,當增加其它語言時,只要給各新的語言增設表決器模塊就不難適應這些新的語言。
參看圖2,圖中示出了具代表性的表決器模塊及其主要組成部分。子程序42是個語法分析器,配備有表決器指定語言結構的各種定義且存有各種定則和敘述語句。應用這些定義,語法分析器42就能夠?qū)斶M來的數(shù)據(jù)組進行語法分析,并識別與數(shù)據(jù)組語言識別的確定特別有關的各部分。這些有關部分以下稱之為關鍵字。關鍵字有正的關鍵字和負的關鍵字。正關鍵字(如有的話)表示“容許”使用該語言,負關鍵字(如有的話)表示“禁止”使用該語言。
各表決器有許多關鍵字計數(shù)器,一個關鍵字計數(shù)器用一個關鍵字類型。各表決器模塊還有一個加權表48,加權表48在各關鍵字的計數(shù)寄存下來時就賦予該關鍵字一個加權值。插入加權表48的加權值不是正的就是負的,這取決于所識別的關鍵字是表示該語言的出現(xiàn)還是表示該語言在語法上所下能容許的未知字符或其它字符組而定。各指定的加權值加起來之后存入表決值寄存器46中,該寄存器保存其值等于在輸進來的數(shù)據(jù)流中檢測出的正負加權關鍵字的總和的現(xiàn)行和。
上下文表50用以給各檢測出的關鍵字指定取決于該關鍵字及其在所收到的數(shù)據(jù)組中的上下文的不同值(“扭曲”)。上下文表50列有各關鍵字類型的初始扭曲值,該扭曲值通常由一個扭曲修正器(視情況而定)進行乘法運算或除法運算,從而得出與數(shù)據(jù)組中關鍵字的上下文有關的扭曲值。接著,(正負)扭曲值都輸進一對表決計數(shù)寄存器52中,分別由這兩個寄存器累積各正負扭曲值。于是,“容許”計數(shù)寄存器累積全部從上述計算得出的正扭曲值“禁止”計數(shù)寄存器累積負扭曲值。
現(xiàn)在翻看圖3和圖4,圖中,以邏輯圖的形式示出了PCL和PS的語法。各邏輯圖作為掃描特定語言的表決器模塊中各語法分析器子程序42內(nèi)的邏輯語句體現(xiàn)出來。因此,表決器模塊34(圖1)的邏輯語句體現(xiàn)圖3所示的語法。圖3可分析如下。PCL語法要求在開始打印之前來一個叫做換碼符的既定ASCII9(美國信息交換標準代碼)字符序列(其二進制數(shù)值等于27)。確定一個換碼符序列之后,語法分析器繼續(xù)分析數(shù)據(jù)流中的下一個字節(jié),若該字節(jié)的二進制值在48與126之間,分析就轉(zhuǎn)入等待階段,等待下一個換碼符序列(圖中未示出)的到來。若檢測出換碼符序列之后下一個字節(jié)的值在33與47之間,程序就確定相繼的數(shù)據(jù)是個數(shù)字串(StrNum)抑或是一個二進制值在96與126之間的字符。PCL語法中數(shù)字串的定義為多個可供選擇的字符中的一個字符,每個字符都可列為一數(shù)字串(見標有strNum的邏輯圖)。語法分析器確定有數(shù)字串存在之后,接著就確定下一個字符值是否在64與94之間,若然,則下一個數(shù)據(jù)被跳過。然后程序就回到對換碼序列進行掃描,等等。若該字符值在96與126之間,則邏輯圖出現(xiàn)一個最后分支,這時要再次確定數(shù)字串等等。
通過實例有助于理解圖3的PCL語法圖解。假設收到具下列各值的一個字符列27,3和96。PCL語法分析器42看到二進制值為27的字符時即刻認出它是ASCII換碼符字符。鑒于下一個字符值是33,語法分析器就將一個量加到圖3的框A中,得出一個正的答案,然后著手分析下一個字符。由于下一個字符的值為96,它與數(shù)字串(框B)的語法不匹配,但與邏輯框C中所示的各件匹配。程序繼續(xù)進行下去,由PCL語法分析器繼續(xù)識別輸進來的數(shù)據(jù)流的各部分,在PCL語法表中可以找到其定義。
圖4中示出了PS的邏輯圖,只有當滿足不了水平邏輯框的條件時分析才沿垂直線D進行下去。例如,若裝在表決器模塊36中語法分析器在數(shù)據(jù)流中看不到有%,它就即刻著手確定是否有“<”指示符出現(xiàn),若否,再看看有否“(”等。以這種方式,PS表決器模塊中的語法分析器就著手分析各PS關鍵字。
現(xiàn)在翻看圖5a和5b,圖中示出了PS和PCL語言的加權表,該表示出了語言分析程序中所采用的各關鍵字。先看圖5a,PS關鍵字的類型有保留字、語法錯誤、文件關鍵字、專用關鍵字、未知字和保留標點。保留字在PS語言語法中的定義是除語法所規(guī)定之外不能加以使用的字。語法錯誤是不符合語法要求的字符組織方式。文件資料格式指令是對某一文件來說是路徑指令的指令,或規(guī)定其格式的指令。專用字符序列是語法定義為對該語言專用的字符序列。語法對保留標點同樣所下的定義為語法中具有特殊意義的標點。
從圖5a的右欄中可以看到,各類關鍵字都加了權,有些權是正的,另一些權是負的。負權表示時對語言取禁止的態(tài)度,正值表決時對語言采取容許的態(tài)度。應該指出,使加權為負的這類關鍵字其重要性一般不及加權為正的那類關鍵字。這是因為正加權關鍵字表明某一語言的出現(xiàn)比起負加權關鍵字表明某一語言的不出現(xiàn)更能說明問題。圖5a中示出的具體加權值是根據(jù)實驗求出的,而且是在估計關鍵字類型對語言識別的重要性的基礎上得出的。
圖5b中示出了PCL語言的關鍵字類型。換碼符字符上面已交代過。PCL語法對短序列和全序列所下的定義是PCL專用的字符序列。組合序列是重復的全序列。非法序列是PCL語法認不出其為PCL語言的一部分的字符序列。非法序列相當于語言中的語法錯誤。這里,圖5b圖表示右手邊的數(shù)值也是加權值,正值表示語言是PCL語言,負值表示語言為非PCL語言。
再翻看圖2,值得注意的是,各表決器模塊都配有關鍵字類型計數(shù)器44。例如,從圖5a中可以看到,PS表決器模塊36將包含6個關鍵字類型計數(shù)器,表中所列的每個關鍵字類型都有一個計數(shù)器。同樣,從圖5b中可以看到,PCL表決器模塊36將包括5個關鍵字類型計數(shù)器,這些計數(shù)器保留了對輸進來的數(shù)據(jù)組的分析所確定的各類關鍵字數(shù)量的計數(shù)。此外,各表決器模塊有一個表決值寄存器46。在各表決器模塊中,每次語法分析器42發(fā)現(xiàn)某特定關鍵字類型時,表決值寄存器46就增加所賦予關鍵字的類型的加權值。因此,表決值寄存器46顯示輸進來的數(shù)據(jù)組中全部關鍵字正負加權累積值的總和。
圖6和圖7中示出了PS和PCL,語言的上下文表。有了這個上下文表,從數(shù)據(jù)組得出的各關鍵字就可以根據(jù)數(shù)據(jù)組的上下文以不同的方式加權(即“扭曲”)。然后將“扭曲”值輸入各表決器模塊中的“容許”和“禁止”表決計數(shù)寄存器52中。各上下文表有一個關鍵字類型欄,這和PS和PCL加權表中的關鍵字類型欄完全一樣?!芭で较颉睓诒硎敬拥疥P鍵字類型的上下文扭曲是開始時處于最大值然后減小(到頂)還是先處于最小值然后增加(增長)。扭曲方向“增長”表明,在數(shù)據(jù)組中先后出現(xiàn)某一關鍵字類型表示越來越有把握肯定在相應的語言中形成有某一數(shù)據(jù)組。相反,扭曲方向“到頂”表明某特定關鍵字類型的第一次出現(xiàn)是最重要的,以后的出現(xiàn)就不那么重要。
各上下文圖表的下一個欄表示各關鍵字類型最初出現(xiàn)時賦予該關鍵字類型的“初始扭曲”值。這些都是根據(jù)實驗確定的值,值的大小表示某特定關鍵字初次在數(shù)據(jù)組中出現(xiàn)對該語言識別的重要性。為進行說明,各值以阿拉伯數(shù)字表示,但實踐中這是值是以十六進制表示法表示的?!芭で拚睓诒硎境跏寂で翟陉P鍵字類型初次出現(xiàn)以后出現(xiàn)時應如何修正。例如,賦予第一文件資料格式指令關鍵字的值為40,而文件資料指令格式關鍵字第二次出現(xiàn)時賦予的值為10(40/4),第三次出現(xiàn)賦予的值則為2.5(10/4)等等。同樣,某一特定標點關鍵字起初是賦予2.79×10的值的,某特定標點關鍵字第二次出現(xiàn)時該值乘以4。該乘積在特定標點關鍵字第三次出現(xiàn)時乘以4。
圖7中示出了PCL語言的上下文表。這里應該指出的是,各關鍵字類型的短序列、全序列和組合序列全都具同樣的初始扭曲值且在以后出現(xiàn)時經(jīng)過扭曲修正的。
上面說過,各表決器模塊既裝有“容許”表決計數(shù)寄存器也裝有“禁止”表決計數(shù)寄存器52的。用上下文表計算出來的符號值都插入“容許”和“禁止”表決計數(shù)寄存器中,各正值加起來存入“容許”寄存器中,各負值加起來存入“禁止”寄存器中。這樣,各表決計數(shù)寄存器就在所收到的數(shù)據(jù)組的上下文中表明表示關鍵字類型數(shù)的總和。“容許”表決計數(shù)寄存器的和表示了表明某特定語言出現(xiàn)的所有關鍵字的扭曲權重。“禁止”表決計數(shù)寄存器表示各關鍵字的扭曲權重的總和,該關鍵字的出現(xiàn)表明正在被分析中的數(shù)據(jù)組不采用各表決器模塊所處理的特定語言。
現(xiàn)在參看圖8-11,結合圖5a、5b、6和7中所示的各表示來說明語言的識別程序。該程序從收到新的數(shù)據(jù)組(框100)時開始。數(shù)據(jù)組的大小可以是任意的,但最好選取能容納輸進來的數(shù)據(jù)的適當取樣的那種大小,同時不要太長以免耽誤打印的功能。所收到的數(shù)據(jù)組其大小最好約為256字節(jié)。
上面說過,各預期的語言都配有獨立的表決器模塊,在此情況下假設該預期的語言為PCL和PS語言。各表決器模塊并行運行,且對所收到的數(shù)據(jù)組輸入進行處理。如圖8中所示,表決器模塊的語法分析器42一開始就對各關鍵字在它們依次在數(shù)據(jù)組輸入中檢測出時進行識別(框102)。然后按類型識別這些關鍵字(框104),且相應關鍵字類型的各計數(shù)器在每次有新關鍵字類型確定下來時增加一個計數(shù)(框106)。同樣,每次檢測出一個關鍵字時,往表決值加帶符號的權,該加權值是從加權表中查出的(框108)。例如,若某一PS表決器模塊確定有語法錯誤出現(xiàn),它就促使-50加到表決值寄存器46上(圖2)。同樣,若經(jīng)測定,字符序列是專用的,則往表決器模塊的表決值寄存器46中加+80。
以這種方式,表決器模塊保持了其值表示“容許”和“禁止”表決模塊正在掃描的語言的加權表決的單現(xiàn)行累積總和。但表決值寄存器總和并沒有把各關鍵字出現(xiàn)在數(shù)據(jù)組中的上下文(即各關鍵字的關系)考慮進去。因此,累積的表決值不足以始終確保正確地選擇語言。
在語法分析器中,程序繼續(xù)進行下去,確定是否檢測出數(shù)據(jù)組中的最后一個關鍵字。若未檢測出,則程序流程返回到開始部分,并自行重復。若從輸進來的數(shù)據(jù)組識別出最后一個關鍵字,則程序就確定表決值寄存器46中的值是大于還是小0(判定框111)。若表決值大于或等于0,則以輸出112表示這個情況,若表決值小于0,則以輸出113表示該情況。
進行圖8中所述的語法分析的同時,各表決器模塊進行上下文分析。圖9示出了上下文分析的程序,該程序從“容許”“禁止”計數(shù)寄存器的建立開始(框120)。程序接收經(jīng)識別的各關鍵字和作為來自圖8中框104的輸入的各關鍵字類型。該程序?qū)Ω鹘?jīng)識別的關鍵字確定該關鍵字是否為數(shù)據(jù)組中所識別出的那種初始關鍵字。若然,則程序就根據(jù)有關的上下文表確定該關鍵字類型的初始扭曲值(框124)。PCL表決器模塊采用圖7上下文表中所示的各值,PS表決器模塊采用圖6上下文表中的各值。
若初始扭曲值經(jīng)確定為負(框126),表決器模塊的“禁止”計數(shù)就增加該初始扭曲值(框126)。若相反,初始扭曲值為正,則表決器模塊的“容許”計數(shù)寄存器就增加該初始扭曲值(框128)。
返回到判定框122,若經(jīng)測定,來自框104的關鍵字輸入不是首次出現(xiàn)在特定關鍵字類型的關鍵字數(shù)據(jù)組中,則程序轉(zhuǎn)入判定框130,確定所確定的關鍵字類型的初始扭曲值是正還是負。若為正,則將輸進“容許”計數(shù)中的上一個扭曲值加入扭曲修正器中,修正該扭曲值(框132)。舉例說,假設初始扭曲值為正,若該扭曲修正器表明該扭曲值應除以四,則將輸進“容許”計數(shù)的上一個扭曲值除以四。同樣,若修正器表明應進行乘法運算,則將輸進“容許”計數(shù)的上一個扭曲值乘以該修正值。然后將經(jīng)修正的扭曲值“或”起來存入“容許”計數(shù)寄存器中以更新其累積值?!盎颉边\算的作用是防止累積值的二進制位的大小增大(且基本上消除該和數(shù)引起的任何進位)。鑒于“容許”和“禁止”兩個計數(shù)都按同樣的方式處理,它們之間以后進行的比較不會因沒有進位功能而受影響。
返回到判定框120,若發(fā)現(xiàn)初始扭曲值為負,則由扭曲值修正器修正原先輸進“禁止”計數(shù)寄存器中的上一個扭曲值。按上述同樣的方式,若表明要進行乘法運算,則將上一次輸入的扭曲值乘以所要求的常數(shù),若要求進行除法運算,則按該要求進行(框136)。然后程序?qū)⒔?jīng)修改的扭曲值“或”起來存入“禁止”計數(shù)寄存器中以更新其值。
這時,程序繼續(xù)進行下去,確定是否已識別出數(shù)據(jù)組中的最后一個關鍵字(判定框140)若尚未識別出,則根據(jù)“容許”或“禁止”計數(shù)是否顯示出大于98%確定性的值這一點進一步進行判定(判定框142)。這就是說,若“容許”或“禁止”計數(shù)的累積值大于各計數(shù)所間獲取的最大值的98%,則程序?qū)ⅰ案麝P鍵字的進一步分析”的這個步驟“短接”,并假設已識別出某一語言。
若判定框142的判定結果是否定的,程序就再循環(huán),考慮下一個關鍵字。數(shù)據(jù)組中的最后關鍵詞已處理之后(這由判定框140確定),程序就計算“容許”和“禁止”計數(shù)寄存器之間的差值(框144)。然后將計算出來的差值與所能預期的各計數(shù)之間的最大預期差值加以比較。若計算出來的差值小于最大預期差值的25%(實驗判定值),則可以認為“容許”和“禁止”計數(shù)接近(即“混亂”)到這樣的程序以致不容許只根據(jù)上述上下文分析作出決定性的判定。若計算出來的差值等于或大于各計數(shù)之間最大預未差值之間的25%,則判定框146產(chǎn)生“不混亂”的輸出,于是可以認為較大的計數(shù)值所假設的是精確的。
圖10a中,判定框146的“不混亂”顯示內(nèi)容之后是確定“容許”計數(shù)是否大于“禁止”計數(shù)(判定框148)。然后視乎哪一個計數(shù)大一些,對較大的計數(shù)進行“歸一化”。若判定框148表示肯定(“容許”計數(shù)>“禁止”計數(shù)),則在“容許”計數(shù)上履行歸一化程序(框150),將其值變換到0至+127的范圍。之所以要進行上述歸一化是因為不同的表決器模塊中的“容許”和“禁止”計數(shù)會表現(xiàn)出不同的與語言的特性有關的累積值。因此,各種不同的表決器模塊中的累積值在其絕對值上會彼此關系不大或毫無關系。然而,各表決器模塊中的各個“容許”和“禁止”計數(shù)值如果以特定計數(shù)所能達到的最大值的百分率(或等效數(shù)值)表示則會有相對的意義。例如,假設“容許”計數(shù)>“禁止計數(shù)”,將“容許”計數(shù)與該計數(shù)所能獲得的最大值相比較,得出一個比值。于是該比值確定該計數(shù)值變換成0至+127的規(guī)定數(shù)字范圍內(nèi)的值。
圖10b和10c中分別示出了處理用以檢測PCL和PS的表決模塊中顯示“混亂”狀態(tài)的程序。PS語言更復雜,因而PS程序比PCL更復雜。
圖10b中,是在圖9中的判定框146表明輸入混亂時PCL表決器模塊中的處理程序。程序根據(jù)該混亂的指示檢查來自圖8中判定框111的累積表決值(判定框158)。若發(fā)現(xiàn)累積值小于0(表明,特定表決器模塊中表決值寄存器的累積值是累積加權值的負總和),則將歸一化了的“禁止”計數(shù)送回到判定器(框160)。若發(fā)現(xiàn)累積表決值大于或等于0,則將“容許”計數(shù)(經(jīng)歸一化)送回到判定器(框162)。
圖10C中示出了圖9中的判定框46表明輸入混亂時PS表決器模塊中的處理程序。根據(jù)這個情況,程序在對輸進來的數(shù)據(jù)組的分析中確定是否沒有發(fā)現(xiàn)什么語法上的錯誤,且是否已檢測出至少一個特殊的字符序列(判定框164)。若發(fā)現(xiàn)語發(fā)錯誤(即語法錯誤計數(shù)不等于0),或者檢測不出任何特殊字符序列,則將經(jīng)歸一化的“禁止”計數(shù)送回到判定模塊(框166)。若判定框164顯示“與”狀態(tài),則檢查來自圖8中判定框111的累積表決值輸出(判定框168)。若發(fā)現(xiàn)累積表決值大小0(表明特定表決器模塊中表決值寄存器的累積值為累積加權值的負總和),則將“禁止”計數(shù)送回到判定器(框166)。若發(fā)現(xiàn)累積表決值大于0,則把“容許”計數(shù)(經(jīng)歸一化)送回到判定器(框170)。
現(xiàn)在翻看圖11,判定模塊存儲各表決器模決送回來的歸一化計數(shù)(框172)。如上所述,各表決器模塊應該已將單個數(shù)字送回到判定器中,該單個數(shù)字表示0至+127之間的值或-1至-128之間的值,前者表示容許使用某一語言,后者表示禁止使用該語言。如判定框174中所示,若送回到判定模塊的所有表決器模塊計數(shù)都為負,則顯示出非語言的指示(框176)。另一方面,若所有的計數(shù)都不是負的,則選取最大的正計數(shù)作為輸進來的語言(框178)。
總之,本程序通過三次分別而同時地累積分析數(shù)據(jù)來判定對某種語言的識別。顯示內(nèi)容包括分派給某特定語言的各表決器模塊的正負關鍵字加權計數(shù);各表決器模塊中的加權和,表示輸進來的數(shù)據(jù)組中所發(fā)現(xiàn)的各關鍵詞是否累計起來表示“容許”或“禁止”使用該語言的正或負的表決;和“容許”和“禁止”計數(shù),根據(jù)各關鍵字對該語言的重要性進行上下文分析,從而并行而獨立地對該語言進行表決。結合這些表決結果(如圖8-11流程圖中所示的那樣)就可以很有把握地對語言作最后的抉擇。此外,將判定程序安排給分立的判定模塊去進行,各語言有單獨的表決器模塊,這樣就能夠?qū)ο到y(tǒng)進行修改,使其適應另外一些開頭沒有設想過的語言。
應該理解的是,上述說明僅僅是對本發(fā)明的舉例性說明而已。在不脫離本發(fā)明精神的前提下,熟悉本技術領域的人士是可以就其提出另外的方案和修改方案的。因此,本發(fā)明的意圖是包括這些另外的方案和修改方案,因為它們都屬于本說明書所附權利要求書的范圍。
權利要求
1.一種在數(shù)據(jù)處理系統(tǒng)中識別輸入的語言的方法,所述系統(tǒng)中,能對多種所輸入的語言起反應,各種語言遵守規(guī)定的語法,在輸進來的數(shù)據(jù)中有既定的數(shù)據(jù)部分(“容許”關鍵字)時表明表決結果容許某種語言的出現(xiàn),有其它既定的數(shù)據(jù)部分(“禁止”關鍵字)時表明表決結果禁止該語言的出現(xiàn),該系統(tǒng)識別所輸入的語言的方法包括下列步驟a)就每個預期的語言分析輸進來的數(shù)據(jù)組的語法,以識別所述數(shù)據(jù)組中的“容許”和“禁止”關鍵字;b)根據(jù)所述分析給每個預期的語言提供“容許”計數(shù)和“禁止”計數(shù),各所述計數(shù)為各關鍵字條的總和,各關鍵字條由一個經(jīng)識別的關鍵字計數(shù)乘以一個扭曲組成,所述扭曲的值表示所述關鍵字在所述語法中和所述數(shù)據(jù)組上下文的重要性,所述“容許”計數(shù)是“容許”關鍵字字條的總和,所述“禁止”計數(shù)是“禁止”關鍵示字條的總和;c)將所述“容許”和“禁止”計數(shù)加以比較,以確定它們是否如此接近得達到有必要發(fā)出“測不準”的信號,然后根據(jù)所述數(shù)據(jù)組的另一個語法特性分析該“測不準”的情況,并根據(jù)其中一個所述計數(shù)顯示一個值,所述顯示與所述另一個語法特性是否表示“容許”或“禁止”該語言有關;d)兩個計數(shù)之間沒有“測不準”的情況時顯示出從較大的計數(shù)得出的一個值;然后e)根據(jù)各所述預期語言的所述顯示值判定所收到語言的語種。
2.如權利要求1所述的方法,其特征在于,所述步驟(a)還包括下列步驟按關鍵字類型對經(jīng)識別的“容許”和“禁止”關鍵字進行分類;令語言表決計數(shù)增加或減少賦予各關鍵字類型的加權值,該增量或減量為每次確定某一所述關鍵字時預先賦予該關鍵字的帶符號的關鍵字類型加權值,關鍵字為各類型的“容許”關鍵字時增加所述表決值,關鍵字為各類型的“禁止”關鍵字時減少所述表決值。
3.如權利要求2所述的方法,其特征在于,步驟(c)中所述的該另一個語法特性為所述語言表決計數(shù)是大于或小于某規(guī)定值。
4.如權利要求3所述的方法,其特征在于,所述“容許”關鍵字類型包括符合語法的一些字符和序列,所述“禁止”關鍵字類型包括不符合語法的一些字符和序列、語法錯誤、未知字和非法序列。
5.如權利要求3所述的方法,其特征在于,各關鍵字類型的所述扭曲是經(jīng)扭曲修正器修正過的關鍵字類型初始扭曲值,所述扭曲修正器使所述初始扭曲值在數(shù)據(jù)組中某一關鍵字類型第二次和以后出現(xiàn)時不同。
6.如權利要求5所述的方法,其特征在于,當某些關鍵字類型以后在數(shù)據(jù)組中出現(xiàn)時更有力地說明某一種語言的出現(xiàn)時,所述扭曲修正器是乘法器,而當某一關鍵字類型在數(shù)據(jù)組中的出現(xiàn)其對語言識別的重要性不及該關鍵字類型在數(shù)據(jù)組中第一次出現(xiàn)時,所述扭曲修正器是個除法器。
7.如權利要求6所述的方法,其特征在于,每次所述初始扭曲值是由一個扭曲修正器修正的,則下一次所述扭曲為所述扭曲修正器所修正,被修正的是上一次修正過的扭曲值,從而在一系列的扭曲修正過程中,各扭曲值發(fā)生非線性變化。
8.如權利要求7所述的方法,其特征在于,在步驟b之后,該方法另外進行下列步驟將所述“容許”和“禁止”計數(shù)與各計數(shù)所能獲得的最大值相比較,若其中一個計數(shù)處在所述最大值的預定范圍內(nèi),則停止按步驟(b)進行的對數(shù)據(jù)組的進一步分析,直接轉(zhuǎn)入步驟(c)。
9.如權利要求2所述的方法,其特征在于,所述“測不準”是通過計算所述“容許”和“禁止”之間的差值并將所述差值與兩者之間預期的最大差值相比較確定的,若所述比較結果顯示所述差值大于所述最大差值的預定百分率,則表明在對所述各計數(shù)作出選擇時出現(xiàn)混亂情況。
10.如權利要求9所述的方法,其特征在于,所述所輸入的語言包括PCL,且PCL表決器模塊根據(jù)某一“混亂”顯示進一步執(zhí)行下列各步驟確定PCL語言表決計數(shù)是否大于規(guī)定值,若否,則顯示出從“禁止”計數(shù)獲取的一個值,若然,則顯示出從“容許”計數(shù)獲取的一個值。
11.如權利要求9所述的方法,其特征在于,所述所輸入的語言包括PS語言,且PS表決器模塊根據(jù)某一“混亂”顯示進一步執(zhí)行下列各步驟確定在數(shù)據(jù)組的分析中是否檢測不出語法上的錯誤且PS中沒有出現(xiàn)所檢測的特定字符,若否,則顯示出從“禁止”計數(shù)獲取的一個值,若然,且所述語言表決值大于所述規(guī)定值,則顯示從所述“容許”計數(shù)獲取的一個值。
12.如權利要求1所述的方法,其特征在于,所述比較步驟(c)還包括下列步驟將所述“容許”和“禁止”計數(shù)變換成預定范圍的值,各所述變換成所述預定范圍值的計數(shù)與所述計數(shù)對各所述計數(shù)所能達到的最大值的關系一致。
13.一種數(shù)據(jù)處理系統(tǒng),包括有一個軟件,該系統(tǒng)對多種所輸入的語言起反應,各種語言遵守規(guī)定的語法,其中,在輸進來的數(shù)據(jù)中的說明數(shù)據(jù)部分(“容許”關鍵字)表明表決結果容許某種語言的出現(xiàn),其它說明數(shù)據(jù)部分(“禁止”關鍵字)表明表決結果禁止該語言出現(xiàn),所述系統(tǒng)包括每種語言的表決器裝置和一個判定裝置,各所述表決器裝置包括語法分析裝置,用以對某預期語言分析輸進來的數(shù)據(jù)組的語法,從而識別數(shù)據(jù)組中的“容許”和“禁止”關鍵字;計數(shù)裝置,用以根據(jù)所述分析提供所述語言的“容許”和“禁止”計數(shù),各所述計數(shù)為各關鍵字字條的總和,每個關鍵字字條由一個經(jīng)識別的關鍵字計數(shù)乘以一個扭曲組成,所述扭曲值表示所述關鍵字在所述語法和所述數(shù)據(jù)組上下文中的重要性,所述“容許”計數(shù)是“容許”關鍵字字條的總和,所述“禁止”計數(shù)是“禁止”關鍵字字條的總和;第一裝置,用以將所述“容許”和“禁止”計數(shù)加以比較,以確定它們是否如此接近得達到有必要發(fā)出“測不準”的信號,然后根據(jù)組的另一個語法特性分析該“測不準”的情況,并根據(jù)其中一個所述計數(shù)顯示第一值;和顯示裝置,用以給所述判定裝置顯示所述第一值或第二值,所述第二值是在兩計數(shù)值之間沒有“測不準”的情況時從較大的計數(shù)得出的。
14.如權利要求13所述的數(shù)據(jù)處理系統(tǒng),其特征在于,所述判定裝置包括檢查判定裝置,用以檢查來自各所述表決裝置的所述顯示值,并判定所述輸進來的數(shù)據(jù)組所體現(xiàn)出來的語言的語種。
15.如權利要求14所述的系統(tǒng),其特征在于,它還包括分類裝置,用以按關鍵字類型將經(jīng)識別的“容許”和“禁止”關鍵字分類;加權裝置,用以使語言表決計數(shù)增加或減少賦予各關鍵字類型的加權值,該增量或減量為每次確定某一所述關鍵字時預先賦予該關鍵字的帶符號的關鍵字類型的一個加權值,關鍵字為“容許”關鍵字類型時增加所述表決值,關鍵字為“禁止”關鍵字類型時減少表決值。
16.如權利要求15所述的系統(tǒng),其特征在于,所述的另一語法特性為所述語言表決計數(shù)是大于或小于某規(guī)定值。
17.如權利要求15所述的系統(tǒng),其特征在于,各關鍵字類型的所述扭曲是經(jīng)扭曲修正器修正過的關鍵字類型初始扭曲值,所述扭曲修正器使所述初始扭曲值在數(shù)據(jù)組中某一關鍵字類型在第二次和以后出現(xiàn)時不同。
18.如權利要求17所述的系統(tǒng),其特征在于,它還包括第二比較裝置,用以將所述“容許”和“禁止”計數(shù)與各計數(shù)所能獲得的最大值相比較,若其中一個計數(shù)處在所述最大值的預定范圍內(nèi),則停止由所述計數(shù)裝置進行的數(shù)據(jù)組分析,并令所述第一比較裝置工作。
19.如權利要求18所述的系統(tǒng),其特征在于,所述第一比較裝置是通過計算所述“容許”和“禁止”之間的差值并將所述差值與兩者之間預期的最大差值相比較確定所述測不準的情況的,若所述比較結果顯示所述差值大于所述最大差值的預定百分率,則表明在對所述各計數(shù)作出選擇時出現(xiàn)混亂情況。
20.如權利要求13所述的系統(tǒng),其特征在于,所述表決器裝置包括變換裝置,供將所述“容許”和“禁止”計數(shù)變換成預定范圍的值,各所述變換成所述預定范圍值的計數(shù)與所述計數(shù)對各所述計數(shù)所能達到的最大值的關系一致。
21.如權利要求20所述的數(shù)據(jù)處理系統(tǒng),其特征在于,所述判定裝置顯示(1)非語言,若所有的表決器裝置提供的值都表示“禁止”計數(shù);或(2)某種語言,這是根據(jù)表決器裝置提供的最大“容許”計數(shù)值判定的。
全文摘要
一種數(shù)據(jù)處理系統(tǒng),能對多種所輸入的語言起反應,各種語言遵守規(guī)定的語法。在輸進來的數(shù)據(jù)中有既定的數(shù)據(jù)部分(“容許”關鍵字)時表明表決結果容許某種語言的出現(xiàn),有其它既定的數(shù)據(jù)部分(“禁止”關鍵字)時表明表決結果禁止該語言的出現(xiàn)。該系統(tǒng)執(zhí)行的方法能識別所輸入的語言。
文檔編號G06F3/00GK1079057SQ93101138
公開日1993年12月1日 申請日期1993年1月21日 優(yōu)先權日1992年1月24日
發(fā)明者S·E·沃爾頓 申請人:惠普公司